1 //创建地图实例

2 var map = new BMap.Map("myMap",{enableMapClick: false});3 //以四川省为地图中心,显示层级为13

4 map.centerAndZoom("四川省", 13);5 //允许滚动鼠标缩放地图

6 map.enableScrollWheelZoom(true);7 setTimeout(function() {8 map.enableDragging(); //两秒后开启拖拽

9 }, 2000);10 var index = 0;11 var myGeo = newBMap.Geocoder();12 //需要批量解析显示的地址

13 var adds =[14 "煎茶镇",15 "新兴镇",16 "永安镇",17 "白家沟",18 "正兴镇",19 "万安镇",20 "南湖湿地公园"

21 ];22 var blist =[];23 var districtLoading = 0;24

25 functiongetBoundary() {26 //设置指定显示区域双流、龙泉驿

27 addDistrict("成都市双流区");28 addDistrict("成都市龙泉驿区");29 }30

31 functionaddDistrict(districtName) {32 //使用计数器来控制加载过程

33 districtLoading++;34 var bdary = newBMap.Boundary();35 bdary.get(districtName, function(rs) { //获取行政区域

36 var count = rs.boundaries.length; //行政区域的点有多少个

37 if(count === 0) {38 alert('未能获取当前输入行政区域');39 return;40 }41 for(var i = 0; i < count; i++) {42 blist.push({ points: rs.boundaries[i], name: districtName });43 };44 //加载完成区域点后计数器-1

45 districtLoading--;46 if(districtLoading == 0) {47 //全加载完成后画端点

48 drawBoundary();49 }50 });51 }52

53 functiondrawBoundary() {54 //包含所有区域的点数组

55 var pointArray =[];56

57 /*画遮蔽层的相关方法58 *思路: 首先在中国地图最外画一圈,圈住理论上所有的中国领土,然后再将每个闭合区域合并进来,并全部连到西北角。59 * 这样就做出了一个经过多次西北角的闭合多边形*/

60 //定义中国东南西北端点,作为第一层

61 var pNW = { lat: 59.0, lng: 73.0}62 var pNE = { lat: 59.0, lng: 136.0}63 var pSE = { lat: 3.0, lng: 136.0}64 var pSW = { lat: 3.0, lng: 73.0}65 //向数组中添加一次闭合多边形,并将西北角再加一次作为之后画闭合区域的起点

66 var pArray =[];67 pArray.push(pNW);68 pArray.push(pSW);69 pArray.push(pSE);70 pArray.push(pNE);71 pArray.push(pNW);72 //循环添加各闭合区域

73 for(var i = 0; i < blist.length; i++) {74 //添加显示用标签层

75 var label = new BMap.Label(blist[i].name, { offset: new BMap.Size(20, -10) });76 label.hide();77 map.addOverlay(label);78

79 //添加多边形层并显示

80 var ply = new BMap.Polygon(blist[i].points, { strokeWeight: 2, strokeColor: "#5185E6", fillOpacity: 0.01, fillColor: " #FFFFFF" }); //建立多边形覆盖物

81 ply.name =blist[i].name;82 ply.label =label;83 map.addOverlay(ply);84

85 //将点增加到视野范围内

86 var path =ply.getPath();87 pointArray =pointArray.concat(path);88 //将闭合区域加到遮蔽层上,每次添加完后要再加一次西北角作为下次添加的起点和最后一次的终点

89 pArray =pArray.concat(path);90 pArray.push(pArray[0]);91 }92

93 //限定显示区域,需要引用api库

94 var boundply = newBMap.Polygon(pointArray);95 BMapLib.AreaRestriction.setBounds(map, boundply.getBounds());96 map.setViewport(pointArray); //调整视野

97

98 //添加遮蔽层(描边线条,遮罩层颜色)

99 var plyall = new BMap.Polygon(pArray, { strokeOpacity: 0.0000001, strokeColor: "#fff", strokeWeight: 0.00001, fillColor: "#ffffff", fillOpacity: 1 }); //建立多边形覆盖物

100 map.addOverlay(plyall);101 }102

103 functionbdGEO() {104 var add =adds[index];105 geocodeSearch(add);106 index++;107 }108 getBoundary();109 functiongeocodeSearch(add) {110 if(index

121 functionaddMarker(point, label) {122 //使用自定义图标做标注点,宽高为8 10

123 var myIcon = new BMap.Icon("marker_red_sprite2.png", new BMap.Size(8, 10));124 var marker = newBMap.Marker(point,{icon: myIcon});125 map.addOverlay(marker);126 marker.setLabel(label);127 label.setStyle({128 display:"none"

129 })130 marker.addEventListener("mouseover",function(e){131 var label = this.getLabel();132 //设置label的样式,这里没有过多要求,能显示出来就行

133 label.setStyle({134 display:"block",135 borderRadius:"2px",136 border:"1px solid #5185E6",137 padding:"2px 4px"

138 })139 });140 marker.addEventListener("mouseout",function(e){141 var label = this.getLabel();142 label.setStyle({143 display:"none"

144 })145 });146 }147 bdGEO();

android地图遮罩,百度地图api高亮显示指定区域,其余遮罩相关推荐

  1. android百度地图箭头,百度地图API绘制带头箭头的折线

    源代码: body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;} #l-map{height:100%;wid ...

  2. Android百度地图(一):百度地图定位sdk 类方法参数、定位原理详细介绍

    ***转载.引用请标明出处*** http://www.jianshu.com/p/29ccac3e1e42 本文出自[zhh_happig的简书博客](http://www.jianshu.com/ ...

  3. Android studio显示百度地图及闪退问题的解决

    Android studio引入百度地图包括解决真机闪退问题 引入百度地图方法 申请百度地图key 百度地图SDK下载即配置 完整代码及部分解释 MainActivity.java AndroidMa ...

  4. Android Studio调用百度地图(二):实现地图显示后台定位和步行导航

    先看一下运行效果: 实现功能:后台定位+步行导航(可通过长按屏幕自定义终点,起点为定位点) 后台定位即当程序在后台时依旧执行定位功能,步行导航支持30米-50千米范围内的导航 一 导入SDK并配置相关 ...

  5. Android开发之百度地图定位

    Android开发之百度地图定位 一.效果图 二.下载百度地图SDK 1.打开[百度地图](https://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9% ...

  6. 高德h5地图api接口_html5通过腾讯地图、高德地图、百度地图开发api接口获取坐标对应的周边信息...

    在通过 geolocation 获取到当前的 GPS 坐标后,需要通过"逆地理位置解析"才能得到街道对应的街道.建筑物.周边等相关信息. 下面我使用国内的三家主要的地图厂商(腾讯地 ...

  7. Windows Store Javascript项目使用高德地图、谷歌地图、百度地图API

    Windows Store Javascript项目使用高德地图.谷歌地图.百度地图API 原文 Windows Store Javascript项目使用高德地图.谷歌地图.百度地图API 在Win8 ...

  8. js百度地图android定位不准,百度地图js定位不准

    浏览器H5定位即navigator.geolocation,通过IP或者域名的形式,如:http://172.21.3.82:8080 和http://b.cunzhang.com进行访问时,调用na ...

  9. php开发地图导航,百度地图API使用方法详解

    最近做了个项目,其中项目中有个需求需要用到百度地图进行导航,通过查阅相关资料参考百度地图api完成了一个例子. 示例一: body, html,#allmap {width: 100%;height: ...

最新文章

  1. 2018年英语计算机职称考试,2018年职称计算机考试报考指南大全
  2. 永恒python地速_立竿见影地把你的 Python 代码提速7倍
  3. Prepare for Mac App Store Submission--为提交到Mac 应用商店做准备
  4. 使用hbuilder的maps模块调起百度地图导航
  5. java虚拟机堆栈工作原理_java虚拟机工作原理?
  6. IDEA的使用,手把手带你快速入门IDEA
  7. C# - 企业框架下的存储过程输出参数
  8. PTA: 6-6 链表拼接(20分)
  9. 黑马python入门笔记(部分)
  10. 管理菜单 结贴回复 来自 202.112.36.253 的回复: TTL 传输中过期
  11. 新一代物联网商用全面铺开 NB-IoT擎起新智慧城市
  12. Entry name *.xml collided终极解决方案
  13. ReSharper未按照预期路径安装后如何修改(Windows 找不到“C:\Program Files (x86)\JetBrains\Installations”。请检查拼写并重试)
  14. 【四二学堂】标准GPS坐标,转换成百度坐标
  15. 科比,老大1000天
  16. 公路多孔箱涵设计_双孔8x3.3米钢筋混凝土箱涵设计套图(19张)
  17. web端网页变为灰色
  18. BI商业智能开启新时代,什么样的BI工具值得选?
  19. 淘宝上线短视频APP鹿刻:害抖音之心无,防抖音之心有
  20. W5500芯片使用bug及注意事项

热门文章

  1. 一次m2eclipse的安装大坑经历之http://m2eclipse.sonatype.org/sites/m2e
  2. 全国计算机二级和浙江省计算机二级内容,浙江省计算机二级考试 办公软件 的考试范围和大概内容是什么?...
  3. 浙江计算机二级考哪些专业好,浙江省计算机二级都考什么
  4. 实施化工厂人员定位解决方案的必要因素,人员定位管理技术高超-新导智能
  5. 《抽样技术》第1章 绪论
  6. 【模拟电路】仪表放大器分析
  7. 架构师的软实力之估算
  8. 用Python帮你随机选择双色球号码
  9. Java环境准备——JDK下载和安装、IDEA下载和安装
  10. 良心推荐:机器学习入门资料汇总及学习建议(2018版)--黄海广