На устройствах под управлением iOS 9 и более поздних версий вы можете использовать универсальные ссылки для запуска Карт Google, если у вас есть URL-адрес Карт Google.
Вы можете использовать схему URL-адресов Google Maps для запуска приложения Google Maps для iOS , выполнения поиска, получения запросов направления и отображения карт. Когда вы запускаете Карты Google, идентификатор вашего пакета автоматически отправляется как часть запроса.
Для использования схемы URL-адресов Google Maps вам не нужен ключ API Google.
Универсальные ссылки и Карты Google
Карты Google для 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")!)
Цель-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 для 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://")!)
Цель-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://");
}
Цель-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
или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 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. Ваше приложение может проверить доступность схемы URL-адресов с помощью следующего кода:
Быстрый
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Цель-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 Карты» для 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.")
}
Цель-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, например, на веб-странице или в базе данных, вы можете использовать эту схему, чтобы открыть 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://")!)
Цель-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
Примеры
Пример общего URL-адреса Карт Google:
Исходный 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:
Исходный 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 Maps для iOS и отобразится карта с указанием маршрутов к Токийской башне, как указано в исходном 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