• Динамическая карта с точками из инфоблока в Битрикс 1С: пошаговое руководство
    Хотите заказать услугу прямо сейчас?

    Как добавить карту с динамическими точками в Битрикс 1С

    Как добавить карту с динамическими точками в Битрикс 1С

    Интерактивная карта на сайте — это удобный способ показать расположение объектов: магазинов, офисов, складов или точек обслуживания. В Битрикс 1С это можно сделать через инфоблоки и Яндекс.Карты.

    1. Создание инфоблока для точек

    Сначала создаём инфоблок, например, Места, с полями:

    • Название (NAME)
    • Координаты (PROPERTY_COORDS) — строка вида 55.751574,37.573856
    • Описание (PROPERTY_DESCRIPTION)
    • Категория (PROPERTY_CATEGORY) — необязательное поле для фильтров
    Пример координат: 55.751574,37.573856. Они берутся из Яндекс.Карт или Google Maps.

    2. Получение данных из инфоблока (PHP)

    Используем API Битрикс для получения всех активных элементов инфоблока и подготовки массива точек для JavaScript.

    <?php
    use Bitrix\Main\Loader;
    
    Loader::includeModule('iblock');
    
    $arPoints = [];
    $rsElements = CIBlockElement::GetList(
        ["SORT" => "ASC"],
        ["IBLOCK_ID" => 5, "ACTIVE" => "Y"], // Замените 5 на ID вашего инфоблока
        false,
        false,
        ["ID", "NAME", "PROPERTY_COORDS", "PROPERTY_DESCRIPTION", "PROPERTY_CATEGORY"]
    );
    
    while($arElement = $rsElements->GetNext()) {
        $coords = explode(',', $arElement['PROPERTY_COORDS_VALUE']);
        if(count($coords) == 2) {
            $arPoints[] = [
                'name' => $arElement['NAME'],
                'lat' => trim($coords[0]),
                'lng' => trim($coords[1]),
                'description' => $arElement['PROPERTY_DESCRIPTION_VALUE'],
                'category' => $arElement['PROPERTY_CATEGORY_VALUE']
            ];
        }
    }
    ?>

    3. Вывод карты и динамических точек (JavaScript)

    4. Расширенные возможности

    4.1 Фильтр по категориям

    Если у точек есть категории, можно добавить селект для фильтрации:

    <select id="categoryFilter">
        <option value="">Все категории</option>
        <option value="Магазин">Магазины</option>
        <option value="Офис">Офисы</option>
    </select>
    
    <script>
    document.getElementById('categoryFilter').addEventListener('change', function() {
        var selected = this.value;
        map.geoObjects.removeAll();
        points.forEach(function(point) {
            if(!selected || point.category === selected) {
                var placemark = new ymaps.Placemark([point.lat, point.lng], {
                    balloonContentHeader: point.name,
                    balloonContentBody: point.description
                }, { preset: 'islands#blueDotIcon' });
                map.geoObjects.add(placemark);
            }
        });
    });
    </script>

    4.2 Кастомные иконки для точек

    Можно использовать свои иконки для каждой категории:

    var iconUrls = {
        'Магазин': '/local/templates/site/images/store.png',
        'Офис': '/local/templates/site/images/office.png'
    };
    
    points.forEach(function(point) {
        var placemark = new ymaps.Placemark([point.lat, point.lng], {
            balloonContentHeader: point.name,
            balloonContentBody: point.description
        }, {
            iconLayout: 'default#image',
            iconImageHref: iconUrls[point.category] || '/local/templates/site/images/default.png',
            iconImageSize: [30, 42],
            iconImageOffset: [-15, -42]
        });
        map.geoObjects.add(placemark);
    });

    5. Интеграция в шаблон Bitrix

    Разместите код PHP и HTML в вашем шаблоне или компоненте. PHP получает данные из инфоблока, а JS отображает карту. Любое добавление/изменение элементов инфоблока автоматически обновит карту без изменения кода.

    6. Итог

    Мы рассмотрели, как создать карту с динамическими точками в Битрикс 1С:

    • Создали инфоблок с точками и их координатами
    • Получили данные через PHP
    • Отобразили точки на карте с помощью JavaScript (Яндекс.Карты)
    • Добавили фильтры и кастомные иконки для расширенных возможностей

    Теперь карта полностью управляется через административную панель Битрикс и обновляется автоматически при добавлении новых точек.

    Комментарии (0)

    Оставить комментарий

    Кейсы компании

    Кейс: создание кастомной корзины на 1С‑Битрикс с лицензией «Стандарт»

    Посмотреть

    Кастомная система комментариев WordPress с микроразметкой и AJAX

    Посмотреть

    Как создать компонент в Битрикс 1С, который изменяет цену на китайские юани

    Посмотреть

    🎯 Кейс Павлов Студио: как мы внедрили Яндекс SmartCaptcha для защиты всех форм сайта (включая Bitrix)

    Посмотреть

    Разработка онлайн-калькулятора для товаров на сайте wp

    Посмотреть

    Обновление сайта с битрикс 1с с версии php 5.6 до 8.2

    Посмотреть

    Разработка сервиса для сбора информации из соц.сети «Вконтате»

    Посмотреть

    Разработка мега-меню для сайта на wordpress https://doma-penoblok.ru/

    Посмотреть

    Разработка и сопровождение сайта  https://aaa-sitrak.ru/ с последующей интеграцией на 1с-битрикс

    Посмотреть

    Разработка интернет-магазина https://sklad38.ru/ на битрикс 1с

    Посмотреть

    Доработка сайта https://tochka-kontakta.ru/ для организации «Точка Контакта»

    Добро пожаловать в WordPress. Это ваша первая запись. Отредактируйте или удалите ее, затем начинайте создавать!

    Посмотреть
    Max Messenger