Схема 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