js 实现 给定经纬度,计算附近多少公里范围内的地点

最进做一个小程序,需求是查询附近相关信息,但是如何来判断附近是个问题!于是想到通过经纬度来判断附近。

思路:  通过当前经纬度给定附近N千米来计算最大最小经纬度。

代码如下:(当然代码不是自己造的,参考:https://blog.csdn.net/pavel101/article/details/83585431

  /**
   * 附近位置最大最小经纬度计算 
   * @param   longitude  经度
   * @param   latitude   纬度
   * @param   distince    距离(千米)
   * @returns 格式:经度最小值-经度最大值-纬度最小值-纬度最大值
   */
  getMaxMinLongitudeLatitude(longitude,latitude,distince){
    console.log("MaxMinLongitudeLatitude",longitude,latitude);
    let r = 6371.393;    // 地球半径千米
    let lng = longitude;
    let lat = latitude;
    let dlng = 2 * Math.asin(Math.sin(distince / (2 * r)) / Math.cos(lat * Math.PI / 180));
    dlng = dlng * 180 / Math.PI;// 角度转为弧度
    let dlat = distince / r;
    dlat = dlat * 180 / Math.PI;
    let minlat = lat - dlat;
    let maxlat = lat + dlat;
    let minlng = lng - dlng;
    let maxlng = lng + dlng;
    return minlng + "-" + maxlng + "-" + minlat + "-" + maxlat; 
  },

已经简单明了了是吧!只要你稍微懂一点代码都能看得懂的。

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值