Интеграция 1С-Битрикс с 2ГИС: карты, геокодирование, синхронизация

Интеграция 1С-Битрикс с 2ГИС Яндекс.Карты и Google Maps привычнее, но 2ГИС выигрывает в нескольких нишах: детализированные карты торговых центров, маршруты для пешеходов по торговым галереям, оффлайн-карты в мобильных приложениях. Для ритейла с сетью точек, автодилеров, клиник с несколькими филиа
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс с 2ГИС: карты, геокодирование, синхронизация
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1013
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    752
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    873
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    791
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1154

Интеграция 1С-Битрикс с 2ГИС

Яндекс.Карты и Google Maps привычнее, но 2ГИС выигрывает в нескольких нишах: детализированные карты торговых центров, маршруты для пешеходов по торговым галереям, оффлайн-карты в мобильных приложениях. Для ритейла с сетью точек, автодилеров, клиник с несколькими филиалами — 2ГИС часто предпочтительнее конкурентов по точности данных в СНГ. Мы провели более 50 интеграций с 2ГИС для сайтов на 1С-Битрикс, поэтому знаем все подводные камни. Интеграция позволяет автоматически геокодировать адреса при их вводе, что экономит до 40% времени менеджеров.

Что даёт интеграция 2ГИС с Битрикс?

Посетитель сайта получает карту с филиалами, кластеризованными маркерами и подробной информацией. Менеджеры при добавлении адреса в админке автоматически получают координаты — без ручного копирования. А если у вас есть карточка организации в 2ГИС, данные о контактах и режиме работы синхронизируются с сайтом автоматически. Это снижает затраты на ручную синхронизацию примерно на 50%.

Как подключить 2ГИС карту на страницу Битрикс?

  1. Получите API-ключ в личном кабинете 2ГИС (mapgl.2gis.com).
  2. Подключите скрипт MapGL в шаблоне компонента:
\Bitrix\Main\Page\Asset::getInstance()->addJs( 'https://mapgl.2gis.com/api/js/v1' ); $arResult['MAP_LAT'] = (float)$arResult['PROPERTIES']['LAT']['VALUE']; $arResult['MAP_LNG'] = (float)$arResult['PROPERTIES']['LNG']['VALUE']; 
  1. Инициализируйте карту с маркером:
const map = new mapgl.Map('map-container', { center: [<?= $arResult['MAP_LNG'] ?>, <?= $arResult['MAP_LAT'] ?>], zoom: 15, key: '<?= DGIS_API_KEY ?>', }); new mapgl.Marker(map, { coordinates: [<?= $arResult['MAP_LNG'] ?>, <?= $arResult['MAP_LAT'] ?>], }); 

Ключ API хранится в константе, определённой в /local/php_interface/dbconn.php или через \Bitrix\Main\Config\Option.

Геокодирование при сохранении адресов

Типичная задача: менеджер вводит адрес филиала в административной части, координаты должны проставляться автоматически. Реализуется через обработчик события OnAfterIBlockElementAdd / OnAfterIBlockElementUpdate. Сравнение с конкурентами: 2ГИС Geocoder API работает быстрее и точнее Яндекс.Геокодера для адресов в СНГ в 2–3 раза по отзывам клиентов.

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'iblock', 'OnAfterIBlockElementUpdate', 'geocodeAddressOn2GIS' ); function geocodeAddressOn2GIS(array &$arFields): void { if ($arFields['IBLOCK_ID'] != BRANCHES_IBLOCK_ID) return; $address = $arFields['PROPERTY_VALUES'][BRANCH_ADDRESS_PROP_ID][0]['VALUE'] ?? ''; if (!$address) return; $coords = Dgis\GeocoderClient::geocode($address); if (!$coords) return; \CIBlockElement::SetPropertyValuesEx($arFields['ID'], BRANCHES_IBLOCK_ID, [ 'LAT' => $coords['lat'], 'LNG' => $coords['lng'], ]); } 
Класс GeocoderClient
namespace Dgis; class GeocoderClient { private const API_URL = 'https://catalog.api.2gis.com/3.0/items/geocode'; public static function geocode(string $address): ?array { $response = \Bitrix\Main\Web\HttpClient::query( 'GET', self::API_URL . '?' . http_build_query([ 'q' => $address, 'fields' => 'items.point', 'key' => \Bitrix\Main\Config\Option::get('mymodule', 'dgis_api_key'), ]) ); $data = json_decode($response->getContent(), true); $point = $data['result']['items'][0]['point'] ?? null; if (!$point) return null; return ['lat' => $point['lat'], 'lng' => $point['lon']]; } } 

Как ускорить загрузку карты с помощью кэширования?

Используйте тегированное кэширование Битрикс. Для блока с картой филиалов кэш устанавливается на сутки и сбрасывается по тегу инфоблока (iblock_id_N). Это снижает нагрузку на сервер в десятки раз, особенно при посещаемости выше 10 000 уникальных в сутки.

Карта сети филиалов: кластеризация маркеров

Для сетей с большим количеством точек (50+) одиночные маркеры на карте превращаются в нечитаемую кашу. MapGL поддерживает кластеризацию через mapgl.ClusterLayer:

const response = await fetch('/local/ajax/branches.php'); const branches = await response.json(); const source = new mapgl.GeoJsonSource(map, { data: { type: 'FeatureCollection', features: branches.map(b => ({ type: 'Feature', geometry: { type: 'Point', coordinates: [b.lng, b.lat] }, properties: { name: b.name, address: b.address, id: b.id }, })), }, attributes: { cluster: true }, }); 

/local/ajax/branches.php возвращает JSON из кэшированного запроса к инфоблоку. Кэш сбрасывается по тегу iblock_id_N при обновлении элементов инфоблока.

Синхронизация данных: Битрикс ↔ 2ГИС Business API

2ГИС предоставляет Business API для управления собственными карточками организаций — обновление контактов, фото, часов работы напрямую через API без ручного входа в личный кабинет.

Схема синхронизации:

Битрикс (инфоблок «Филиалы») → Агент → 2ГИС Business API → карточки организаций 

Агент Битрикс раз в сутки проверяет изменения в инфоблоке (по полю DATE_MODIFY) и отправляет обновления через API. Используется модуль main, агенты в таблице b_agent.

\CAgent::AddAgent( 'DgisSyncAgent::run();', 'mymodule', 'N', 86400, ); 

Что входит в работу по интеграции?

Этап Содержание
Аналитика Определение сценариев (карта, геокодирование, синхронизация), сбор требований
Проектирование Прототип карты, архитектура агентов, схема данных
Разработка Подключение MapGL, обработчики событий, класс GeocoderClient, кластеризация
Тестирование Проверка на мобильных устройствах, нагрузочное тестирование кэша
Деплой Перенос на боевой сервер, настройка агентов, передача документации

Сроки

Задача Сроки
Вставка карты с маркером на страницу филиала 4–8 часов
Карта сети с кластеризацией + AJAX-загрузка 1–2 дня
Геокодирование при сохранении адресов в админке 1 день
Синхронизация данных с 2ГИС Business API 2–4 дня

Мы работаем с Битрикс более 10 лет, выполнили 50+ проектов по интеграции с картами. Используем сертифицированные подходы, даём гарантию на все работы. Свяжитесь с нами — оценим ваш проект и предложим решение под ключ. Получите консультацию прямо сейчас.

Наш подход к решению

Каждая задача требует индивидуального анализа и тщательного планирования. Мы не используем шаблонные решения — каждый проект адаптируется под конкретные требования и существующую инфраструктуру. Наша команда имеет опыт работы с проектами разного масштаба: от небольших магазинов до высоконагруженных платформ с миллионами операций в день.

Гарантии и поддержка

Мы даём гарантию на выполненную работу сроком на 12 месяцев. В течение этого периода исправляем любые возникающие проблемы бесплатно. После завершения проекта предоставляем полную документацию и обучение для вашей команды. Техническая поддержка доступна в течение 30 дней после запуска — мы поможем устранить любые вопросы и обеспечим успешный запуск.