百度地图 添加行政区域

找资料的时候看到很多大佬写过关于百度地图添加行政区域但是由于我的是离线地图直接用百度地图api获取不到,所以自己写了一遍 记录一下。

function getBoundary(){       
	    	var areas = [];var polygons = [];  var pointArray = [];
		var haidian=[{"lng":116.401487,"lat":40.039207},{"lng":116.400306,"lat":40.040651},{"lng":116.399757,"lat":40.041429},{"lng":116.398017,"lat":40.042067},{"lng":116.39689,"lat":40.043233},{"lng":116.397347,"lat":40.045124}];
		var tongzhou=[{"lng":116.96058,"lat":39.792475},{"lng":116.958454,"lat":39.796624},{"lng":116.955664,"lat":39.797443},{"lng":116.947546,"lat":39.79918}]
                var haidian1 = []
		for (var i in haidian) {
			haidian1.push(new BMap.Point(haidian[i].lng,haidian[i].lat));
		}
		var tongzhou1 = []
		for (var i in tongzhou) {
			tongzhou1.push(new BMap.Point(tongzhou[i].lng,tongzhou[i].lat));
		}
                areas.push(haidian1)
		areas.push(tongzhou1)
                colors = ["#fff492", "#98d057", "#e19ee6", "#1ad3da", "#ffc11d", "#98e800", "#b95817", "#03a9f4", "#39d0a4", "#8bbb53"];
	        for (var i = 0; i < areas.length; i++) {
	            var ply = new BMap.Polygon(areas[i], { strokeWeight: 4, strokeColor:colors[i] }); //建立多边形覆盖物
	            ply.setFillColor("")   //设置多边形的填充颜色
	            ply.setFillOpacity(0.35);
	            polygons.push(ply);  //加入多边形数组,以之后获取多边形边界点集
	            map.addOverlay(ply);  //添加覆盖物
	            pointArray = pointArray.concat(ply.getPath());
	         }
	       map.setViewport(pointArray);    //调整视野  
    }
        
setTimeout(function(){
	getBoundary();
}, 10);
			

示例图: 

 为啥要这样写:遇到一个问题就是地图不缩小可以看到所有的多边形,但是当地图放大的时候有的多边形会消失

如何获取到行政区的坐标点:我是用的百度地图api实例(http://lbsyun.baidu.com/jsdemo.htm#c1_10)打印覆盖物获取坐标

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值