На устройствах под управлением iOS 9 и более поздних версий вы можете использовать универсальные ссылки для запуска Google Maps при наличии URL-адреса Google Maps.
Вы можете использовать URL-схему Google Карт для запуска приложения Google Карт для iOS , а также выполнять поиск, получать запросы маршрутов и отображать виды карты. При запуске Google Карт ваш идентификатор пакета автоматически отправляется вместе с запросом.
Для использования схемы URL-адресов Google Maps ключ API Google не нужен.
Универсальные ссылки и Google Карты
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 Карты для iOS поддерживает следующие схемы URL:
comgooglemaps://
иcomgooglemaps-x-callback://
— эти схемы позволяют запустить приложение Google Maps для iOS и выполнить одно из нескольких действий:- Отобразить карту в указанном месте и с указанным уровнем масштабирования.
- Найдите нужные места или локации и отобразите их на карте.
- Запросите маршрут из одного места в другое. Маршруты можно получить для четырёх видов транспорта: автомобиль, пешком, на велосипеде и общественный транспорт.
- Добавьте навигацию в ваше приложение.
- В iOS 8 можно выполнить обратный вызов после завершения работы приложения, используя
comgooglemaps-x-callback://
. Обратные вызовы часто используются для возврата пользователя в приложение, которое изначально открыло Google Карты для iOS. Обратите внимание, что в iOS 9 система автоматически добавляет ссылку «Назад» в левом углу строки состояния.
comgooglemapsurl://
— эта схема позволяет запускать приложение Google Карт для iOS, используя URL-адрес, полученный с сайта Google Карт для ПК. Это означает, что вы можете предоставить своим пользователям привычный мобильный интерфейс, а не просто загружать сайт Google Карт.- Исходный 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 Карты для iOS.
-
center
: Это центральная точка области просмотра карты. Форматируется как строка координатlatitude,longitude
разделенная запятыми. -
mapmode
: устанавливает тип отображаемой карты. Возможные значения:standard
илиstreetview
. Если не указано иное, будут использоваться текущие настройки приложения. -
views
: включает/выключает определённые виды. Возможные значения:satellite
,traffic
илиtransit
. Можно указать несколько значений, разделяя их запятыми. Если параметр не указан, все виды будут удалены. -
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 Карты для iOS запустится и отобразит карту с центром в Нью-Йорке. В приложении также появится кнопка «SourceApp». При нажатии на кнопку «SourceApp» приложение Google Карты для 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 Карт для 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 Карт для iOS с запросом маршрута — простой способ предоставить пользователям доступ к пошаговой навигации из вашего приложения. Вы можете использовать URL-схемы comgooglemaps://
или comgooglemaps-x-callback://
.
Этот фрагмент кода показывает, как использовать схему comgooglemaps-x-callback://
для запроса маршрутов и последующего возврата в приложение, когда пользователь будет готов. Код выполнит следующие действия:
- Убедитесь, что схема URL
comgooglemaps-x-callback://
доступна. - Запустите приложение Google Карты для iOS и запросите маршрут до аэропорта имени Джона Кеннеди в Нью-Йорке. Оставьте поле начального адреса пустым, чтобы запросить маршрут из текущего местоположения пользователя.
- Добавьте кнопку с надписью «AirApp» в приложение Google Карты для 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/?q=@37.3161,-122.1836
Используя схему URL:
comgooglemapsurl://maps.google.com/?q=@37.3161,-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 Карты для iOS запустится и отобразит карту с маршрутом к Токийской башне, как указано в исходном URL-адресе Google Карт (см. выше). В приложении также появится кнопка «SourceApp». При нажатии на кнопку «SourceApp» приложение Google Карты для 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