Все готово!

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

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

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

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

Текущее место

С помощью Google Places API for iOS можно определить текущее местоположение устройства. Это место, где устройство находится в текущий момент времени. Примерами таких мест могут служить местные компании, достопримечательности и географические объекты.

  1. Разрешение на запрос местоположения
  2. Ограничения на использование
  3. Получение данных о текущем местоположении
  4. Указание авторства в приложении

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

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

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

Если вы хотите вызвать метод GMSPlacesClient currentPlaceWithCallback: без открытия диалога подтверждения, когда приложение работает в фоновом режиме, перед вызовом требуются следующие действия.

  1. Добавьте ключ NSLocationAlwaysUsageDescription в ваш файл Info.plist.
  2. Вызовите requestAlwaysAuthorization для любого экземпляра CLLocationManager перед вызовом метода.

Запросите авторизацию от CLLocationManager, выполнив следующие действия.

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

Ограничения на использование

При использовании метода GMSPlacesClient currentPlaceWithCallback: действует многоуровневая система ограничения запросов. Дополнительную информацию см. в документации по ограничениям на использование.

Получение данных о текущем местоположении

Чтобы найти компании или другие места поблизости от текущего местоположения устройства, вызовите метод GMSPlacesClient currentPlaceWithCallback:. Укажите метод обратного вызова для обработки результатов.

API вызывает указанный метод обратного вызова, передавая в него массив объектов GMSPlaceLikelihood.

Каждый объект GMSPlaceLikelihood отражает место. Для каждого места в результатах указывается, с какой вероятностью это место является именно тем, которое требуется. Чем больше значение, тем выше вероятность того, что данное место является наиболее подходящим. Если нет известных мест, соответствующих местоположению устройства, буфер может оказаться пустым.

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

Swift

placesClient.currentPlace(callback: { (placeLikelihoodList, error) -> Void in
  if let error = error {
    print("Pick Place error: \(error.localizedDescription)")
    return
  }

  if let placeLikelihoodList = placeLikelihoodList {
    for likelihood in placeLikelihoodList.likelihoods {
      let place = likelihood.place
      print("Current Place name \(place.name) at likelihood \(likelihood.likelihood)")
      print("Current Place address \(place.formattedAddress)")
      print("Current Place attributions \(place.attributions)")
      print("Current PlaceID \(place.placeID)")
    }
  }
})

Objective-C

  [_placesClient currentPlaceWithCallback:^(GMSPlaceLikelihoodList *likelihoodList, NSError *error) {
  if (error != nil) {
    NSLog(@"Current Place error %@", [error localizedDescription]);
    return;
  }

  for (GMSPlaceLikelihood *likelihood in likelihoodList.likelihoods) {
    GMSPlace* place = likelihood.place;
    NSLog(@"Current Place name %@ at likelihood %g", place.name, likelihood.likelihood);
    NSLog(@"Current Place address %@", place.formattedAddress);
    NSLog(@"Current Place attributions %@", place.attributions);
    NSLog(@"Current PlaceID %@", place.placeID);
  }

}];
  

Примечания, касающиеся значений вероятности.

  • Значение вероятности отражает относительную возможность того, что место является наиболее подходящим из списка возвращенных результатов одного запроса. Сравнить значения вероятности для разных запросов невозможно.
  • Значение вероятности представляет собой число от 0 до 1,0.
  • Сумма значений вероятности в возвращаемом массиве объектов GMSPlaceLikelihood всегда меньше или равна 1,0. Обратите внимание на то, что сумма не обязательно должна быть равной 1,0.

Например, для обозначения 55%-ной вероятности того, что место А является именно тем, которое требуется, и обозначения 35%-ной вероятности того, что таким местом является место Б, в массиве вероятности имеется два члена: место А со значением вероятности 0,55 и место Б со значением вероятности 0,35.

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

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

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

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