Извлечение маршрутов карты Google в виде формы

#google-maps #google-maps-api-3 #maps #google-static-maps

#google-карты #google-maps-api-3 #Карты #google-maps-static-api

Вопрос:

У нас есть очень простой пример маршрута перехода на веб-карте Google. Рассмотрим следующую ссылку для примера. Или изображение, приведенное ниже.

Или это изображение.

Мой вопрос в том, как получить эту форму маршрута с помощью какого-либо Map API (возможно, не Google)? Итак, я пытаюсь создать скрипт, в который я могу вставить множество точек назначения, а на выходе должна быть форма маршрутов перехода. Даже я могу создать форму с помощью OpenCV, все, что мне нужно, это просто эскиз такого маршрута.


  • Что я пробовал до сих пор? Для создания миниатюр используется статический API карты Google. Однако, из документации, невозможно создать такое представление маршрутов. Используя path поле в статическом API с теми же точками назначения (приведенными в ссылке выше), у нас были бы только соединительные линии. Пример ниже и ссылка на запрос карты.

введите описание изображения здесь

  • Что, если вы разместите свои точки в соответствующем порядке? Позвольте мне объяснить, почему порядок не поможет в этом случае. Проверьте другой пример здесь. Или первое изображение ниже. Теперь давайте перенесем эти точки в API статической карты. И у вас будет второе изображение ниже. Или эта ссылка на запрос API. Так что дело не в порядке, а в поведении (что, очевидно, очень разные приложения).

Другой пример

введите описание изображения здесь

Комментарии:

1. Что, если вы разместите свои точки в соответствующем порядке?

2. @MrUpsidown Дело не в порядке, а в их поведении. Порядок одинаков на обоих изображениях, но для первого Google Maps выбирает маршруты перехода. Где второй, просто абсолютный путь между ними. Другое дело, это очень сложные формы, отслеживать порядок будет невозможно.

3. В первом примере он переходит от (1) авт. 18 Тафта. к (2) авт. 2-22 Тафта. затем (3) авт. 59 Вудроу. это означает, что путь возвращается на свою собственную дорожку. В примере со статическими картами вы просто используете точки 1, затем 2, затем 3 (это просто путь, а не запрос направления!). Итак, если вам понадобится то же самое, вам понадобятся точки 1, затем 2, затем 1, затем 3 и т.д. или вам нужно изменить порядок точек (2, 1, 3, 4, 5).

4. @MrUpsidown Проверьте мои новые примеры изображений выше. Вам не нужно много, чтобы понять, почему это не работает. Спасибо.

5. Потому что в первом примере, который вы привели, если бы они были расположены в том порядке, который я бы счел подходящим, у вас был бы нарисован тот же путь (более или менее …), поскольку ваш путь довольно прост. Но давайте забудем об этом. Чтобы ответить на ваш вопрос, вы должны запросить Указания с помощью Maps API (Javascript или веб-службы Directions), затем извлечь его путь, а затем запросить, чтобы этот путь был нарисован на Maps Static.

Ответ №1:

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

  1. Запросите свои указания с помощью JS API или Directions API.
  2. Используйте путевые точки в своем запросе, чтобы указать каждую точку. Предупреждение: действуют ограничения (23 путевые точки начало и пункт назначения).
  3. В вашем ответе Directions вы можете использовать либо overview_path , либо overview_polyline , чтобы нарисовать тот же маршрут в Maps Static API. Обратите внимание, что оба являются упрощенными контурами (сглаженными), которые менее точны, чем точная полилиния, которую вы получаете из API. Возможно, этого достаточно для вашего варианта использования. Читайте больше здесь.
  4. В качестве альтернативы, если вам нужны точные координаты полилинии, вам придется извлекать их из каждого DirectionsStep, возвращаемого API.
  5. Получив свои точки пути (или закодированную полилинию), вы можете запросить свой путь к статическому API Maps (также смотрите о закодированных полилиниях внизу этой страницы).

Надеюсь, это поможет.