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("上海市浦东新区")
        }
  • 相关阅读:
    leetcode701. Insert into a Binary Search Tree
    leetcode 958. Check Completeness of a Binary Tree 判断是否是完全二叉树 、222. Count Complete Tree Nodes
    leetcode 110. Balanced Binary Tree
    leetcode 104. Maximum Depth of Binary Tree 111. Minimum Depth of Binary Tree
    二叉树
    leetcode 124. Binary Tree Maximum Path Sum 、543. Diameter of Binary Tree(直径)
    5. Longest Palindromic Substring
    128. Longest Consecutive Sequence
    Mac OS下Android Studio的Java not found问题,androidfound
    安卓 AsyncHttpClient
  • 原文地址:https://www.cnblogs.com/wcnwcn/p/9961679.html
Copyright © 2011-2022 走看看