Примеры | RasterJS API | 2GIS Documentation
RasterJS API

Работа с попапами

Ниже приведены примеры использования попапов. Для получения подробной информации перейдите в раздел документации Попапы.

<!DOCTYPE html>
<html>
    <head>
        <title>Открытие попапа при клике на маркер</title>
        <script src="https://maps.api.2gis.ru/2.0/loader.js"></script>
    </head>
    <body>
        <div id="map" style="width: 100%; height: 400px;"></div>
        <script>
            DG.then(function() {
                var map = DG.map('map', {
                    center: [54.98, 82.89],
                    zoom: 15
                });

                DG.marker([54.98, 82.89]).addTo(map).bindPopup('Я попап!');
            });
        </script>
    </body>
</html>
    <!DOCTYPE html>
    <html>
        <head>
            <title>Открытие попапа по умолчанию и по требованию</title>
            <script src="https://maps.api.2gis.ru/2.0/loader.js"></script>
        </head>
        <body>
            <input id="showPopup" type="button" value="Открыть попап" />
            <div id="map" style="width: 100%; height: 400px;"></div>
            <script>
                var showButton = document.getElementById('showPopup');

                DG.then(function() {
                    var map,
                        myPopUp;

                    map = DG.map('map', {
                        center: [54.98, 82.89],
                        zoom: 13
                    });

                    DG.popup([54.98, 82.89])
                        .setLatLng([54.98, 82.89])
                        .setContent('Я открыт по умолчанию')
                        .openOn(map);

                    myPopUp = DG.popup()
                        .setLatLng([54.98, 82.89])
                        .setContent('Я открылся по требованию и закрыл прошлый попап!');

                    showButton.onclick = function() {myPopUp.openOn(map)};
                });
            </script>
        </body>
    </html>
<!DOCTYPE html>
<html>
    <head>
        <title>Добавление нескольких попапов на карту</title>
        <script src="https://maps.api.2gis.ru/2.0/loader.js"></script>
    </head>
    <body>
        <div id="map" style="width: 100%; height: 400px"></div>
        <script>
            DG.then(function () {
                var map,
                    popups = DG.featureGroup(),
                    coordinates = [];

                map = DG.map('map', {
                    center: [54.98, 82.89],
                    zoom: 13,
                });

                // создаем 10 попапов в случайных местах и добавляем их в группу
                for (var i = 0; i < 10; i++) {
                    coordinates[0] = 54.98 - Math.random();
                    coordinates[1] = 82.89 + Math.random();
                    DG.popup()
                        .setLatLng(coordinates)
                        .setContent('Я попап №' + i)
                        .addTo(popups);
                }

                popups.addTo(map);

                // фокусируем область видимости на попапах
                map.fitBounds(popups.getBounds());
            });
        </script>
    </body>
</html>
<!DOCTYPE html>
<html>
    <head>
        <title>Поведение попапа с параметром sprawling</title>
        <script src="https://maps.api.2gis.ru/2.0/loader.js"></script>
    </head>
    <body>
        <div id="map" style="width: 300px; height: 150px"></div>
        <input
            style="width: 300px"
            type="button"
            id="sprawling"
            value="Попап с включенным параметром sprawling"
        /><br />
        <input
            style="width: 300px"
            type="button"
            id="no-sprawling"
            value="Попап без параметра sprawling"
        /><br />
        <input
            style="width: 300px"
            type="button"
            id="minWidth"
            value="Попап с минимальной шириной 320px"
        />
        <script>
            DG.then(function () {
                var latLng = DG.latLng([54.98, 82.89]),
                    map;

                // проинициализируем карту с шириной 300 пикселей
                map = DG.map('map', {
                    center: latLng,
                    zoom: 13,
                    fullscreenControl: false,
                    zoomControl: false,
                });

                // попап с включенным параметром sprawling
                // растянется до границ карты
                document.getElementById('sprawling').onclick = function () {
                    DG.popup({
                        maxWidth: 350,
                        sprawling: true,
                    })
                        .setLatLng(latLng)
                        .setContent('Я попап!')
                        .openOn(map);
                };

                // попап без параметра sprawling
                // подстроится под ширину контента
                document.getElementById('no-sprawling').onclick = function () {
                    DG.popup({
                        maxWidth: 350,
                    })
                        .setLatLng(latLng)
                        .setContent('Я попап!')
                        .openOn(map);
                };

                // попап с минимальной шириной 320px
                // выйдет за границы карты
                document.getElementById('minWidth').onclick = function () {
                    DG.popup({
                        maxWidth: 350,
                        minWidth: 320,
                    })
                        .setLatLng(latLng)
                        .setContent('Я попап!')
                        .openOn(map);
                };
            });
        </script>
    </body>
</html>