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

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

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

Для использования схемы URL-адресов Google Maps вам не нужен ключ Google API.

Карты 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:// .

Запуск приложения 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&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. Ваше приложение может проверить доступность схемы URL-адресов с помощью следующего кода:

Быстрый

UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)

Цель-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 Карты» для 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.")
}

Цель-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, предлагая таким образом своим пользователям лучший собственный интерфейс. .

  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://")!)

Цель-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:

Исходный 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