ポイントAとポイントBの間の距離を計算する関数が必要です。
名前空間System.Spatial
はまさに私が必要としているもののようですが、その使用方法がわかりません。
IPoint
Latitude
は、とLongitude
の両方を提供するインターフェースですdouble
。
初挑戦 :
public static double CalculateDistance(IPoint pointA, IPoint pointB)
{
var gp1 = GeographyPoint.Create(pointA.Latitude, pointA.Longitude);
var gp2 = GeographyPoint.Create(pointB.Latitude, pointB.Longitude);
return gp1.Distance(gp2) ?? 0;
}
NotImplementedException
それはon で終わりpoint1.Distance(point2)
ます。メッセージはフランス語ですが、基本的には「操作が登録されていません。プロパティ SpatialImplementation.CurrentImplementation.Operations を使用して操作を提供してください」と表示されます。
わかりました、私はこれを試します:
public static double CalculateDistance(IPoint pointA, IPoint pointB)
{
var gp1 = GeographyPoint.Create(pointA.Latitude, pointA.Longitude);
var gp2 = GeographyPoint.Create(pointB.Latitude, pointB.Longitude);
return SpatialImplementation.CurrentImplementation.Operations.Distance(gp1, gp2);
}
今、私はNullReferenceException
オンになりましたSpatialImplementation.CurrentImplementation.Operations
。
msdn は、これについてあまり詳細ではありません。
誰でもこれらの実装を取得する方法を説明できますか?