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

Інтеграція 1С-Бітрікс з 2ГІС Яндекс.Карти та Google Maps звичніші, але 2ГІС виграє в кількох нішах: деталізовані карти торгових центрів, маршрути для пішоходів торговими галереями, офлайн-карти в мобільних додатках. Для рітейлу з мережею точок, автодилерів, клінік з кількома філіалами — 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
    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 днів після запуску — ми допоможемо усунути будь-які питання та забезпечимо успішний запуск.