zoukankan      html  css  js  c++  java
  • 百度地图--省份轮廓描述

    方式一:
    getBoundary:function (name,color) { var me= this; var bdary = new BMap.Boundary(); bdary.get(name, function(rs){ console.log(rs); var count = rs.boundaries.length; for(var i = 0; i < count; i++){ var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 1, strokeOpacity:0.5,fillColor:color,strokeColor: "#000000"}); map.addOverlay(ply); } }); }

    调用   getBoundary("宁夏","#ff0000")

      

    方式二:
    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[1], 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库
                map.setViewport(pointArray);    //调整视野
    
                //添加遮蔽层
                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);
    
                // 编写自定义函数,创建标注
                function addMarker(point) {
                    var marker = new BMap.Marker(point);
                    map.addOverlay(marker);
                }
    
            }
            addDistrict("宁夏")
        }
    调用 addSCBorder

      

  • 相关阅读:
    git 命令参考手册 git中文命令参考手册大全
    php常用命令大全
    freemarker中的list 前端模板
    jquery-懒加载技术(简称lazyload)
    JavaScript跨域总结与解决办法 什么是跨域
    Ajax+Spring MVC实现跨域请求(JSONP)JSONP 跨域
    jQuery- v1.10.2 源码解读
    css技巧
    前端异常捕获与上报
    兼容性/pollyfill/shim/渐进增强/优雅降级
  • 原文地址:https://www.cnblogs.com/wcnwcn/p/9509628.html
Copyright © 2011-2022 走看看