计算两个GeoJSON功能之间的距离



我正在使用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 Framework。该库不可用于.NET Core。

请注意,我需要计算两个任意特征之间的距离——点、多线、多边形,而不仅仅是两点之间的距离。SRID 4326(WGS84(必须执行此操作。

知道吗?

致以最良好的问候,德米特罗。

GeoJSON.Net只是一个根据RFC 7946反序列化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);
}
}

最新更新