Все готово!

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

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

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

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

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

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

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

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

Чтобы добавить место, вызовите метод GeoDataApi.addPlace(), передайте ему объект AddPlaceRequest со сведениями о добавляемом месте.

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

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

API возвращает содержимое буфера PlaceBuffer в запросе PendingResult. В буфере PlaceBuffer будут содержаться сведения о добавленном месте.

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

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

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

Ниже показан пример кода, в котором добавляются данные о заповеднике близ г. Мэнли на восточном побережье Австралии.

AddPlaceRequest place =
    new AddPlaceRequest(
        "Manly Sea Life Sanctuary", // Name
        new LatLng(-33.7991, 151.2813), // Latitude and longitude
        "W Esplanade, Manly NSW 2095", // Address
        Collections.singletonList(Place.TYPE_AQUARIUM), // Place types
        "+61 1800 199 742", // Phone number
        Uri.parse("http://www.manlysealifesanctuary.com.au/") // Website
    );

Places.GeoDataApi.addPlace(mGoogleApiClient, place)
    .setResultCallback(new ResultCallback<PlaceBuffer>() {
        @Override
        public void onResult(PlaceBuffer places) {
            Log.i(TAG, "Place add result: " + places.getStatus().toString());
            Log.i(TAG, "Added place: " + places.get(0).getName().toString());
            places.release();
        }
    });

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

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

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

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

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

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

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