rdd
@rdd
Только хардкор

Как в яндекс карте отцентровать карту по переданным ей координатам?

Добрый день, друзья.
Есть яндекс карта и точки на карте, которые задаются через админку битрикса. Карта центруется по заданным вначале координатам, рядом с картой, списком выводятся адреса точек, в атибутах у них прописаны координаты точки. Подскажите, как при клике на ту самую точку вставить её координаты в карту?
При клике на элемент я выдергиваю коодинаты из атрибута (58.90741,30.16064), но вот как их вставить?
Код карты:
<div class="address-tab-item">
          <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
            <script type="text/javascript">
            ymaps.ready(init);
            
            function init () {
              var myMap = new ymaps.Map("map", {
                  center: [57.9204 ,33.3362],
                  zoom: 12
                }, {
                  searchControlProvider: 'yandex#search'
                }),
            
              // Создаем геообъект с типом геометрии "Точка".
              myGeoObject = new ymaps.GeoObject();
              myMap.geoObjects
                <?foreach($arResult["ITEMS"] as $arItems):?>
                .add(new ymaps.Placemark([<?=$arItems["PROPERTY_76_VALUE"]?>], {
                  iconCaption: '<?=$arResult["CONTACTS_TYPE"][$arItems["PROPERTY_67_ENUM_ID"]]?> <?=$arItems["NAME"]?>'
                }, {
                  preset: 'islands#blueCircleDotIconWithCaption'
                }))
                <?endforeach;?>
                ;
            }
            </script>
          <div id="map" style="width: 100%; height: 550px"></div>
        </div>

Буду рад любой помощи, заранее благодарю
  • Вопрос задан
  • 2548 просмотров
Решения вопроса 1
rdd
@rdd Автор вопроса
Только хардкор
Все оказалось намного проще. Манипуляции с картой нужно прописываться после её инициализации, в самом вставляемом коде скрипта, тогда все будет норм.
В моем случае код бы таким (внутри скрипта карты):
$('.address .place').on('click', function(){
	var setCor = $(this).attr('pointcor').split(',');
// распарсили строку по ',' в массив
	myMap.setCenter(setCor, 16);
// передали в функию новые координаты с нужным зумом
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ну вы хоть заглянули бы в документацию.
Есть метод setCenter, там даже анимацию перехода можно сделать.
P.S. координаты можно достать из Placemark.
Можно добавить событие click для Placemark, и в нём вызвать метод, указанный выше.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы