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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

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

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

Карты 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 для отображения карты с указанным уровнем масштабирования и в указанном месте. Вы также можете накладывать другие изображения поверх карты или отображать изображения из Просмотра улиц.

Параметры

Все следующие параметры являются необязательными. Если параметры не заданы, схема 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

Используйте эту схему для отображения поисковых запросов в указанном месте области просмотра.

Параметры

В дополнение к параметрам, используемым для отображения карты, Search поддерживает параметр 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 принимает те же параметры, что и схема 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 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.")
}

Цель-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://")!)

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