Инициализация яндекс карты при наведении
При наведении на элемент не загружается полностью яндекс карта.
Вот html
<div class="map" data-long="50.6106903" data-lat="36.5612213" data-zoom="13" id="map1"></div>
Вот js
$(".map").on("mouseover", function() {
img = $(this).children("img");
img.remove();
id = $(this).attr("id");
ymaps.ready(function () {
mapZoom = $(this).attr("data-zoom");
lat = $(this).attr("data-lat");
long = $(this).attr("data-long");
console.log(id);
var myMap = new ymaps.Map(id, {
center: [long, lat],
zoom: mapZoom
}, {
searchControlProvider: 'yandex#search'
});
myPlacemark1 = new ymaps.Placemark([long, lat], {
hintContent: ''
});
myMap.geoObjects.add(myPlacemark1);
});
});
Яндекс карта загружается не до конца (вся серая без карты). Как это исправить?
Ответы (1 шт):
Строка https://api-maps.yandex.ru/services/coverage/v2/?l=map&ll=NaN,NaN&z=NaN… в блоке Network консоли при наведении на карты означает отсутствие нужных параметров — координат и масштаба — при инициализации карты. При прямой передаче всех параметров в карту она работает исправно: https://jsbin.com/bajevef/1/edit?html,js,output.
Ваш текущий код, кроме того, дублирует создание карты при каждом повторном наведении на её блок, что можно увидеть в консоли. Посмотрите наш пример создания карты по требованию.
Также вы подключаете устаревшую версию API 2.0 вместо 2.1 и не указываете в коде API-ключ. Карта без ключа не обязана работать тоже, кроме того, это нарушение условий сервиса.