2013-01-18 88 views
0

我不是在尋找任何代碼,只是在項目特定方面的建議。使用LINQ搜索XML座標

我有一個XML文件,其中包含座標和建築物名稱,我希望能夠捕捉人的位置(我將創建一個移動應用程序,所以這是確定的)的座標。

上面的senario是否可以在C#中使用LINQ語句?如果是這樣,是否有可能進行近距離比賽?即如果該人不完全在座標中,則向他/她展示最近的匹配。

我不是專門尋找任何代碼,只是任何提示,技巧或LINQ上的高級教程將有所幫助。

感謝

+5

您可以使用LinqToXml。 – mipe34

回答

3

可以使用System.Device.Location.GeoCoordinate類此

List<GeoCoordinate> listTakenFromXml = ...... 
double lat = ...... 
double lon = ........ 
var nearest = new GeoCoordinate(lat, lon).NearestPoint(listTakenFromXml); 

public static class SoExtensions 
{ 
    public static GeoCoordinate NearestPoint(this GeoCoordinate loc, IEnumerable<GeoCoordinate> coords) 
    { 
     GeoCoordinate minLoc = null; 
     double minDist = double.MaxValue; 
     foreach (var c in coords) 
     { 
      var dist = c.GetDistanceTo(loc); 
      if (dist < minDist) 
      { 
       minDist = dist; 
       minLoc = c; 

      } 
     } 
     return minLoc; 
    } 
} 
+1

謝謝你。 「listTakenFromXML」因此是XML文件的LINQ查詢? – Phorce

+1

@Phorce是Linq To Xml在這裏非常有用。 – I4V