高德地图基础总结
初始化地图
1 | this.map = new AMap.Map('map', { |
封装创建marker
1 | createlcMaker(data,clickHandler,hoverHandler, mouseoutHandler){ |
调用创建marker封装方法
1 | for (let i = 0; i < data.length; i++) { |
获取所有覆盖物显/隐藏
1 | var allOverlay = this.map.getAllOverlays(); |
自定义图层
1 | let rspMark = new AMap.Marker({ |
- 每创建一个rspMark则是一个图层对象,需要单独push到一个数组中,方便循环进行删除查找等操作
- item.getExtData()获取自定义数据及setContent更换内容
js 1
2
3
4
5
6
7
8
9
10
11this.eventMarkers.forEach(item => {
if (item.getExtData().id === obj.rspId) {
let html =
'<div style="display: flex;">' +
' <img style="width: 71px;height: 40px;" src="' + this.ImgUrl + 'lc-left.png" alt="" class=" ">' +
'</div>';
item.setzIndex(99);
item.setContent(html);
item.setExtData({id: obj.rspId, speed: obj.speed, volume: obj.volume})
}
});socker实时失效获取地图的marker的eventId删除并且重新打点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18this.oldData = [];
//listids后端返回失效的地图点id
for(let i =0;i<listids.length;i++){
for (let j = 0; j < this.eventMarkers.length; j++) {
if(this.eventMarkers[j].w.extData.eventId == listids[i]){
//保存旧的数据重新打点
this.oldData.push(this.eventMarkers[j].w.extData.data);
this.eventMarkers[j].setMap(null);//删除地图上的marker
this.eventMarkers.splice(j,1);//删除图层中的数据
}
}
}
//重新打点
if(this.oldData.length>0){
for (let j = 0; j < this.oldData.length; j++) {
this.creatEventMarker(this.oldData[j]);
}
}