vue中引入腾讯地图,并为多个marker添加事件

vue

一、在src里面建立了TMap.js的文件,内容如下:

export function TMap(key) {

return new Promise(function (resolve, reject) {

window.init = function () {

resolve(qq)//注意这里

}

var script = document.createElement("script");

script.type = "text/javascript";

script.src = "https://map.qq.com/api/js?v=2.exp&callback=init&key="+key;

script.onerror = reject;

document.head.appendChild(script);

})

}

二、引入TMap

TMap('申请的腾讯地图key').then()   

 

data () {

  return {

    key: 'IOHBZ-EV2R3-4BU3N-YEQN7-AQMYF-7XFF4'

  }

},

mounted () {

  this._getLocation()

},

methods:{

       _getLocation(){

getLocation(this.orgId).then(res=>{

let data = res.data.data.librarys

this._TMap(data)

})

},

_TMap(data){

TMap(this.key).then(qq => {

var center = new qq.maps.LatLng(39.916527,116.397128);

var map = new qq.maps.Map(document.getElementById("container"), {

// 地图的中心地理坐标

center: center,

//初始化地图缩放级别

zoom: 5

});

//添加提示窗

var infoWin = new qq.maps.InfoWindow({

map: map

});

//添加标记

for(let i=0;i<data.length;i++){

var marker = new qq.maps.Marker({

position: new qq.maps.LatLng(data[i].lat,data[i].lng),

map: map,

})

marker.libraryName = data[i].libraryName

qq.maps.event.addListener(marker, 'click', function() {

infoWin.open();

infoWin.setContent('<div style="text-align:center;white-space:'+

'nowrap;margin:10px;"> ' + this.libraryName+ ' </div>');

//提示窗位置

infoWin.setPosition(new qq.maps.LatLng(data[i].lat,data[i].lng));

})

}

});

},
}

 

三、效果如下

以上是 vue中引入腾讯地图,并为多个marker添加事件 的全部内容, 来源链接: utcz.com/z/378994.html

回到顶部