Reo.Core.Elastic.Geo 10.0.315

dotnet add package Reo.Core.Elastic.Geo --version 10.0.315
                    
NuGet\Install-Package Reo.Core.Elastic.Geo -Version 10.0.315
                    
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.315" />
                    
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.315" />
                    
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.315
                    
#r "nuget: Reo.Core.Elastic.Geo, 10.0.315"
                    
#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.315
                    
#: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.315
                    
Install as a Cake Addin
#tool nuget:?package=Reo.Core.Elastic.Geo&version=10.0.315
                    
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.315 0 8/19/2026
10.0.314 10 8/19/2026
10.0.313 7 8/19/2026
10.0.312 28 8/19/2026
10.0.311 36 8/18/2026
10.0.310 38 8/18/2026
10.0.309 62 8/14/2026
10.0.308 51 8/14/2026
10.0.307 71 8/13/2026
10.0.306 51 8/13/2026
10.0.305 48 8/13/2026
10.0.304 55 8/12/2026
10.0.301 98 8/11/2026
10.0.299 92 8/7/2026
10.0.297 84 8/7/2026
10.0.296 89 8/6/2026
10.0.295 100 8/5/2026
10.0.294 102 8/5/2026
10.0.293 108 8/4/2026
10.0.292 108 8/3/2026
Loading failed