前言:需要根据用户的地理位置,计算出边的店家和商家。这时候使用到了高德地图,然后利用坐标进行区域内的计算。
规则
初始的计算,用的是两点的方式,左上和右下来确定距离,后来发现在执行的了一段时间后,有一些区域不是太好,偏差比较大,所以就修改成了,以中心点计算距离的方式来确定所归某个区域。
地图
高德地图API【JS】版本
代码
//区域中心点 以json的形式来写的 大家可以换成自己想用的格式
var xyCenter =
[
,,
];
//存放每个地点所计算出来的距离
var resArray = new Array();
//填写计算距离的结果 地点与距离
var belongArea = function(lnglat){
for(i=0;i
resArray[i]=new Array();
resArray[i][sign]=xyCenter[i].sign;
var endLngLat = new AMap.LngLat(xyCenter[i].lng,xyCenter[i].lat);
resArray[i][range]=parseInt(Math.abs(endLngLat.distance(lnglat)));
//console.log(resArray[i][range]);
}
};
//取最终的归属代号 大家可以修改成自己的,本程序所用1001 1002...
var maxRes = function(){
var tmp=resArray[0];
for(i=0;i
if(resArray[i][range]
tmp = i;
resArray[i+1] = resArray[i];
}else{
tmp = i+1;
}
}
return resArray[tmp][sign];
};
//调用方式
//获取LngLat
var startLngLat = new AMap.LngLat(116.319766,39.911448);
//传入到计算方法
belongArea(startLngLat);
//获取到最终结果
alert(maxRes());
结论
参考高德地图API的基础类里的LngLat类
核心就是我们利用中心点计算出用户的4个点的方位。然后通过规则算出区域,即可快速判断周边自己想给用户展示的数据
领取专属 10元无门槛券
私享最新 技术干货