public class DistanceHelper
{
private const double EARTH_RADIUS = 6378137;
/// <summary>
/// 根据一个给定经纬度的点和距离,进行附近地点查询
/// </summary>
/// <param name="longitude">经度</param>
/// <param name="latitude">纬度</param>
/// <param name="distance">距离(单位:公里或千米)</param>
/// <returns>返回一个范围的4个点,最小纬度和纬度,最大经度和纬度</returns>
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 = latitu