繁体   English   中英

C#从列表中查找哪个几何值最接近静态几何点

[英]C# Finding which geometry value from a List is closest to a static geometry point

我创建了自己的类“地理位置”,其中只包含“经度”和“纬度”两个变量。

我有一个List和另一个静态Geolocation对象。 我需要遍历列表并分析这些位置中的哪个位置最接近静态位置。 “最接近”是指现实生活中的距离,因此我认为这被称为地理空间分析。

我自己的伪想法与此类似。

Geolocation[] closestPositions = new Geolocation[]

for (int i = 0; i < TrainStations.AllStations.Count; i++)
{
    Geolocation A = TrainStations.AllStations[i];
    Geolocation B = DataHandler.UserCurrentPosition;

    if (A and B are closer than what is stored in closestPosition)
    {
       closestPosition[0] = A;
       closestPosition[1] = B;
    }
}

到此循环结束时,我将剩下两个最接近的点(更具体地说,城市中的哪个火车站最接近用户的当前位置)。

但是,我真的不确定伪代码的运行方式是否最有效,而且我也不知道如何进行实际分析(获取A到B的距离并测量最短的距离)。

我应该使用内置的System.Device.Location.GeoCoordinate类,而不是创建自己的类“ Geolocation”。

https://msdn.microsoft.com/en-us/library/system.device.location.geocoordinate(v=vs.110).aspx

此类具有函数“ GetDistanceTo(Geocoordinate)”,该函数“返回由此GeoCoordinate指定的纬度和经度坐标与另一个指定的GeoCoordinate之间的距离。”

我可以在循环中使用GeoCordinate对象使用它来分析最接近的点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM