我不是在尋找任何代碼,只是在項目特定方面的建議。使用LINQ搜索XML座標
我有一個XML文件,其中包含座標和建築物名稱,我希望能夠捕捉人的位置(我將創建一個移動應用程序,所以這是確定的)的座標。
上面的senario是否可以在C#中使用LINQ語句?如果是這樣,是否有可能進行近距離比賽?即如果該人不完全在座標中,則向他/她展示最近的匹配。
我不是專門尋找任何代碼,只是任何提示,技巧或LINQ上的高級教程將有所幫助。
感謝
我不是在尋找任何代碼,只是在項目特定方面的建議。使用LINQ搜索XML座標
我有一個XML文件,其中包含座標和建築物名稱,我希望能夠捕捉人的位置(我將創建一個移動應用程序,所以這是確定的)的座標。
上面的senario是否可以在C#中使用LINQ語句?如果是這樣,是否有可能進行近距離比賽?即如果該人不完全在座標中,則向他/她展示最近的匹配。
我不是專門尋找任何代碼,只是任何提示,技巧或LINQ上的高級教程將有所幫助。
感謝
可以使用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;
}
}
見Calculate distance, bearing and more between Latitude/Longitude points和使用的最好成績適合你的情況的方法。如果在列表中有一組點,則一旦進行了計算,則Linq to Object的擴展可以幫助您根據需要確定您的邏輯。
您可以使用LinqToXml。 – mipe34