vue項目中,高德地圖使用。
引入vue中。異步導入vue中。
gaoDe(key) {
window.onApiLoaded = function () {
var map = new AMap.Map('container', {
resizeEnable: true,
center: [113.951955, 22.530825],
zoom: 16
});
}
var url = `https://webapi.amap.com/maps? v=1.4.15&key=${key}&callback=onApiLoaded`;
var jsapi = document.createElement('script');
jsapi.charset = 'utf-8';
jsapi.src = url;
document.head.appendChild(jsapi);
mounted() {
this.gaoDe('key');
},
在vue組件中使用,直接寫在mouted中會出現AMap未定義的報錯!
目前,個人是使用定時器解決的。
// 地圖接口API
mapCom() {
let _this = this;
window.onLoad = function () {
var map = new AMap.Map('mapBox', {
resizeEnable: true,
center: [113.951955, 22.530825],
zoom: 16
});
// console.log( _this.mapArray);
// 渲染坐標
// console.log(_this.status==false)
setTimeout(() => {
if (_this.status == false) {
return;
}
// console.log(_this.mapArray);
_this.mapArray.forEach(item => {
// console.log(item)
var marker = new AMap.Marker({
map: map,
icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png",
position: item,
offset: new AMap.Pixel(-10, -30)
});
})
}, 1000)
// console.log(_this.mapArray);
map.plugin(["AMap.ToolBar"], function () {
map.addControl(new AMap.ToolBar());
});
}
var url = `https://webapi.amap.com/maps?v=1.4.15&key=91d89e79a544b9ab37aa0147aec9bd0a&callback=onLoad`;
var jsapi = document.createElement('script');
jsapi.charset = 'utf-8';
jsapi.src = url;
document.head.appendChild(jsapi);
},