Создать ссылку на карты Google, которая открывает карты Google с указанным маршрутом c? - PullRequest
0 голосов
/ 30 апреля 2020

Я создаю приложение, которое запрашивает API направления Google Maps и ранжирует различные предлагаемые пути на основе внешних метрик. После того, как пользователь решит, по какому пути он хочет пойти, я хочу, чтобы он был перенаправлен в Google Maps по указанному пути c, чтобы он мог использовать функции навигации.

Есть ли способ создать ссылку на карты Google, чтобы она открыла определенный c пешеходный маршрут между двумя точками? Кажется, что единственные параметры, которые я могу указать, это источник, пункт назначения и путевые точки.

Глядя на документацию ( Ссылка ), я смог заставить что-то работать, взяв ломаную линию маршрут и разбивка его на путевые точки:

        const waypoints = decodePolyline(this.props.route);

        // Create URL
        if(waypoints.length > 0) {
            const baseUrl = "https://www.google.com/maps/dir/?api=1";

            const origin = "&origin=" + waypoints[0].lat.toString() + "," + waypoints[0].lng.toString()

            const end = "&destination=" + waypoints[endIndex].lat.toString() + "," + waypoints[endIndex].lng.toString() + "&travelmode=walking";

            let steps = "&waypoints=";

            let i;

            let inc = Math.floor(waypoints.length / 8);

            for(i = 1; i < waypoints.length-1; i=i+inc) {
                steps += waypoints[i].lat.toString() + "," + waypoints[i].lng.toString()

                if(i !== waypoints.length-2) {
                    steps += "|"
                }
            }

            const url = baseUrl + origin + steps.substring(0, steps.length-1) + end;

            console.log(url)
        }

Поскольку существует ограничение на количество путевых точек, я не включаю каждую точку. Следовательно, эта строка кода ограничивается 8 путевыми точками:

let inc = Math.floor(waypoints.length / 8);

В результате пользователь перенаправляется на страницу с указаниями, содержащими путевые точки, которые на самом деле не важны для пользователя. Кроме того, на более длинных маршрутах разбиение на отдельные путевые точки приводит к тому, что маршрут в моем веб-сервисе не соответствует маршруту на картах Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...