Все готово!

Прежде чем приступить к разработке, ознакомьтесь с документацией для разработчиков.

Активация Google Places API for iOS

Чтобы помочь вам освоиться, мы покажем, как выполнить некоторые необходимые действия в консоли разработчика Google:

  1. Создание или выбор проекта
  2. Активация Google Places API for iOS
  3. Создание соответствующих ключей

Выбор мест

Виджет выбора мест

Выбор мест – это простой, но в то же время универсальный в использовании встроенный виджет, входящий в состав Google Places API for iOS.

Знакомство со средством выбора мест

GMSPlacePicker предоставляет диалоговый экран пользовательского интерфейса с интерактивной картой и списком мест поблизости, включающим в себя места с соответствующими географическими координатами и местные компании. Пользователь может выбрать место, после чего ваше приложение позволит получить сведения о нем.

По сравнению с разработкой аналогичного собственного виджета применение средства выбора мест имеет следующие достоинства.

  1. Единообразный интерфейс, как и в других приложениях, использующих средство выбора мест, включая приложения Google и сторонние продукты. Это означает, что пользователи вашего приложения уже знакомы с интерфейсом виджета и смогут без труда воспользоваться им.
  2. Наличие карты, интегрированной в средство выбора мест.
  3. Уже встроенные специальные возможности.
  4. Значительная экономия времени на разработку приложения.

Виджет выбора мест имеет функцию подсказки мест, которая отображает предполагаемые места с учетом поискового запроса, введенного пользователем. Эта функция присутствует во всех интеграциях виджета выбора мест, поэтому для активации подсказки мест не нужно предпринимать никаких дополнительных действий. Дополнительные сведения о функции подсказки мест см. в документе Подсказки мест.

Разрешение на запрос местоположения

Если в вашем приложении используется средство выбора мест, вам необходимо запросить разрешение на использование служб определения местоположения. Сначала добавьте один или оба следующих ключа в свой файл Info.plist, чтобы запросить постоянное разрешение или разрешение на время использования.

  • NSLocationWhenInUseUsageDescription
  • NSLocationAlwaysUsageDescription

Для виджета выбора мест достаточно запросить разрешение на время использования, однако для других функций приложения может требоваться постоянное разрешение. Для каждого ключа нужно добавить строку, информирующую пользователя о причине, по которой вам требуются службы определения местоположения. Например:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Show your location on the map</string>

Добавление средства выбора мест

Фрагмент кода ниже демонстрирует создание виджета GMSPlacePicker с центром в г. Сидней и получение данных по выбранному месту.

Swift

// The code snippet below shows how to create and display a GMSPlacePickerViewController.
@IBAction func pickPlace(_ sender: UIButton) {
  let config = GMSPlacePickerConfig(viewport: nil)
  let placePicker = GMSPlacePickerViewController(config: config)

  present(placePicker, animated: true, completion: nil)
}

// To receive the results from the place picker 'self' will need to conform to
// GMSPlacePickerViewControllerDelegate and implement this code.
func placePicker(_ viewController: GMSPlacePickerViewController, didPick place: GMSPlace) {
  // Dismiss the place picker, as it cannot dismiss itself.
  viewController.dismiss(animated: true, completion: nil)

  print("Place name \(place.name)")
  print("Place address \(place.formattedAddress)")
  print("Place attributions \(place.attributions)")
}

func placePickerDidCancel(_ viewController: GMSPlacePickerViewController) {
  // Dismiss the place picker, as it cannot dismiss itself.
  viewController.dismiss(animated: true, completion: nil)

  print("No place selected")
}

Objective-C

// The code snippet below shows how to create and display a GMSPlacePickerViewController.
- (IBAction)pickPlace:(UIButton *)sender {
  GMSPlacePickerConfig *config = [[GMSPlacePickerConfig alloc] initWithViewport:nil];
  GMSPlacePickerViewController *placePicker =
    [[GMSPlacePickerViewController alloc] initWithConfig:config];
  placePicker.delegate = self;

  [self presentViewController:placePicker animated:YES completion:nil];
}

// To receive the results from the place picker 'self' will need to conform to
// GMSPlacePickerViewControllerDelegate and implement this code.
- (void)placePicker:(GMSPlacePickerViewController *)viewController didPickPlace:(GMSPlace *)place {
  // Dismiss the place picker, as it cannot dismiss itself.
  [viewController dismissViewControllerAnimated:YES completion:nil];

  NSLog(@"Place name %@", place.name);
  NSLog(@"Place address %@", place.formattedAddress);
  NSLog(@"Place attributions %@", place.attributions.string);
}

- (void)placePickerDidCancel:(GMSPlacePickerViewController *)viewController {
  // Dismiss the place picker, as it cannot dismiss itself.
  [viewController dismissViewControllerAnimated:YES completion:nil];

  NSLog(@"No place selected");
}

Как показано в примере выше, виджет выбора мест можно инициализировать в указанной конфигурации, используя объект GMSPlacePickerConfig. В объекте конфигурации следует указать область просмотра (viewport), содержащую объект GMSCoordinateBounds. Этот объект определяет исходную прямоугольную область, которая должна отображаться на карте виджета выбора мест.

Вызовите метод GMSPlacePicker.pickPlaceWithCallback(_:), чтобы отобразить окно, в котором пользователю предлагается выбрать место.

Когда пользователь выбирает место, ваше приложение получает обратный вызов метода, указанного в pickPlaceWithCallback(_:). Параметром обратного вызова является выбранное место или нулевое значение, если место не выбрано пользователем.

Указание авторства в приложении

Если в приложении отображается информация, полученная с помощью средства выбора мест, в нем также должны отображаться сведения об авторстве. Дополнительную информацию см. в документации по указанию авторства.

Оставить отзыв о...

Текущей странице
location_on
Google Places API for iOS