Все готово!

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

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

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

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

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

Для добавления мест в базу данных Google Places можно использовать интерфейс Google Places API for iOS. Новые добавленные места отображаются в вашем приложении через некоторое время. Также они помещаются в очередь на проверку, чтобы их можно было добавить в базу данных Google Places и в Google Maps.

Чтобы повысить вероятность того, что место пройдет проверку и будет добавлено в базу данных Google Places, включите в запрос как можно больше информации. В частности, важно указать адрес, номер телефона и веб-сайт.

  1. Добавление места
  2. Обработка нескольких идентификаторов мест и областей их действия

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

Создайте объект GMSUserAddedPlace и передайте его методу GMSPlacesClient addPlace:callback:.

При создании объекта GMSUserAddedPlace включите в него следующую информацию.

  • Обязательно: полный текст названия (свойство name) организации, достопримечательности или другого места. Не более 255 символов.
  • Обязательно: удобочитаемый адрес места (свойство address). Место с удобочитаемым адресом имеет более высокие шансы пройти проверку и быть включенным в базу данных Google Places.
  • Обязательно: объект coordinate (CLLocationCoordinate2D) с указаниями координат места.
  • Необязательно: номер телефона для места (свойство phoneNumber). Номер телефона следует указывать в международном формате. В международном формате указывается код страны и знак плюс (+) перед номером. Например, у офиса Google в г. Маунтин-Вью (США) номер телефона в международном формате выглядит так: +1 650-253-0000. Место с номером телефона в правильном формате имеет более высокие шансы пройти проверку и быть включенным в базу данных Google Places. Примечание. Необходимо указать phoneNumber, или website, или оба этих свойства.
  • Обязательно: список типов, характеризующих это место. Допустимыми являются только типы в таблице 1.
  • Необязательно: URI-идентификатор сайта, содержащий адрес официального сайта этого места, например, адрес домашней страницы компании. Место с удобочитаемым веб-адресом имеет более высокие шансы пройти проверку и быть включенным в базу данных Google Places. Примечание. Необходимо указать phoneNumber, или website, или оба этих свойства.

Также необходимо указать метод обратного вызова для обработки результатов. API вызывает указанный метод обратного вызова, передавая ему полученный объект GMSPlace для созданного места.

Следующий образец кода добавляет место под названием "Google Shoes!" в г. Пирмонт (Австралия).

Swift

let userAddedPlace = GMSUserAddedPlace()
userAddedPlace.name = "Google Shoes!"
userAddedPlace.address = "48 Pirrama Road, Pyrmont, NSW 2009, Australia"
userAddedPlace.coordinate = CLLocationCoordinate2DMake(-33.8669710, 151.1958750)
userAddedPlace.phoneNumber = "(02) 9374 4000"
userAddedPlace.website = "http://www.google.com.au/"
userAddedPlace.types = ["shoe_store"]
placesClient.add(userAddedPlace, callback: { (place, error) -> Void in
  if let error = error {
    print("Add Place error: \(error.localizedDescription)")
    return
  }

  if let place = place {
    print("Added place with placeID \(place.placeID)")
    print("Added Place name \(place.name)")
    print("Added Place address \(place.formattedAddress)")
  }
})

Objective-C

GMSUserAddedPlace *userAddedPlace = [[GMSUserAddedPlace alloc] init];
userAddedPlace.name = @"Google Shoes!";
userAddedPlace.address = @"48 Pirrama Road, Pyrmont, NSW 2009, Australia";
userAddedPlace.coordinate = CLLocationCoordinate2DMake(-33.8669710, 151.1958750);
userAddedPlace.phoneNumber = @"(02) 9374 4000";
userAddedPlace.website = @"http://www.google.com.au/";
userAddedPlace.types = @[@"shoe_store"];

[_placesClient addPlace:userAddedPlace callback:^(GMSPlace *place, NSError *error) {
  if (error != nil) {
    NSLog(@"User Added Place error %@", [error localizedDescription]);
    return;
  }

  NSLog(@"Added place with placeID %@", place.placeID);
  NSLog(@"Added Place name %@", place.name);
  NSLog(@"Added Place address %@", place.formattedAddress);
}];

Получаемый в результате объект GMSPlace имеет уникальный идентификатор, который приложение теперь может использовать для получения сведений о данном месте. Кроме того, через некоторое время добавленные места также будут доступны в результатах запросов get-current-place, отправленных из вашего приложения, а также в инструменте выбора мест, который имеется в вашем приложении. Область действия определяется идентификатором проекта, который использовался для создания вашего ключа API.

Данные о новых местах поступают в очередь на проверку, где оценивается возможность их добавления в базу данных Google Places. Места, отклоненные в результате проверки, по-прежнему будут доступны по своим идентификаторам в приложении, из которого они были добавлены, однако они больше не будут отображаться в результатах запросов get-current-place, в средстве выбора API и в любых других методах API. Места, которые успешно прошли проверку, будут отображаться во всех приложениях и в Google Maps.

Обработка нескольких идентификаторов мест и областей их действия

Каждый идентификатор может относиться только к одному месту, однако одному месту можно присвоить сразу несколько идентификаторов. Самым распространенным примером обработки нескольких идентификаторов может служить добавление места, имевшего исходную область действия вашего приложения, в область действия "Google".

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

При поиске места по его идентификатору в результатах запроса всегда будет указываться одно и то же место (если оно еще существует).

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

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

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