Как использовать API Bing Maps в приложении Vue JS для отображения карты?
Примечание : я использую карты Bing V8 и vuejs 2.5.17.
Это мой шаблон
<template>
<div id="map"></div>
</template>
Это мой стиль
<style lang="scss" scoped>
#map {
height: 300px;
width: 500px;
}
</style>
Это моя часть скрипта (я использую объектный компонент класса)
mounted() {
let mapElement: HTMLElement = <HTMLElement>document.getElementById("map")
var map = new Microsoft.Maps.Map(mapElement, {
credentials: [API_KEY]
});
}
Вот так я включаю внешний скрипт из cdn в мое приложение.
После некоторых исследований я нашел и попробовал 2 варианта ниже
Вариант 1: я включил скрипт непосредственно в мой файл index.html:
<!-- index.html -->
...
<head>
...
<script src="https://www.bing.com/api/maps/mapcontrol?key=[API_KEY]" async defer></script>
</head>
Вариант 2. Я программно внедряю скрипт в документ из моего компонента в смонтированный метод, как показано ниже
mounted() {
// Add programmaticaly the external Bing maps api script
var scriptTag = document.createElement("script");
scriptTag.src = "https://www.bing.com/api/maps/mapcontrol";
scriptTag.id = "bingApiMaps";
// Inject the dynamic script in the DOM
document.head.appendChild(scriptTag);
...
}
В обоих случаях у меня возникает следующая ошибка, и я не понимаю, почему:
[Vue warn]: Error in mounted hook: "ReferenceError: Microsoft is not defined"