【百度地图】过滤点位数据只显示行政区划内的点位数据
程序员文章站
2022-07-03 18:11:27
...
由于信息录入的不准确性,很多数据的经纬度会出现偏差不在自己应该所在的范围内,但为了效果完美,需要将这些数据过滤掉,这里使用了D3.js中的d3.polygonContains()方法判断点位是否在几何内:
参考地址:1、D3.js官网地址
2、polygonContains github示例
具体实现方法如下:
一、在页面中引入d3-polygon地址,具体地址可在官网中下载<script src="js/lib/d3-polygon.v1.min.js"></script>
二、JS
//获取河南省边界经纬度点集合
var bdary = new BMap.Boundary();
bdary.get("河南省", function (rs) {
window.polygon = rs.boundaries[0].split(';').map(function(x) {return [parseFloat(x.split(',')[0]), parseFloat(x.split(',')[1])]});
});
//过滤在行政区划内的数据,resultData为从接口中获取的所有点位数据,将这句话加在获取点位数据方法中
var filterData=resultData.filter(function(x){return d3.polygonContains(polygon,[x.longitude,x.latitude])});
三、效果图
上一篇: 百度地图API之行政区域边界
下一篇: Leaflet实现地图按照行政区划遮罩