Клуб API Карт

"ymaps.Map is not a constructor" с использованием ymaps.ready

s.kovalev@blueocean.by
17 марта 2016, 12:56

Добрый день!

В шапке подключаю API 

<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>

Далее в отдельном js файле объявляю 2 функции

function initMap(){

    var coord = $('#map').attr('data-addr-coord');

    var myMap = new ymaps.Map ("map", {
        center: createLatLng(coord),
        zoom: 15
    });


    // Создаем коллекцию, в которую будем добавлять метки
    var myCollection = new ymaps.GeoObjectCollection();

    //Добавляем метки в коллекцию геообъектов.
    myCollection.add(new ymaps.Placemark(createLatLng(coord), {
        coord_string: coord
    }));

    // Добавляем коллекцию геообъектов на карту.
    myMap.geoObjects.add(myCollection);

}

function createLatLng(posString){
    var commaPos = posString.indexOf(',');
    var coordinatesLat = parseFloat(posString.substring(0, commaPos));
    var coordinatesLong = parseFloat(posString.substring(commaPos + 1, posString.length));
    return [coordinatesLat, coordinatesLong];
}

Затем на странице идет вывод дива с координатами для карты и вызов initMap

<div id="map" data-addr-coord="<?= $arResult["MAP"]["VALUE"]; ?>"></div>
    <script type="text/javascript">
        ymaps.ready(initMap);
    </script>

В консоли ошибка "Uncaught TypeError: ymaps.Map is not a constructor" на строке

var myMap = new ymaps.Map ("map", {
        center: createLatLng(coord),
        zoom: 15
    });

в функции initMap.

Везде пишут что это по причине что API еще не загрузился, но я ведь вызываю через ymaps.ready();

В чем может быть проблема?

3 комментария
нужна ссылка на страницу с этит кодом
s.kovalev@blueocean.by
17 марта 2016, 15:24
http://kr.blueocean.by/how-to-make-creative-selling/
Всеволод Шмыров
17 марта 2016, 16:45
s.kovalev@blueocean.by,
Добрый день. У вас на странице подключаются две версии API. Обе они используются переменную ymaps. Получается гонка.
https://yadi.sk/i/vpcuPtPFqGNjz