Package Description
$ dotnet add package Reo.Core.GeoJSONReo.Core.GeoJSON — это библиотека для работы с данными в формате GeoJSON в .NET-приложениях. Пакет предоставляет
классы и интерфейсы для создания, манипуляции и сериализации объектов GeoJSON, таких как точки, линии, полигоны,
коллекции объектов и кластеры. Он решает задачи, связанные с обработкой географических данных в приложениях, например, в
картографических сервисах, системах GIS или аналитике пространственных данных.
Feature: Представляет отдельный объект GeoJSON (например, точку, линию или полигон) с атрибутами и геометрией.FeatureCollection: Хранит коллекцию объектов Feature и предоставляет методы для работы с группами
географических данных.Cluster: Используется для кластеризации географических объектов, например, при отображении плотных групп точек
на карте.ClusteredFeatureCollection: Коллекция кластеров, позволяющая управлять и отображать кластеризованные данные.PositionExtensions: Содержит методы расширения для работы с географическими координатами (например, вычисление
расстояний, преобразования форматов).Установите пакет через NuGet Package Manager:
Install-Package Reo.Core.GeoJSON
Или через .NET CLI:
dotnet add package Reo.Core.GeoJSON
Для использования в ASP.NET Core не требуется явная регистрация в DI-контейнере. Если требуется настройка конфигурации (
например, кастомные сериализаторы), укажите её в Startup.cs или Program.cs:
services.AddJsonOptions(options => {
options.JsonSerializerOptions.Converters.Add(new GeoJsonConverterFactory());
});
Featureusing Reo.Core.GeoJSON;
using Reo.Core.GeoJSON.Feature;
var feature = new Feature<Position>(new Position(55.7558, 37.6176))
{
Properties = new Dictionary<string, object> { { "name", "Москва" } }
};
var json = JsonConvert.SerializeObject(feature, Formatting.Indented);
Console.WriteLine(json);
FeatureCollectionvar feature1 = new Feature<Position>(new Position(55.7558, 37.6176)) { Properties = new { Name = "Москва" } };
var feature2 = new Feature<Position>(new Position(59.9343, 30.3351)) { Properties = new { Name = "Санкт-Петербург" } };
var collection = new FeatureCollection<Position> { feature1, feature2 };
var json = JsonConvert.SerializeObject(collection, Formatting.Indented);
Console.WriteLine(json);
using Reo.Core.GeoJSON.Cluster;
var points = new List<Position>
{
new Position(55.7558, 37.6176),
new Position(55.7560, 37.6178),
new Position(55.7562, 37.6180)
};
var cluster = new Cluster<Position>(points, 0.001); // 0.001 — радиус кластеризации
var clusteredCollection = new ClusteredFeatureCollection<Position> { cluster };
Данный пакет распространяется под лицензией MIT.