@p_v_l
Viam supervadet vadens

Почему на MODX REVO не выводятся координаты объекта на Яндекс-карте?

Здравствуйте!
После переноса сайт на хостинг, не выводятся объекты на Яндекс-картах.
Для объектов создан TV-параметр contacts_address (текстовое поле, в которое вводится адрес).
Карта выводится в чанке:
<script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<script type="text/javascript">
    ymaps.ready(init);
    var myMap;

    function init() {
        myMap = new ymaps.Map("map", {
            center: [[get_coord? &addr=`[[*contacts_address]]`]],
            controls: ['zoomControl'],
            zoom: 16
        });
        
        var myPlacemark = new ymaps.Placemark([[get_coord? &addr=`[[*contacts_address]]`]], {
            hintContent: '[[++site_name]]',
            balloonContent: '[[*contacts_address]]'
        });
        myMap.geoObjects.add(myPlacemark);
    }
</script>
<div class="map" id="map" style="width:100%; height:250px; margin-top:15px;"></div>

Сниппет get_coord:
<?php
if($addr) {
    $json = file_get_contents('http://geocode-maps.yandex.ru/1.x/?format=json&geocode='.$addr);
    $ar = json_decode($json, true);

    $pos = $ar['response']['GeoObjectCollection']['featureMember'][0]['GeoObject']['Point']['pos'];
    $temp = explode(" ", $pos);
    return '[' . "{$temp[1]}, {$temp[0]}" . ']';
}

Выполнено по примеру: modx.ru/novosti-i-stati/article/261

При просмотре исходного кода страницы видно, что координаты не передаются:
<script type="text/javascript">
    ymaps.ready(init);
    var myMap;

    function init() {
        myMap = new ymaps.Map("map", {
            center: [, ],
            controls: ['zoomControl'],
            zoom: 16
        });
        
        var myPlacemark = new ymaps.Placemark([, ], {
            hintContent: 'ООО',
            balloonContent: 'Саратов, ул. Астраханская, д.1'
        });
        myMap.geoObjects.add(myPlacemark);
    }
</script>
  • Вопрос задан
  • 427 просмотров
Пригласить эксперта
Ответы на вопрос 1
ruslan_aleev
@ruslan_aleev
MODX с cat-Art.ru
Здравствуйте, я в карту передаю координаты через TV так:
center: [ [[*tv_map_dot]] ],, я заметил, что без пробелов не работает, т.е. добавьте в сниппете get_coord: пробелы в return '[ ' . "{$temp[1]}, {$temp[0]}" . ' ]';.
Так же попробуйте вызвать TV с координатами в карте, без сниппета, может ошибка в скрипте карты.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы