Инициализация яндекс карты при наведении

При наведении на элемент не загружается полностью яндекс карта.

Вот 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 шт):

Автор решения: YaSupport

Строка 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-ключ. Карта без ключа не обязана работать тоже, кроме того, это нарушение условий сервиса.

→ Ссылка