欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【百度地图】过滤点位数据只显示行政区划内的点位数据

程序员文章站 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])});

三、效果图
【百度地图】过滤点位数据只显示行政区划内的点位数据