我需要一个函数来计算点 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 对此并没有多说。
任何人都可以解释如何获得这些实现?