На устройствах под управлением iOS 9 и более поздних версий вы можете использовать универсальные ссылки для запуска Карт Google, если у вас есть URL-адрес Карт Google.
Вы можете использовать схему URL-адресов Google Maps для запуска приложения Google Maps для iOS , выполнения поиска, получения запросов направления и отображения карт. Когда вы запускаете Карты Google, идентификатор вашего пакета автоматически отправляется как часть запроса.
Для использования схемы URL-адресов Google Maps вам не нужен ключ Google API.
Универсальные ссылки и Карты 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 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.")
}
Цель-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