2017-03-27 50 views
0

我创建了自己的类'Geolocation',它只保存双变量'经度'和'纬度'。C#从列表中找出哪个几何值最接近静态几何点

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

我自己的伪观念是沿着这一点。

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; 
    } 
} 

通过该环路I就会留下与两个最接近的点的端部(更具体地,其火车站在城市是最接近用户的当前位置)。但是,我真的不确定我的pududo代码的运行方式是否最有效,而且我不知道如何进行实际的分析(从A到B的距离和最短的度量) 。

回答

0

与其创建我自己的类“地理定位”,我应该使用内置的System.Device.Location.GeoCoordinate类。

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

此类具有的功能“GetDistanceTo(会有地理座标)”其中“返回由该会有地理座标和另一个指定会有地理座标指定的纬度和经度坐标之间的距离”。

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