<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

Этот курс научит Вас созданию самых разных сайтов на самой популярной в мире CMS - WordPress. Вы увидите установку и настройку локального сервера, разбор каждой настройки, каждой кнопки и каждого пункта меню в панели WordPress.

Также Вы получите и всю практику, поскольку прямо в курсе с нуля создаётся полноценный Интернет-магазин, который затем публикуется в Интернете. И всё это прямо на Ваших глазах.

Помимо уроков к курсу идут упражнения для закрепления материала.

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Динамическое обновление маршрута с помощью JavaScript и Leaflet

Динамическое обновление маршрута с помощью JavaScript и Leaflet

Веб-карты стали неотъемлемой частью многих приложений, позволяя пользователям интерактивно работать с географической информацией. Одной из самых востребованных функций является построение маршрутов, которые могут обновляться в реальном времени в зависимости от действий пользователя. В этой статье мы рассмотрим, как создать карту с динамически обновляемым маршрутом с использованием JavaScript и Leaflet — мощной и легкой библиотеки для работы с картами.

Зачем обновлять маршрут?

Динамическое обновление маршрута полезно в различных приложениях: - Сервисы доставки и такси, где маршрут меняется в зависимости от текущего местоположения водителя и заказов. - Туристические приложения, где пользователи могут выбирать разные точки на карте и строить маршрут. - Навигационные системы, где маршрут автоматически обновляется с учетом текущих условий на дороге.

Leaflet предоставляет удобные инструменты для рисования маршрутов и их обновления. Давайте создадим пример, в котором пользователь выбирает начальную и конечную точки маршрута на карте.

Как выбрать точки на карте с помощью Leaflet?

Для реализации динамического маршрута с выбором точек на карте, мы будем использовать функцию клика на карту. Пользователь будет выбирать точки, и карта будет автоматически обновлять маршрут.

Полный код с выбором точек на карте

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Выбор точек на карте с Leaflet</title>
    <!-- Подключаем стили Leaflet -->
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
    <style>
        #map {
            height: 500px; /* Высота карты */
            width: 100%; /* Ширина карты */
        }
    </style>
</head>
<body>

    <!-- Контейнер для карты -->
    <div id="map"></div>

    <!-- Подключаем скрипт Leaflet -->
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
    <script>
        let map, routeLayer, startMarker, endMarker;

        // Инициализация карты
        function initMap() {
            map = L.map('map').setView([55.7558, 37.6173], 12); // Центр карты - Москва

            // Добавляем слой карты OpenStreetMap
            L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
                attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
            }).addTo(map);

            // Инициализируем слой маршрута
            routeLayer = L.layerGroup().addTo(map);

            // Слушаем клик по карте
            map.on('click', function (event) {
                const latlng = event.latlng;

                // Если начальная точка не выбрана, ставим её
                if (!startMarker) {
                    startMarker = L.marker(latlng).addTo(map).bindPopup("Начальная точка").openPopup();
                } else if (!endMarker) {
                    // Если начальная точка есть, ставим конечную
                    endMarker = L.marker(latlng).addTo(map).bindPopup("Конечная точка").openPopup();
                    // После выбора конечной точки рисуем маршрут
                    updateRoute(startMarker.getLatLng(), endMarker.getLatLng());
                }
            });
        }

        // Функция для обновления маршрута
        function updateRoute(start, end) {
            // Очищаем старый маршрут
            routeLayer.clearLayers();

            // Рисуем маршрут между точками
            const route = L.polyline([start, end], { color: 'blue', weight: 4 }).addTo(routeLayer);

            // Обновляем карту, чтобы маршрут был виден
            map.fitBounds(route.getBounds());
        }

        // Инициализация карты
        initMap();
    </script>
</body>
</html>

Как это работает?

  1. Инициализация карты: Мы создаем карту, используя Leaflet, и устанавливаем ее центр в Москве. В качестве картографического слоя используется OpenStreetMap.
  2. Обработчик кликов: При клике на карту мы получаем координаты точки и ставим на ней маркер. Первый клик устанавливает начальную точку, а второй — конечную точку маршрута.
  3. Маршрут: После того как обе точки выбраны, рисуется линия маршрута между ними с помощью L.polyline(). Затем карта автоматически подстраивается, чтобы весь маршрут был виден.
  4. Маркер и всплывающее окно: Мы добавляем всплывающее окно на каждый маркер, чтобы пользователь знал, какую точку он выбрал.

Заключение

Создание динамического маршрута с использованием JavaScript и Leaflet позволяет легко и быстро добавить функциональность выбора точек и построения маршрутов на веб-страницу. Этот подход дает пользователю возможность выбирать начальные и конечные точки маршрута на карте, а карта автоматически обновляется и рисует новый маршрут.

Если вы хотите лучше понимать код JavaScript, рекомендую курс "Программирование на JavaScript с Нуля до Гуру 2.0", где вы найдёте ещё больше полезных техник и приёмов!

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

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

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.