Телеграм: @bazarow_ru Почта: mihail@bazarow.ru

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

Просмотров: 3956

Задача определить местоположение текущего пользователя и показать его на карте, с меткой. Сделать можно с помощью класса 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" => "", ) );

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

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

Написать первый комментарий:

Перетащите файлы
Ничего не найдено
Защита от автоматических сообщений
Нажимая кнопку "Отправить" вы соглашаетесь
с политикой конфиденциальности и обработки персональных данных.

Записная книжка разработчика

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

Вывести компонент новостей на страницу в Битрикс Просмотров: 65106 Посмотрел Яндекс метрику на свой сайт, и решил что буду частенько писать сюда именно то, ч... Вывод элементов с помощью API битрикс Просмотров: 23961 Иногда, выводить элементы инфоблока с помощью компонентов, может оказаться избыточным. Нап... Минимальная сумма заказа в корзине и оформлении заказа в 1С-Битрикс Просмотров: 9779 В этой заметке добавим возможность установки минимальной суммы заказа, в новом шаблоне кор... Заполнить свойство инфоблока ценой из торгового каталога Просмотров: 5090 Если вам по какой-то причине нужно скопировать цену товара в свойство этого же инфоблока. ... Валидация пароля и подтверждения при регистрации в битрикс Просмотров: 15267 Встала задачка сделать валидацию пароля и его подтверждения в стандартной форме регистраци... Заполнить картинки разделов каталога из картинок товаров Просмотров: 944 Задача: в каталоге, разделы и подразделы выводятся в виде плитки над товарами, с картинкам... Создать pdf файл из элемента инфоблока, дать скачать пользователю, по... Просмотров: 5332 Задача: при каждом посещении статьи, на сайте, нужно создавать pdf файл с ее содержимым и ... Вывести все разделы в которых находится элемент инфоблока Просмотров: 14935 Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоб... Свойство: привязка к Яндекс:Картам - вывести из нескольких элементов ... Просмотров: 18667 Предположим, что у вас есть инфоблок со свойством "Привязка к яндекс картам". В этом инфоб... Простые калькуляторы в карточке товара каталога на Битрикс Просмотров: 16174 На одном из создаваемых сайтов было необходимо сделать небольшой калькулятор и предварител... Отключить поиск по описаниям товаров в Битрикс Просмотров: 11844 Иногда, нужно отключить поиск по описаниям анонсов и детальному описанию товаров, при разр... Самодельная форма добавления элемента на API Битрикс Просмотров: 45276 Компонент iblock.element.add.form написан таким образом, что вы не сможете (не попотев изр... Создание мобильного приложения на cordova, для любого сайта. Просмотров: 15874 Если стоит задача разработки мобильного приложения для сайта, можете воспользоваться данно... XML в формате Commerce ML-2, города России и Мира, для выгрузки в инф... Просмотров: 6961 Подвернулась задачка, создать инфоблок для Битрикс, в котором будут просто города России и... Показать только один тип цены в каталоге Битрикс Просмотров: 14955 Достаточно часто, при создании сайта на битрикс, можно столкнуться с такой проблемой: на с... Получить множественное пользовательское поле раздела. Значения множес... Просмотров: 986 Задача: У разделов инфоблока есть множественное поле типа список. Зная ID раздела, нужно п... Установить остатки товара на складе из доступных остатков. Просмотров: 6229 Задача, заполнить остатки товаров, в 1С-Битрикс, из параметра "Доступное количество". Установка веб-сервера LAMP на ubuntu 20.04 LTS, оптимизированный под ... Просмотров: 12750 В последнее время, плотно пересел c macOS на ubuntu, и решил настроить себе полноценное ра... Хостинг панель BrainyCp: оптимизация под 1С-битрикс Просмотров: 8131 В этой видео-заметке расскажу как установить и оптимизировать панель управления сервером B... Скопировать номер телефона из поля пользователя в телефон для регистр... Просмотров: 2800 Задача, на конкретном сайте: раньше все пользователи регистрировались по стандартному режи...