1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 改html更改百度首页背景颜色 百度地图_更改标注颜色

改html更改百度首页背景颜色 百度地图_更改标注颜色

时间:2019-06-02 19:50:24

相关推荐

改html更改百度首页背景颜色 百度地图_更改标注颜色

一、前期准备

1、 申请密匙

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

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

// 初始化标注

//初始化标注

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上加数字有多种方法

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

/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变蓝色

原文:/yjmBlogs/p/10212509.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。