Добрый день!
В шапке подключаю 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();
В чем может быть проблема?