我正在使用GeoJSON.Net库(https://github.com/GeoJSON-Net/GeoJSON.Net)在我的代码中创建一些GeoJSON特性。点,多线等。所有这些都工作得很好,直到我需要计算一些特征之间的距离。这个库没有任何能力做到这一点。
我尝试过使用GeoJSON.Net.Contrib.MsSqlSpatial (https://www.nuget.org/packages/GeoJSON.Net.Contrib.MsSqlSpatial)将要素转换为SqlGeographies,然后对该类型使用该方法来计算距离。这是完美的工作,但有一个警告:它是仅限.NET框架的。该库不可用于.NET核心。
请注意,我需要一个计算两个任意特征之间的距离的能力-点,多线,多边形,而不仅仅是两个点之间的距离。必须对SRID4326 (WGS84)执行此操作。
有什么想法吗?
致以最好的问候,迪米特罗。
发布于 2020-11-16 01:19:04
根据RFC7946,GeoJSON.Net只是一个反序列化GeoJSON的库。
要计算距离,您可以编写自己的实现,也可以使用现有的库之一,如Geolocation。
为了方便起见,您可以编写一些扩展方法。
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);
}
}https://stackoverflow.com/questions/64771014
复制相似问题