zoukankan      html  css  js  c++  java
  • 百度地图 圈出省份轮廓图并高亮

    //描绘省份轮廓线
        addSCBorder:function () {
            var blist = [];
    
            /**
             * 添加行政区划
             * @param {} districtName 行政区划名
             * @returns  无返回值
             */
            function addDistrict(districtName) {
                var me = this;
                //使用计数器来控制加载过程
                //使用百度接口加载边界经纬度数据
                var bdary = new BMap.Boundary();
                bdary.get(districtName, function (rs) {       //获取行政区域
                    blist.push({points: rs.boundaries[0], name: districtName});
                    drawBoundary();
                });
            }
    
            function drawBoundary() {
                //包含所有区域的点数组
                var pointArray = [];
    
                /*画遮蔽层的相关方法
                 *思路: 首先在中国地图最外画一圈,圈住理论上所有的中国领土,然后再将每个闭合区域合并进来,并全部连到西北角。
                 *      这样就做出了一个经过多次西北角的闭合多边形*/
                //定义中国东南西北端点,作为第一层
                var pNW = {lat: 59.0, lng: 73.0};
                var pNE = {lat: 59.0, lng: 136.0};
                var pSE = {lat: 3.0, lng: 136.0};
                var pSW = {lat: 3.0, lng: 73.0};
                //向数组中添加一次闭合多边形,并将西北角再加一次作为之后画闭合区域的起点
                var pArray = [];
                pArray.push(pNW);
                pArray.push(pSW);
                pArray.push(pSE);
                pArray.push(pNE);
                pArray.push(pNW);
                //循环添加各闭合区域
                //添加显示用标签层
                var label = new BMap.Label(blist[0].name, {offset: new BMap.Size(20, -10)});
                label.hide();
                map.addOverlay(label);
    
                //添加多边形层并显示
                var ply = new BMap.Polygon(blist[0].points, {
                    strokeWeight: 2,
                    strokeColor: "#FF0000",
                    fillOpacity: 0.01,
                    fillColor: " #FFFFFF"
                }); //建立多边形覆盖物
                ply.name = blist[0].name;
                ply.label = label;
                ply.Type = "Border";
                map.addOverlay(ply);
    
                //将点增加到视野范围内
                var path = ply.getPath();
                pointArray = pointArray.concat(path);
                //将闭合区域加到遮蔽层上,每次添加完后要再加一次西北角作为下次添加的起点和最后一次的终点
                pArray = pArray.concat(path);
                pArray.push(pArray[0]);
    
                //限定显示区域,需要引用api库
                try {
                    map.setViewport(pointArray);    //调整视野
                } catch (err) {
                    console.log(err)
                }
    
    
                //添加遮蔽层
                var plyall = new BMap.Polygon(pArray, {
                    strokeOpacity: 0.0000001,
                    strokeColor: "#04121b",
                    strokeWeight: 0.00001,
                    fillColor: "#04121b",
                    fillOpacity: 0.7
                }); //建立多边形覆盖物
                plyall.Type = "Border";
                map.addOverlay(plyall);
    
            }
    
            addDistrict("上海市浦东新区")
        }
  • 相关阅读:
    destroy-method="close"
    2.2 Spring的结构组成--Spring源码深度解析
    2.1 Spring容器的基本实现--Spring源码深度解析
    1.2 Spring环境搭建--Spring源码深度解析
    1.1 Spring的整体架构--Spring源码深度解析
    迟到的2016年计划
    spring学习 之helloworld
    从零实现DNN 探究梯度下降的原理
    Java注解——这些@圈圈都是个啥?
    自动发送日报,骗过你的领导^-^
  • 原文地址:https://www.cnblogs.com/wcnwcn/p/9961679.html
Copyright © 2011-2022 走看看