vue项目,百度地图api高亮选取区域,高亮某个地区,行政区域等
效果如下:
1 var blist = []2 var districtLoading = 0
3
4
5 var map = new window.BMap.Map("container",{ minZoom:5,maxZoom:20 });// 创建地图实例
6 var point = new window.BMap.Point(89.48,31.57);
7 map.centerAndZoom(point,7.4);//设置中心点坐标和地图级别
8 map.enableScrollWheelZoom(); // 允许滚轮缩放
9 this.zoom = map.getZoom();
10 this.map = map;
11 this.getBoundary();
12
13
14
15
16
17 /*
18 =====获取行政区域边界=====
19 */
20 getBoundary() {
21 this.addDistrict("西藏");
22 },
23 /*
24 =====添加行政区域=====
25 */
26 addDistrict(districtName) {
27 let that = this;
28 //使用计数器来控制加载过程
29 districtLoading++;
30 var bdary = new BMap.Boundary();
31 bdary.get(districtName, function (rs) { //获取行政区域
32 var count = rs.boundaries.length; //行政区域的点有多少个
33 for (var i = 0; i < count; i++) {
34 blist.push({ points: rs.boundaries[i], name: districtName });
35 };
36 //加载完成区域点后计数器-1
37 districtLoading--;
38 if (districtLoading == 0) {
39 //全加载完成后画端点
40 that.drawBoundary();
41 }
42 });
43 },
44 /*
45 =====点击行政区域事件=====
46 */
47 click(evt) {
48 alert(evt.target.name);
49 },
50 /*
51 =====绘制边界=====
52 */
53 drawBoundary() {
54 let that = this;
55 //包含所有区域的点数组
56 var pointArray = [];
57 //循环添加各闭合区域
58 for (var i = 0; i < blist.length; i++) {
59 //添加多边形层并显示
60 var ply = new BMap.Polygon(blist[i].points, {
61 strokeWeight: 2, //边框宽度
62 trokeColor: "#FFA96E", //边框颜色
63 fillColor: " #DDE4F070" //填充颜色
64 }); //建立多边形覆盖物
65 ply.name = blist[i].name;
66 // ply.addEventListener("click", that.click);
67 this.map.addOverlay(ply);
68
69 //将点增加到视野范围内
70 var path = ply.getPath();
71 pointArray = pointArray.concat(path);
72 }
73
74 //限定显示区域(只显示特定区域,鼠标拖动松开后自动回到显示范围内),需要引用api库
75 // var boundply = new BMap.Polygon(pointArray);
76 // BMapLib.AreaRestriction.setBounds(map, boundply.getBounds());
77 this.map.setViewport(pointArray); //调整视野
78 },
79
以上是 vue项目,百度地图api高亮选取区域,高亮某个地区,行政区域等 的全部内容, 来源链接: utcz.com/z/377526.html