.net core 计算两个GeoJSON要素之间的距离
我正在使用GeoJSON.NETLibrary()在代码中创建一些GeoJSON特性。点、多行等。在我需要计算某些特征对之间的距离之前,所有这些都可以正常工作。这个库没有任何能力做到这一点 我尝试使用GeoJSON.Net.Contrib.MsSqlSpatial()将要素转换为SqlGeographies,然后使用该类型的方法计算距离。这是完美的,但有一点需要注意:它只是.NET框架。该库不适用于.NET Core 请注意,我需要能够计算两个任意特征之间的距离-点、多线、多边形,而不仅仅是两点之间的距离。必须针对SRID 4326(WGS84)执行此操作 有什么想法吗.net core 计算两个GeoJSON要素之间的距离,.net-core,geojson,geojson.net,.net Core,Geojson,Geojson.net,我正在使用GeoJSON.NETLibrary()在代码中创建一些GeoJSON特性。点、多行等。在我需要计算某些特征对之间的距离之前,所有这些都可以正常工作。这个库没有任何能力做到这一点 我尝试使用GeoJSON.Net.Contrib.MsSqlSpatial()将要素转换为SqlGeographies,然后使用该类型的方法计算距离。这是完美的,但有一点需要注意:它只是.NET框架。该库不适用于.NET Core 请注意,我需要能够计算两个任意特征之间的距离-点、多线、多边形,而不仅仅是两点
向您致意,Dmytro。GeoJSON.Net只是一个根据RFC 7946反序列化GeoJSON的库 为了计算距离,您可以编写自己的实现,或者使用现有的库,如 为了方便起见,您可以编写一些扩展方法
public static class PositionExtension
{
public static double GetDistanceTo(this Position origin, Position destination,
DistanceUnit unit = DistanceUnit.Kilometers)
{
return GeoCalculator.GetDistance(
origin.Latitude, origin.Longitude,
destination.Latitude, destination.Longitude, distanceUnit: unit);
}
}
非常感谢您的建议,但您在我的问题中遗漏了这一部分:“我需要计算两个任意特征之间的距离的能力-点、多线、多边形,而不仅仅是两点之间的距离”@DmytroGokun您可以将其分解为
i位置
,它保存lat/lon,并通过处理坐标的所有类继承。点、多线、多边形可以继承i位置
,也可以保留其集合。例如,如何从多边形定义测量点取决于您的需要。您需要计算这个值,或者只是迭代,然后在集合中找到最小的i位置。