Есть ли способ вызвать навигацию из мобильного браузера?

Я разрабатываю очень маленький HTML5/javascript сайт, который можно открыть мобильными браузерами с таких устройств, как android/iphone. Я использую географическое расположение HTML5, чтобы получить текущее местоположение, но как только у меня есть, я хочу перейти к определенному месту назначения. Лучшее, что я придумал, это то, что пользователь нажимает ссылку, похожую на ссылку ниже

https://maps.google.com/maps?saddr=london&daddr=paris

Однако это не открывает навигационное приложение, оно просто переключается на мобильный сайт Google Maps. Есть ли способ открыть приложение навигации (GPS) с помощью HTML5/javascript? Что-то вроде этого:

navigate:London to Paris

Ответ 1

Вы можете использовать гео-ссылки для открытия навигационного приложения на Android. К сожалению, это не поддерживается в iOS. Но в целом вы должны помнить, что вы не можете напрямую контролировать, как эта ссылка обрабатывается на устройстве, так как я сказал, что iOS ничего не делает или может даже показать неверную ошибку ссылки, и могут быть устройства Android, которые также не поддерживают эту функцию, Просто помните, что вы не можете быть уверены, что он работает где угодно, и поэтому ваш веб-сайт не должен зависеть от этой функции, это должно быть просто дополнительным преимуществом для устройств, поддерживающих эту функцию.

1) Отображение местоположения в собственном приложении карты

С помощью геоссылки вы можете указать такое местоположение:

geo:longitude,laditude

Или вот так:

geo:street+address

Вы также можете найти такой адрес:

geo:?q=street+address

Вы также можете определить уровень масштабирования следующим образом:

geo:street+address?z=3

И также возможно объединить несколько параметров, например:

geo:?q=street+address&z=15

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

Здесь немного документация для Android.

2) Открытие маршрута на Картах Google

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

http://maps.google.com/maps?saddr=street+adress&daddr=street+address

И координаты также работают с этим:

http://maps.google.com/maps?saddr=50,10&daddr=50,20

Вы можете снова использовать его следующим образом:

<a href="http://maps.google.com/maps?saddr=New+York&daddr=San+Francisco">Route New York --> San Francisco</a>   

3) Сразу после начала навигации

С помощью этой опции ссылка открывает маршрут к местоположению, и устройство не просто показывает маршрут, но сразу же начинает навигацию:

google.navigation:q=street+address

Вы также можете использовать координаты:

google.navigation:q=50,10

Вы бы использовали его следующим образом:

<a href="google.navigation:q=San+Francisco">Navigation to San Francisco</a>  

4) Тестирование

Я тестировал все на Nexus 5 под управлением Android 4.4 (KitKat) со следующим HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>Geo Link Test</title>
    </head>
    <body>
        <p><a href="geo:50,10">Location 50/10</a></p>
        <p><a href="geo:Vienna">Location Vienna</a></p>
        <p><a href="geo:?z=5&q=New+York">Zoom 5, Search for New York</a></p>
        <p><a href="geo:?q=San+Francisco&z=15">Zoom 15, Search for San Francisco</a></p>
        <p><a href="google.navigation:q=San+Francisco">Navigation to San Francisco</a></p>
        <p><a href="google.navigation:q=50,10">Navigation to 50/10</a></p>
        <p><a href="http://maps.google.com/maps?saddr=New+York&daddr=San+Francisco">Route New York --> San Francisco</a></p>
        <p><a href="http://maps.google.com/maps?saddr=50,10&daddr=50,20">Route 50/10 --> 50/20</a></p>
    </body>
</html>

Ответ 2

после много тестирования ссылок я решил это для меня:

<a href="http://maps.google.com/maps?q=loc: <lat>,<lng>&navigate=yes">nav</a>

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

пользоваться

Ответ 3

Поскольку этот вопрос был впервые опубликован и ответил, по состоянию на октябрь 2017 года Google разработал API под названием URL-адрес карты.

Это универсальный межплатформенный URL для запуска карт Google.

https://www.google.com/maps/dir/?api=1 - конечная точка для карт, которые могут включать в себя навигацию.

Вы добавляете следующие параметры:

  • Происхождение: &origin=new+york
  • Назначение: &destination=san+fransisco
  • Навигация: &dir_action=navigate

Если вы не укажете источник, он обнаружит местоположение устройства, что, вероятно, лучше для навигации:

https://www.google.com/maps/dir/?api=1&destination=san+fransisco&dir_action=navigate

Это не сразу откроет навигацию, но приведет вас к карте Google, на которой будет отображаться значок навигации на странице, и предоставит пользователю возможность использовать приложение (или загрузить его, если у него нет Это). Это кажется хорошим решением. Я просто протестировал его в своем браузере, моем Google Pixel и моем iPhone, и он работает одинаково на каждом мобильном устройстве.

Ознакомьтесь с остальной частью документации для получения более полезных функций: https://developers.google.com/maps/documentation/urls/guide