На устройствах под управлением iOS 9 и более поздних версий вы можете использовать универсальные ссылки для запуска Google Карт, если у вас есть URL-адрес Google Карт.
Вы можете использовать схему URL Google Maps для запуска приложения Google Maps для iOS и выполнения поиска, получения запросов на направление и отображения видов карты. При запуске Google Maps ваш идентификатор пакета автоматически отправляется как часть запроса.
Для использования схемы URL-адресов Google Карт вам не нужен ключ API Google.
Универсальные ссылки и Google Maps
Google Maps для iOS поддерживает универсальные ссылки на устройствах под управлением iOS 9 или более поздней версии.
Если ваш URL-адрес соответствует следующему регулярному выражению и устройство работает под управлением iOS 9 или более поздней версии, вы можете рассмотреть возможность использования метода openURL: напрямую.
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Например,
Быстрый
UIApplication.shared.openURL(URL(string:"https://www.google.com/maps/@42.585444,13.007813,6z")!)
Objective-C
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"https://www.google.com/maps/@42.585444,13.007813,6z"]];
Обзор
Схема URL позволяет запускать собственное приложение iOS из другого приложения iOS или веб-приложения. Вы можете задать параметры в URL, которые будут переданы запущенному приложению. Приложение Google Maps для iOS поддерживает следующие схемы URL:
comgooglemaps://
иcomgooglemaps-x-callback://
— эти схемы позволяют запустить приложение Google Maps для iOS и выполнить одно из нескольких действий:- Отображение карты в указанном месте и с указанным уровнем масштабирования.
- Найдите нужные места или локации и отобразите их на карте.
- Запросить указания из одного места в другое. Указания могут быть возвращены для четырех видов транспорта: автомобиль, пешком, на велосипеде и на общественном транспорте.
- Добавьте навигацию в свое приложение.
- В iOS 8 выполните обратный вызов, когда приложение завершит работу, используя
comgooglemaps-x-callback://
. Обратные вызовы часто используются для возврата пользователя в приложение, которое изначально открыло Google Maps для iOS. Обратите внимание, что в iOS 9 система автоматически предоставляет ссылку «Назад» в левом углу строки состояния.
comgooglemapsurl://
- Эта схема позволяет вам запускать приложение Google Maps для iOS, используя URL, полученный с сайта Google Maps для ПК. Это означает, что вы можете предоставить своим пользователям собственный мобильный опыт, а не просто загружать сайт Google Maps.- Исходный URL может быть для
maps.google.com
, или дляgoogle.com/maps
, или использовать любой допустимый домен страны верхнего уровня вместоcom
. Вы также можете передать URL перенаправленияgoo.gl/maps
. - Вы можете выполнить обратный вызов, используя параметры
x-source
иx-success
с URL-схемойcomgooglemapsurl://
.
- Исходный URL может быть для
Запуск приложения Google Maps для iOS и выполнение определенной функции
Чтобы запустить приложение Google Maps для iOS и при необходимости выполнить одну из поддерживаемых функций, используйте схему URL следующего вида:
comgooglemaps://?parameters
или:
comgooglemaps-x-callback://?parameters
Параметры подробно описаны далее в этом документе.
Проверка доступности приложения Google Maps на устройстве
Прежде чем вы предоставите один из этих URL-адресов пользователю в вашем приложении, вы должны сначала убедиться, что приложение установлено. Ваше приложение может проверить, доступна ли схема URL, с помощью следующего кода:
Быстрый
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]];
Например, чтобы отобразить карту Центрального парка в Нью-Йорке, вы можете использовать следующий код:
Быстрый
if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
UIApplication.shared.openURL(URL(string:
"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic")!)
} else {
print("Can't use comgooglemaps://");
}
Objective-C
if ([[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]]) {
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
} else {
NSLog(@"Can't use comgooglemaps://");
}
Отображение карты
Используйте схему URL для отображения карты с указанным уровнем масштабирования и местоположением. Вы также можете накладывать другие виды поверх вашей карты или отображать изображения Street View.
Параметры
Все следующие параметры являются необязательными. Если параметры не заданы, схема URL запустит приложение Google Maps для iOS.
-
center
: Это центральная точка области просмотра карты. Форматируется как строкаlatitude,longitude
разделенная запятыми. -
mapmode
: Устанавливает тип отображаемой карты. Может быть установлено значение:standard
илиstreetview
. Если не указано, будут использоваться текущие настройки приложения. -
views
: Включает/выключает определенные представления. Можно задать:satellite
,traffic
, ortransit
. Можно задать несколько значений с помощью запятой-разделителя. Если параметр указан без значения, то он очистит все представления. -
zoom
: определяет уровень масштабирования карты.
В этом примере URL-адреса отображается карта с центром в Нью-Йорке при масштабе 14 и отображении дорожной обстановки на:
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
Вот еще несколько примеров:
comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
Поиск
Используйте эту схему для отображения поисковых запросов в указанном месте области просмотра.
Параметры
Помимо параметров, используемых для отображения карты, Поиск поддерживает параметр q
.
-
q
: Строка запроса для вашего поиска.
В этом примере URL-адреса выполняется поиск по запросу «Пицца» в указанном месте:
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
Вот еще несколько примеров:
comgooglemaps://?q=Steamers+Lane+Santa+Cruz,+CA¢er=37.782652,-122.410126&views=satellite,traffic&zoom=15
comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan¢er=35.660888,139.73073&zoom=15&views=transit
Отображение направлений
Используйте эту схему для запроса и отображения направлений между двумя локациями. Вы также можете указать вид транспорта.
Параметры
-
saddr
: Устанавливает начальную точку для поиска направлений. Это может быть широта, долгота или адрес в формате запроса. Если это строка запроса, которая возвращает более одного результата, будет выбран первый результат. Если значение оставить пустым, будет использовано текущее местоположение пользователя. -
daddr
: Устанавливает конечную точку для поиска направлений. Имеет тот же формат и поведение, что иsaddr
. -
directionsmode
: Способ передвижения. Можно установить:driving
,transit
,bicycling
илиwalking
.
В примере URL-адреса отображаются маршруты общественного транспорта между Google NYC и аэропортом имени Джона Кеннеди:
comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit
Вот еще несколько примеров:
comgooglemaps://?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+Francisco,+CA¢er=37.422185,-122.083898&zoom=10
comgooglemaps://?saddr=2025+Garcia+Ave,+Mountain+View,+CA,+USA&daddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA,+United+States¢er=37.423725,-122.0877&directionsmode=walking&zoom=17
Указание URL обратного вызова
Если вы хотите указать URL-адрес обратного вызова, необходимо использовать схему URL comgooglemaps-x-callback://
. Эта схема соответствует спецификации x-callback-url . При вызове приложения Google Maps для iOS с помощью этой схемы приложение отобразит кнопку в верхней части экрана. Нажатие этой кнопки выполнит обратный вызов на указанный вами URL-адрес.
Запросы к comgooglemaps-x-callback://
должны иметь следующий вид:
comgooglemaps-x-callback://?parameters
Параметры
Схема URL x-callback принимает те же параметры, что и схема URL comgooglemaps://
, со следующими дополнительными параметрами. Оба параметра являются обязательными.
-
x-source
— Имя приложения, отправляющего запрос x-callback. Предпочтительны короткие имена. -
x-success
— URL для вызова после завершения. Часто это будет схема URL для вашего собственного приложения, позволяющая пользователям вернуться к исходному приложению.
Обратите внимание, что вашему приложению придется зарегистрировать собственную схему URL, чтобы оно могло отвечать на URL обратного вызова.
- Убедитесь, что ваше приложение зарегистрировало схему URL, которая может ответить на запрос обратного вызова.
- Передайте метку для кнопки обратного вызова в параметре
x-source
. - Передайте URL-адрес обратного вызова в параметре
x-success
.
Следующий пример запустит приложение Google Maps для iOS и отобразит карту с центром в Нью-Йорке. Приложение также отобразит кнопку с надписью «SourceApp». При нажатии кнопки «SourceApp» приложение Google Maps для iOS выполнит обратный вызов фиктивной схемы URL, sourceapp://?resume=true
.
comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
&x-success=sourceapp://?resume=true
&x-source=SourceApp
Как и в случае со схемой URL comgooglemaps://
, сначала следует проверить, что приложение Google Maps для iOS доступно на устройстве и поддерживает схему URL x-callback. Ваше приложение может проверить, доступна ли схема URL, с помощью следующего кода:
Быстрый
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
Это пример URL-адреса, который позволяет пользователям вернуться в приложение после поиска десерта.
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
Добавление навигации в ваше приложение
Запуск приложения Google Maps для iOS с запросом маршрута — это простой способ предоставить пользователям доступ к пошаговой навигации из вашего приложения. Вы можете использовать либо схемы URL comgooglemaps://
, либо comgooglemaps-x-callback://
.
Этот фрагмент кода показывает, как использовать схему comgooglemaps-x-callback://
для запроса маршрутов, а затем вернуться в приложение, когда пользователь будет готов. Код будет делать следующее:
- Убедитесь, что схема URL
comgooglemaps-x-callback://
доступна. - Запустите приложение Google Maps для iOS и запросите маршрут до аэропорта имени Кеннеди в Нью-Йорке. Оставьте начальный адрес пустым, чтобы запросить маршрут из текущего местоположения пользователя.
- Добавьте кнопку с надписью "AirApp" в приложение Google Maps для iOS. Метка кнопки определяется параметром
x-source
. - Вызвать фиктивную схему URL
sourceapp://
, когда пользователь нажимает кнопку «Назад».
Быстрый
let testURL = URL(string: "comgooglemaps-x-callback://")!
if UIApplication.shared.canOpenURL(testURL) {
let directionsRequest = "comgooglemaps-x-callback://" +
"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
"&x-success=sourceapp://?resume=true&x-source=AirApp"
let directionsURL = URL(string: directionsRequest)!
UIApplication.shared.openURL(directionsURL)
} else {
NSLog("Can't use comgooglemaps-x-callback:// on this device.")
}
Objective-C
NSURL *testURL = [NSURL URLWithString:@"comgooglemaps-x-callback://"];
if ([[UIApplication sharedApplication] canOpenURL:testURL]) {
NSString *directionsRequest = @"comgooglemaps-x-callback://" +
@"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
@"&x-success=sourceapp://?resume=true&x-source=AirApp";
NSURL *directionsURL = [NSURL URLWithString:directionsRequest];
[[UIApplication sharedApplication] openURL:directionsURL];
} else {
NSLog(@"Can't use comgooglemaps-x-callback:// on this device.");
}
Запуск приложения Google Maps для iOS с URL-адреса Google Maps для ПК
Если ваше приложение имеет доступ к уже существующему URL-адресу Google Maps, например, на веб-странице или в базе данных, вы можете использовать эту схему, чтобы открыть URL-адрес в приложении Google Maps для iOS, тем самым предлагая своим пользователям наилучший нативный опыт.
- Замените схему
http://
илиhttps://
наcomgooglemapsurl://
. - Если вы хотите использовать обратный вызов, включите параметры
x-source
иx-success
. Эта схема соответствует спецификации x-callback-url .
Поддерживаемые форматы URL-адресов Google Maps
Схема comgooglemapsurl://
поддерживает URL-адреса, соответствующие этому регулярному выражению, где {TLD}
относится к любому допустимому домену страны верхнего уровня. Разрывы строк добавлены для ясности:
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Проверка доступности приложения Google Maps
Сначала убедитесь, что приложение Google Maps для iOS доступно на устройстве и поддерживает схему URL:
Быстрый
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
Примеры
Пример универсального URL-адреса Google Maps:
Исходный URL-адрес Google Карт:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
Использование схемы URL:
comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z
Пример универсального URL-адреса Google Maps:
Исходный URL-адрес Google Карт:
https://maps.google.com/[email protected],-122.1836
Использование схемы URL:
comgooglemapsurl://maps.google.com/[email protected],-122.1836
Пример запроса маршрута к Токийской башне с помощью x-callback:
Исходный URL-адрес Google Карт:
http://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
Следующий пример запустит приложение Google Maps для iOS и отобразит карту с указаниями к Tokyo Tower, как указано в исходном URL-адресе Google Maps (выше). Приложение также отобразит кнопку с надписью «SourceApp». При нажатии кнопки «SourceApp» приложение Google Maps для iOS выполнит обратный вызов фиктивной схемы URL-адресов sourceapp://?resume=true
.
comgooglemapsurl://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
&x-source=SourceApp
&x-success=sourceapp://?resume=true