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

Отображение маршрута между двумя точками на карте

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

Подключение Leaflet и OpenRouteService

Для начала создадим HTML-страницу с картой и подключим необходимые библиотеки:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Маршрут на карте</title>
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
    <style>
        #map { height: 500px; }
    </style>
</head>
<body>
    <h1>Отображение маршрута на карте</h1>
    <div id="map"></div>
    <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
    <script>
        const map = L.map('map').setView([51.505, -0.09], 13);

        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
            attribution: 'Map data \u00a9 OpenStreetMap contributors',
            maxZoom: 18,
        }).addTo(map);

        const startPoint = [51.505, -0.09];
        const endPoint = [51.515, -0.1];

        L.marker(startPoint).addTo(map).bindPopup('Старт');
        L.marker(endPoint).addTo(map).bindPopup('Финиш');

        const routeUrl = `https://router.project-osrm.org/route/v1/driving/${startPoint[1]},${startPoint[0]};${endPoint[1]},${endPoint[0]}?overview=full&geometries=geojson`;

        fetch(routeUrl)
            .then(response => response.json())
            .then(data => {
                const route = data.routes[0].geometry;
                L.geoJSON(route, { color: 'blue' }).addTo(map);
            })
            .catch(error => console.error('Ошибка загрузки маршрута:', error));
    </script>
</body>
</html>

Разбор кода

  1. Создаём карту и добавляем слой OpenStreetMap.

  2. Задаём координаты для начальной и конечной точки маршрута.

  3. Добавляем метки на карту для обозначения точек старта и финиша.

  4. Отправляем запрос к OpenRouteService (OSRM) для получения маршрута.

  5. Рисуем маршрут на карте с помощью L.geoJSON().

Итог

Теперь вы можете легко добавлять маршруты на карту в своих веб-приложениях! Попробуйте изменить координаты точек и поэкспериментировать с настройками.