Схема URL-адресов Google Maps для iOS

На устройствах под управлением iOS 9 и более поздних версий вы можете использовать универсальные ссылки для запуска Google Карт, если у вас есть URL-адрес Google Карт.

Вы можете использовать схему URL Google Maps для запуска приложения Google Maps для iOS и выполнения поиска, получения запросов на направление и отображения видов карты. При запуске Google Maps ваш идентификатор пакета автоматически отправляется как часть запроса.

Для использования схемы URL-адресов Google Карт вам не нужен ключ API 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 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:// .

Запуск приложения 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 , or 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&center=37.759748,-122.427135

Рядом Пицца

Вот еще несколько примеров:

comgooglemaps://?q=Steamers+Lane+Santa+Cruz,+CA&center=37.782652,-122.410126&views=satellite,traffic&zoom=15
comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan&center=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&center=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&center=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 обратного вызова.

  1. Убедитесь, что ваше приложение зарегистрировало схему URL, которая может ответить на запрос обратного вызова.
  2. Передайте метку для кнопки обратного вызова в параметре x-source .
  3. Передайте 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&center=37.759748,-122.427135
   &x-success=sourceapp://?resume=true
   &x-source=Nom+Nom

Добавление навигации в ваше приложение

Запуск приложения Google Maps для iOS с запросом маршрута — это простой способ предоставить пользователям доступ к пошаговой навигации из вашего приложения. Вы можете использовать либо схемы URL comgooglemaps:// , либо comgooglemaps-x-callback:// .

Этот фрагмент кода показывает, как использовать схему comgooglemaps-x-callback:// для запроса маршрутов, а затем вернуться в приложение, когда пользователь будет готов. Код будет делать следующее:

  1. Убедитесь, что схема URL comgooglemaps-x-callback:// доступна.
  2. Запустите приложение Google Maps для iOS и запросите маршрут до аэропорта имени Кеннеди в Нью-Йорке. Оставьте начальный адрес пустым, чтобы запросить маршрут из текущего местоположения пользователя.
  3. Добавьте кнопку с надписью "AirApp" в приложение Google Maps для iOS. Метка кнопки определяется параметром x-source .
  4. Вызвать фиктивную схему 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, тем самым предлагая своим пользователям наилучший нативный опыт.

  1. Замените схему http:// или https:// на comgooglemapsurl:// .
  2. Если вы хотите использовать обратный вызов, включите параметры 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