Телеграм: @camouf_ru Почта: mihail@bazarow.ru Заказать разработку проекта

Определить местоположение пользователя и показать на карте

Задача определить местоположение текущего пользователя и показать его на карте, с меткой. Сделать можно с помощью класса GeoIp - Пространство имён для классов для работы с геолокацией.

Определение местоположения пользователя

Для этого достаточно воспользоваться методами Manager::getGeoPositionLatitude и Manager::getGeoPositionLongitude. Просто передаем эти данные в переменные и выводим на страницу

$userLat = \Bitrix\Main\Service\GeoIp\Manager::getGeoPositionLatitude();
$userLon = \Bitrix\Main\Service\GeoIp\Manager::getGeoPositionLongitude();
$userCity = \Bitrix\Main\Service\GeoIp\Manager::getCityName();
echo 'Широта ' .  $userLat . ', Долгота: ' .  $userLon . ', В городе: ' .  $userCity;

В целом, есть метод Manager::getGeoPosition - в котором содержатся сразу и долгота и широта.

Также добавил город пользователя в переменной

Выводим местоположение на карте

Дальше все просто: выводим компонент bitrix:map.yandex.view - отображение карты с сервиса Яндекс.Карты. И передаем широту и долготу в в параметр MAP_DATA

В массив $arPlacemarks дублируем широту и долготу, а также название города. Этот массив используем в параметре PLACEMARKS который отвечает за метку на карте

$userLat = \Bitrix\Main\Service\GeoIp\Manager::getGeoPositionLatitude();
$userLon = \Bitrix\Main\Service\GeoIp\Manager::getGeoPositionLongitude();
$userCity = 'Вы в городе: ' . \Bitrix\Main\Service\GeoIp\Manager::getCityName();

$arPlacemarks[] = array(
    "LAT" => $userLat,
    "LON" => $userLon,
    "TEXT" => $userCity,
); $APPLICATION->IncludeComponent( "bitrix:map.yandex.view", ".default", Array( "INIT_MAP_TYPE" => "MAP", "MAP_DATA" => serialize( array( 'yandex_scale' => 5, 'yandex_lat' => $userLat, 'yandex_lon' => $userLon, 'PLACEMARKS' => $arPlacemarks )), "MAP_WIDTH" => "100%", "MAP_HEIGHT" => "300", "CONTROLS" => "", "OPTIONS" => array(0=>"ENABLE_SCROLL_ZOOM",1=>"ENABLE_DRAGGING",), "MAP_ID" => "", ) );

Готово, получится что-то вроде этого:

определить местоположение текущего пользователя и показать его на карте
Просмотров: 1447 | Комментариев: 0

Комментарии

Внимание! все сообщения проходят премодерацию. Ваше сообщение появится после проверки
 
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Защита от автоматических сообщений
Загрузить файл
Нажимая кнопку "Отправить", Вы принимаете условия
Политики конфиденциальности и обработки персональных данных
Поделиться страницей Спасибо, это помогает развивать сайт.
Мой youtube канал. C 1-го сентября начнется выход видеокурса по разработке доски объявлений с мобильным приложением.
Перейти на канал Подписывайтесь и будьте в курсе:
Заметки разработчика

Примерно с 2013-го года пишу, короткие и не очень, заметки по разработке сайтов на Битрикс. Возможно, будут полезны кому-то еще. Во всех заметках есть возможность комментирования и обсуждения. Вы можете задавать уточняющие вопросы прямо там- отвечаю или дополняю заметки по возможности.

attention