最进做一个小程序,需求是查询附近相关信息,但是如何来判断附近是个问题!于是想到通过经纬度来判断附近。
思路: 通过当前经纬度给定附近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;
},
已经简单明了了是吧!只要你稍微懂一点代码都能看得懂的。