Есть ли способ вызвать навигацию из мобильного браузера?
Я разрабатываю очень маленький сайт 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