使用百度地图绘制行政区划边界

2025-10-24 23:38:40

1、需要注册百度地图开放平台,并且申请百度地图专用ak。

使用百度地图绘制行政区划边界

2、新建html页面,将百度地图JavaScript API以js的方式引入,注意,此处的ak就是上面申请的ak

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=igKR42424242242dfsdsLMHIj"></script>

使用百度地图绘制行政区划边界

3、在页面声明一个div元素,用于百度地图的容器,

<div id="allmap" style="width: 100%; height: 100%; position: absolute;"></div>

使用百度地图绘制行政区划边界

4、编写js代码,实例化百度地图控件。本文以襄阳市为例

 var map = new BMap.Map("allmap");//实例化

    map.setMapStyle({

        styleJson: [

        {

            "featureType": "road",

            "elementType": "all",

            "stylers": {

                "color": "#ffffff",

                "visibility": "off"

            }

        }

        ]

    });

    var oldply;

    map.centerAndZoom("襄阳市", 9);

    map.addControl(new BMap.MapTypeControl());   //添加地图类型控件

    map.setCurrentCity("襄阳市");          // 设置地图显示的城市 此项是必须设置的

    map.enableScrollWheelZoom();

    map.disableDoubleClickZoom();

使用百度地图绘制行政区划边界

5、编写获取行政区域边界坐标的方法,并添加点击事件。

 function getBoundary(data) {

        var bdary = new BMap.Boundary();

        bdary.get(data, function (rs) {

            var maxNum = -1, maxPly;

            var ply = new BMap.Polygon(rs.boundaries[0], { strokeWeight: 2, strokeOpacity: 0.5, fillColor: "#CDAA7D", strokeColor: "#FF00FF" });

            map.addOverlay(ply);

            //开始用"mouseover","mouseout"发现,鼠标移动过快,会多个省份也高亮了.所以改成 click了

            ply.addEventListener("click", function (e) {

                if (typeof (oldply) != "undefined") {

                    oldply.setFillColor("#E0FFFF");

                }

                ply.setFillColor("red");

                oldply = ply;

            });

            if (maxPly) {

                map.setViewport(maxPly.getPoints());

            }

        });

    }

使用百度地图绘制行政区划边界

6、调用获取边界的方法,绘制边界。此处请注意,如果给定的行政区划百度api查询不到,则不会绘制边界。

    var datas = ["襄城区", "樊城区", "襄阳区", "南漳县", "谷城县", "保康县", "老河口市", "枣阳市", "宜城市"];

    for (var i = 0; i < datas.length; i++) {

        getBoundary(datas[i]);

    }

使用百度地图绘制行政区划边界

7、运行代码,效果如图,可点击不同区域,且也有效果。

使用百度地图绘制行政区划边界

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢