export default {
name: "YandexMap",
data() {
return {
coordinates: []
}
},
mounted() {
// Установить скрипты для использования яндекс карты
let scriptYandexMap = document.createElement('script');
scriptYandexMap.setAttribute('src', 'https://api-maps.yandex.ru/2.1/?lang=ru_RU');
document.head.appendChild(scriptYandexMap);
// Инициализировать яндекс карту
scriptYandexMap.addEventListener("load", this.initializeYandexMap);
// Выполнить "GET" запрос
axios.get('URL').then(response => {
let self = this;
let coordinates = [];
for (let i = 0; i < response.data.length; i++) {
coordinates.push([response.data[i]["LATITUDE"], response.data[i]["LONGITUDE"]]);
}
self.coordinates = coordinates;
// Установить метки на яндекс карту
self.setMarkers();
});
},
methods: {
initializeYandexMap() {
ymaps.ready(function(){
self.map = new ymaps.Map("yandex-map", {
center: [48.352571497155054, 64.04235076905002],
zoom: 5,
controls: [zoomControl, searchControl, 'fullscreenControl'],
searchControlProvider: 'yandex#search'
});
});
},
setMarkers() {
for (let i = 0; i < this.coordinates.length; i++) {
let placemark = new ymaps.Placemark(this.coordinates[i]);
this.map.geoObjects.add(placemark);
}
}
}
}
Uncaught (in promise) TypeError: ymaps.Placemark is not a constructor
at VueComponent.setMarkers
Я так понял, вы предлагаете код, который находится в функции setMarkers() перенести в initializeYandexMap(), я прав?