HTML5中注释颜色怎么改,百度地图_更改标注颜色(示例代码)

一、前期准备

1、  申请密匙

去百度地图控制台申请密匙。

fba4efa15656a79f85dd65a52b2eebce.png

2、  在index.html引入

注:去掉地图左下角的logo

.BMap_cpyCtrl{display:none;

}.anchorBL{display:none;

}

3、webpack.base.conf.js里面配置

在module.exports中与entry同级添加

externals: {"BMap": "BMap"},

4、  需要使用百度地图的组件中导入(地图中用到BMap 的需要导入)

import BMap from ‘BMap‘

5、   创建一个地图容器,需要有宽高

6、   然后在vue生命周期的mounted中调用

mounted() {this.initMap();

},

InitMap方法如下

//初始化地图

initMap() {this.map = new BMap.Map("mapBox"); //创建Map实例

this.map.centerAndZoom(new BMap.Point(108.95, 37.38), 5); //初始化地图,设置中心点坐标和地图级别

this.map.setCurrentCity("北京"); //设置地图显示的城市 此项是必须设置的

this.map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放

},

这样最初的地图就出来了

二:添加地图覆盖物(label,marker, initInfoWindow)

首先看后台给的数据

[{"lng":119.417854,"lat":39.921988,"total":10,"type":"red","content":"XX"},{"lng":116.417854,"lat":39.921988,"total":10,"type":"red","content":" XXXX"}]"

1、  初始化marker

0bd449c3ddc2f45c8c54e4c98c26e590.png

cf171c79f89443cb2fa20c23684e0551.png

// 初始化标注

//初始化标注

initMarker(data) {

let myIcon= null;

let pt= newBMap.Point(data.lng, data.lat);if (data.type == "red") {

myIcon= newBMap.Icon(

require("../assets/img/red_marker.png"),new BMap.Size(47, 52)

);

}else{

myIcon= newBMap.Icon(

require("../assets/img/bule_marker.png"),new BMap.Size(47, 52)

);

}return newBMap.Marker(pt, { icon: myIcon });//return new BMap.Marker(pt);

},

2、  初始化label

//初始化文字标签

initLabel(data) {

let opts={

position:new BMap.Point(data.lng, data.lat), //指定文本标注所在的地理位置

offset: new BMap.Size(-8, -25) //设置文本偏移量

};if (data.total < 10) {

opts.offset= new BMap.Size(-4, -18);

}else if (data.total >= 10 && data.total < 100) {

opts.offset= new BMap.Size(-8, -18);

}else if (data.total >= 100 && data.total < 1000) {

opts.offset= new BMap.Size(-12, -18);

}

let label= new BMap.Label(data.total, opts); //创建文本标注对象

label.setStyle({

color:"#fff",

border:"none",

fontSize:"12px",

height:"20px",

lineHeight:"20px",

fontFamily:"微软雅黑",

background:"rgba(0,0,0,0)"});returnlabel;

},

3、  初始化initInfoWindow

initInfoWindow(data) {

let str=data. content; //自定义窗口内容

return newBMap.InfoWindow(str, {

offset: {//偏移量

width: 5,

height:-20},

width:300,

enableCloseOnClick:true});

},

注:如下图在marker上加数字有多种方法

7e832a4e2ae432b2d6514b395212e0c9.png

(1)、通过自定义覆盖物做成数字然后添加上去。研究了下,比较麻烦具体看

https://blog.csdn.net/phper111/article/details/77897940

(2)、通过label设置偏移与样式

接下来是根据后台给的数据来整理自己需要的数据

4、  添加标注事件

setInfoWindow() {//清除地图上标注,文字标签

this.overlays.forEach(value =>{this.map.removeOverlay(value);

});//往地图添加标注点,与信息窗口

this.markerArr.forEach(opt =>{

let infoWindow= this.initInfoWindow(opt.data); //创建信息窗口对象

let marker = this.initMarker(opt.data); //创建标注点

let label = this.initLabel(opt.data); //创建文字标签

this.map.addOverlay(marker);this.map.addOverlay(label);this.overlays.push(marker, label);//监听打开信息窗口

let this_ = this;

marker.addEventListener("click", function() {

this_.map.openInfoWindow(infoWindow, opt.point);//开启信息窗口

this_.map.removeOverlay(marker);

opt.data.type= "blue";

this_.setInfoWindow();

$(".BMap_pop>img").hide();

});//监听关闭信息窗口

infoWindow.addEventListener("close", function() {

opt.data.type= "red";

this_.setInfoWindow();

});

});

}

最后就是这样的效果啦,当点击marker变蓝色

40fb41726f1abce70a90d7eec0acb62a.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值