使用linq找出与给定经纬度最近的数据
Using linq to find out the nearest data with the given latitude and longitude
我有一个数据table,其中存储了按纬度和经度存储的数据。
我需要使用 LINQ 查询在此 datable 中进行过滤,并从给定的纬度和经度中找到最近的位置。
例如:
28.9873 -- 纬度,
80.1652 -- 经度
试试这个:
var minDistance = collection.Min( x => Math.Sqrt( Math.Pow( wantedLatitude - x.Latitude ) + Math.Pow( wantedLongitude - x.Longitude )));
var closestLocation = collection.First( x => Math.Sqrt( Math.Pow( wantedLatitude - x.Latitude ) + Math.Pow(wantedLongitude - x.Longitude )) == minDistance );
经过两次collection,所以我建议先找Min元素优化运行,你可以很容易地在SO上的其他问题中找到如何做,并封装距离的计算自己的方法,但你明白了。
我有一个数据table,其中存储了按纬度和经度存储的数据。
我需要使用 LINQ 查询在此 datable 中进行过滤,并从给定的纬度和经度中找到最近的位置。
例如: 28.9873 -- 纬度, 80.1652 -- 经度
试试这个:
var minDistance = collection.Min( x => Math.Sqrt( Math.Pow( wantedLatitude - x.Latitude ) + Math.Pow( wantedLongitude - x.Longitude )));
var closestLocation = collection.First( x => Math.Sqrt( Math.Pow( wantedLatitude - x.Latitude ) + Math.Pow(wantedLongitude - x.Longitude )) == minDistance );
经过两次collection,所以我建议先找Min元素优化运行,你可以很容易地在SO上的其他问题中找到如何做,并封装距离的计算自己的方法,但你明白了。