Reo.Core.Elastic.Geo 10.0.68

dotnet add package Reo.Core.Elastic.Geo --version 10.0.68
                    
NuGet\Install-Package Reo.Core.Elastic.Geo -Version 10.0.68
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Reo.Core.Elastic.Geo" Version="10.0.68" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Reo.Core.Elastic.Geo" Version="10.0.68" />
                    
Directory.Packages.props
<PackageReference Include="Reo.Core.Elastic.Geo" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Reo.Core.Elastic.Geo --version 10.0.68
                    
#r "nuget: Reo.Core.Elastic.Geo, 10.0.68"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Reo.Core.Elastic.Geo@10.0.68
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Reo.Core.Elastic.Geo&version=10.0.68
                    
Install as a Cake Addin
#tool nuget:?package=Reo.Core.Elastic.Geo&version=10.0.68
                    
Install as a Cake Tool

Reo.Core.Elastic.Geo

Описание пакета

Пакет Reo.Core.Elastic.Geo предоставляет набор утилит для работы с геоспacialными данными в контексте Elasticsearch. Он позволяет выполнять операции, такие как вычисление расстояния между точками, проверка вхождения точки в полигон и работа с мультиполигонами. Пакет ориентирован на разработчиков, которые интегрируют геосpatial-функциональность в приложения, например, для решения задач региональных операторов, управления зонами и областями.

Основные функции:

  • Вычисление расстояния между географическими точками.
  • Проверка, находится ли точка внутри полигонов (многоугольников).
  • Поддержка работы с мультиполигонами через интерфейс IMultiPolygon.

Основные компоненты

1. GeoUtilities

  • Описание: Класс с утилитными методами для геосpatial-операций.
  • Методы:
    • CalculateDistance(GeoLocation point1, GeoLocation point2): Вычисляет расстояние между двумя точками в метрах.
    • IsPointInPolygon(GeoLocation point, MultiPolygonGeoShape polygon): Проверяет, находится ли точка внутри заданного полигонов.

2. IMultiPolygon

  • Описание: Интерфейс, определяющий структуру мультиполигонов.
  • Свойства:
    • MultiPolygonGeoShape MultiPolygon: Представляет мультиполигон в формате, совместимом с Elasticsearch.

3. RegionGeoDoc, ZoneGeoDoc, RegOperatorAreaGeoDoc

  • Описание: Классы, моделирующие географические объекты (регионы, зоны, области) с поддержкой мультиполигонов.
  • Свойства:
    • GeoLocation Centroid: Центральная точка объекта (используется для центрирования карты).
    • MultiPolygonGeoShape MultiPolygon: Геометрическое представление объекта.

Требования

Совместимость

  • .NET: .NET 8.0

Зависимости

  • NetTopologySuite: Для работы с геометрическими объектами.
  • Elasticsearch.Client (не указан в проекте, но может быть неявной зависимостью для работы с Elasticsearch).

Установка

NuGet Package Manager

Install-Package Reo.Core.Elastic.Geo

.NET CLI

dotnet add package Reo.Core.Elastic.Geo

Настройка

Регистрация в DI-контейнере (ASP.NET Core)

Если пакет предоставляет сервисы, их можно зарегистрировать в Startup.cs или Program.cs:

services.AddSingleton<GeoUtilities>();

⚠️ Если сервисы не требуются, настройка может быть необязательной.


Использование

Пример 1: Проверка вхождения точки в полигон

var point = new GeoLocation(55.7558, 37.6176); // Москва
var polygon = new MultiPolygonGeoShape(new[] { new[] { new GeoLocation(55.75, 37.60), new GeoLocation(55.76, 37.62) } });

bool isInside = GeoUtilities.IsPointInPolygon(point, polygon);
Console.WriteLine($"Точка находится внутри полигона: {isInside}");

Пример 2: Вычисление расстояния между точками

var point1 = new GeoLocation(55.7558, 37.6176); // Москва
var point2 = new GeoLocation(59.9343, 30.3351); // Санкт-Петербург

double distance = GeoUtilities.CalculateDistance(point1, point2);
Console.WriteLine($"Расстояние между точками: {distance} метров");

Лицензия

Данный пакет распространяется под лицензией MIT.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Reo.Core.Elastic.Geo:

Package Downloads
Reo.Fs.Map.Common

Package Description

Reo.SearchData.Client

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.68 31 3/12/2026
10.0.67 75 3/10/2026
10.0.66 73 3/10/2026
10.0.65 79 3/6/2026
10.0.64 78 3/6/2026
10.0.63 81 3/5/2026
10.0.62 78 3/5/2026
10.0.61 82 3/4/2026
10.0.60 87 3/3/2026
10.0.59 87 3/3/2026
10.0.58 89 3/2/2026
10.0.57 93 2/28/2026
10.0.56 91 2/28/2026
10.0.55 95 2/26/2026
10.0.54 89 2/25/2026
10.0.53 91 2/25/2026
10.0.52 89 2/25/2026
10.0.51 95 2/24/2026
10.0.43 85 2/28/2026
10.0.42 88 2/28/2026
Loading failed