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

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

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

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

navigate:London to Paris

3 ответов


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

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

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

geo:longitude,laditude

или такой:

geo:street+address

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

geo:?q=street+address

можно также определить масштаб такой:

geo:street+address?z=3

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

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

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

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

2) открытие маршрута в Google Maps

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

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>

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

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

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

наслаждайтесь


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

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

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