根据一个给定经纬度的点和距离,进行附近地点查询

来源:转载

根据网上提供的方法,自己整理的:

根据一个给定经纬度的点和距离,进行附近地点查询


解决方案:


///


/// 根据一个给定经纬度的点和距离,进行附近地点查询
///

/// 经度
/// 纬度
/// 距离(单位:公里或千米)
/// 返回一个范围的4个点,最小纬度和纬度,最大经度和纬度
public static PositionModel FindNeighPosition(double longitude, double latitude, double distance)
{
//先计算查询点的经纬度范围
double r = 6378.137;//地球半径千米
double dis = distance;//千米距离
double dlng = 2 * Math.Asin(Math.Sin(dis / (2 * r)) / Math.Cos(latitude * Math.PI / 180));
dlng = dlng * 180 / Math.PI;//角度转为弧度
double dlat = dis / r;
dlat = dlat * 180 / Math.PI;
double minlat = latitude - dlat;
double maxlat = latitude + dlat;
double minlng = longitude - dlng;
double maxlng = longitude + dlng;
return new PositionModel
{
MinLat = minlat,
MaxLat = maxlat,
MinLng = minlng,
MaxLng = maxlng
};
}
DistanceHelper代码


分享给朋友:
您可能感兴趣的文章:
随机阅读: