Доброго времени суток, сегодня столкнулся с наболевшей проблемой по кастомизации вывода местоположения пользователя на яндекс карте при редактировании элемента инфоблока.
По дефолту регион в котором выводится карта - это Москва. Для других регионов приходилось постоянно искать город в котором нужно выставить метку, соответственно тратилось время.
Немного погуглив интернет, подходящих решений не нашлось, начал копать самостоятельно.
В итоге было так:

Стало:

Итак, как все это дело реализовать, я использовал автоматическое определение местоположение средствами Яндекс по IP адресу.
Открываем системный компонент:
/bitrix/components/bitrix/map.yandex.system/templates/.default/template.php
Ищем строки (у меня с 16 по 20 строку):
Заменяем их на:
И все, радуемся результату, как работает определение местоположение, можно почитать на api.yandex.ru
По дефолту регион в котором выводится карта - это Москва. Для других регионов приходилось постоянно искать город в котором нужно выставить метку, соответственно тратилось время.
Немного погуглив интернет, подходящих решений не нашлось, начал копать самостоятельно.
В итоге было так:

Стало:

Итак, как все это дело реализовать, я использовал автоматическое определение местоположение средствами Яндекс по IP адресу.
Открываем системный компонент:
/bitrix/components/bitrix/map.yandex.system/templates/.default/template.php
Ищем строки (у меня с 16 по 20 строку):
var map = window.GLOBAL_arMapObjects['<?echo $arParams['MAP_ID']?>'] = new ymaps.Map(node, { center: [<?echo $arParams['INIT_MAP_LAT']?>, <?echo $arParams['INIT_MAP_LON']?>], zoom: <?echo $arParams['INIT_MAP_SCALE']?>, type: 'yandex#<?=$arResult['ALL_MAP_TYPES'][$arParams['INIT_MAP_TYPE']]?>' }); |
var geolocation = ymaps.geolocation, coords = [geolocation.latitude, geolocation.longitude], map = window.GLOBAL_arMapObjects['<?echo $arParams['MAP_ID']?>'] = new ymaps.Map(node, { center: coords, type: 'yandex#<?=$arResult['ALL_MAP_TYPES'][$arParams['INIT_MAP_TYPE']]?>', zoom: <?echo $arParams['INIT_MAP_SCALE']?> }); |