В версии 4 API геокодирования представлены несколько новых конечных точек, заменяющих функциональность версии 3 API. В этом руководстве показано, как перевести ваше приложение на использование новых конечных точек версии 4.
Вы можете использовать свои существующие ключи API с новыми конечными точками версии 4. Однако, если вы запросили увеличение квоты для версии 3 API, вам необходимо запросить увеличение квоты и для новых API версии 4. Для пользователей JavaScript миграция не предусмотрена.
Переход с v3 Forward Geocoding
Если вы используете геокодирование для определения местоположения адресов, вам следует перейти на конечную точку геокодирования адресов версии 4, которая принимает GET-запросы.
В версии 4 API изменены названия, структура и поддержка ряда параметров. Мы настоятельно рекомендуем использовать маску поля для указания полей, которые вы хотите получить в ответе.
Запрос на изменение параметров
| Параметр v3 | Параметр v4 | Примечания |
|---|---|---|
address , components | address | Неструктурированный адрес ( address v3) теперь передается в пути URL. Фильтры компонентов ( components v3) теперь передаются в качестве параметров запроса address.* |
bounds | locationBias.rectangle | Переименовано; структура изменена на объект. |
language | languageCode | Переименовано. |
region | regionCode | Переименовано. |
extra_computations | Удаленный |
Изменения в поле ответа
| поле v3 | поле v4 | Примечания |
|---|---|---|
status , error_message | Удаленный | В версии v4 используются коды состояния HTTP и тела ошибок . |
results.address_components.long_name / results.address_components.short_name | results.addressComponents.longText / results.addressComponents.shortText | Переименовано. |
results.geometry.location_type | results.granularity | Переименовано. |
results.geometry.location | results.location | Названия полей: lat / lng -> latitude / longitude . |
results.geometry.viewport | results.viewport | Названия полей: northeast / southwest -> high / low . |
results.postcode_localities | results.postalCodeLocalities | Переименовано. Теперь возвращается для одного или нескольких населенных пунктов (требуется v3 >1). |
results.partial_match | Удаленный | |
| Новый | results.addressComponents.languageCode | Язык конкретного компонента адреса. |
| Новый | results.bounds | Явные границы с использованием high / low . |
| Новый | results.place | Название ресурса для данного места. |
| Новый | results.postalAddress | Структурированный объект PostalAddress . |
Переход с версии 3 обратного геокодирования
Если вы используете обратное геокодирование для преобразования координат в адреса, вам следует перейти на конечную точку обратного геокодирования местоположения версии 4, которая принимает GET-запрос.
В версии 4 API изменены названия, структура и поддержка ряда параметров. Мы настоятельно рекомендуем использовать маску поля для указания полей, которые вы хотите получить в ответе.
Запрос на изменение параметров
| Параметр v3 | Параметр v4 | Примечания |
|---|---|---|
language | languageCode | Переименовано. |
region | regionCode | Переименовано. |
result_type | types | Переименовано; используются повторяющиеся параметры запроса. |
location_type | granularity | Переименовано; используются повторяющиеся параметры запроса. |
extra_computations | Удаленный |
Изменения в поле ответа
| поле v3 | поле v4 | Примечания |
|---|---|---|
status , error_message | Удаленный | В версии v4 используются коды состояния HTTP и тела ошибок . |
results.address_components.long_name / results.address_components.short_name | results.addressComponents.longText / results.addressComponents.shortText | Переименовано. |
results.geometry.location_type | results.granularity | Переименовано. |
results.geometry.location | results.location | Названия полей: lat / lng -> latitude / longitude . |
results.geometry.viewport | results.viewport | Названия полей: northeast / southwest -> high / low . |
| Новый | results.addressComponents.languageCode | Язык конкретного компонента адреса. |
| Новый | results.bounds | Явные границы с использованием high / low . |
| Новый | results.place | Название ресурса для данного места. |
| Новый | results.postalAddress | Структурированный объект PostalAddress . |
Перенос с версии 3 на геокодирование местоположения
Если вы используете place_id для получения адреса для конкретного идентификатора места с помощью Geocoding v3, вам необходимо перейти на конечную точку геокодирования мест версии 4, которая принимает GET-запрос.
В версии 4 API изменены названия, структура и поддержка ряда параметров. Мы настоятельно рекомендуем использовать маску поля для указания полей, которые вы хотите получить в ответе.
Запрос на изменение параметров
| Параметр v3 | Параметр v4 | Примечания |
|---|---|---|
place_id | place поле в протокол запроса | Идентификатор места теперь передается в качестве параметра пути places/{place} , например: https://geocode.googleapis.com/v4beta/geocode/places/ChIJj61dQgK6j4AR4GeTYWZsKWw . Это соответствует полю place в базовом запросе. |
language | languageCode | Переименовано. |
region | regionCode | Переименовано. |
Изменения в поле ответа
| поле v3 | поле v4 | Примечания |
|---|---|---|
status , error_message | Удаленный | В версии v4 используются коды состояния HTTP и тела ошибок . |
results | (корень) | Версия v4 возвращает один объект результата, а не массив results . |
results.address_components.long_name / results.address_components.short_name | addressComponents.longText / addressComponents.shortText | Переименовано. |
results.geometry.location_type | granularity | Переименовано. |
results.geometry.location | location | Названия полей: lat / lng -> latitude / longitude . |
results.geometry.viewport | viewport | Названия полей: northeast / southwest -> high / low . |
results.postcode_localities | postalCodeLocalities | Переименовано. Теперь возвращается для одного или нескольких населенных пунктов (требуется v3 >1). |
| Новый | addressComponents.languageCode | Язык конкретного компонента адреса. |
| Новый | bounds | Явные границы с использованием high / low . |
| Новый | place | Название ресурса для данного места. |
| Новый | postalAddress | Структурированный объект PostalAddress . |
Переход от геокодирования гиперлокальных данных к геолокационным данным о местоположении.
Следующие функции API геокодирования версии 3 заменяются конечной точкой SearchDestinations API геокодирования версии 4:
- Входы
- Навигационные точки
- Контуры здания
- Территория
Если вы использовали API геокодирования версии 3 для получения указанных выше данных, воспользуйтесь этим документом, чтобы перейти к использованию конечной точки SearchDestinations. В этом документе объясняется, где в ответе API SearchDestinations можно найти эти данные, а также описываются различия в представлении этих данных в ответах API между API геокодирования версии 3 и конечной точкой SearchDestinations API геокодирования версии 4.
Входы
To get the entrances associated with a destination , use the field destination.entrances .
Обратите внимание, что формат entrance немного отличается от формата входа в API геокодирования версии 3. Каждый вход в destination.entrances имеет следующие поля:
-
displayName— это новое необязательное поле, в котором будет отображаться удобочитаемое название входа, например, «Ворота B». -
location— это местоположение типаLatLng, которое отличается от формата, используемого в API геокодирования версии 3. -
tags— это то же самое, что и полеtagsвходов из API геокодирования версии 3. -
place— аналогично полюbuildingPlaceIdвходов в API геокодирования версии 3. Однако идентификатор места в этом поле может относиться к любому типу места, а не обязательно только к зданию.
Навигационные точки
Чтобы получить точки навигации, связанные с destination , используйте поле destination.navigationPoints .
Обратите внимание, что формат navigationPoint немного отличается от формата точек навигации в Geocoding API v3 . Каждая точка навигации в destination.navigationPoints имеет следующие поля:
-
displayName— это новое необязательное поле, которое будет содержать удобочитаемое имя для точки навигации, например, "5th Ave". -
location— это местоположение типаLatLng, которое отличается от формата, используемого в API геокодирования версии 3. -
travelModes— это поле аналогично полюrestrictedTravelModesв точках навигации из API геокодирования версии 3. Возможные значения перечисления те же, единственное отличие заключается в том, что теперь это поле представляет собой допустимые способы передвижения для точки навигации, а не запрещенные способы передвижения. -
usage— это новое поле, содержащее варианты использования, поддерживаемые точкой навигации. Обратите внимание, что для большинства точек навигации будет указано «ИспользованиеUNKNOWN, но это не обязательно означает, что использование точки навигации каким-либо образом ограничено.
Контуры здания
Чтобы получить контуры зданий, связанных с destination , следует использовать поле displayPolygon объектов placeView в destination , представляющих здания. Для каждого placeView можно проверить, является ли он зданием, с помощью поля placeView.structureType . Если тип структуры — BUILDING , то контур можно получить из поля placeView.displayPolygon . placeView также будет содержать дополнительные поля для здания, которых не было в API геокодирования версии 3.
Объект placeView в destination может представлять здание, отображая его в следующих полях:
-
destination.primary- это основное местоположение для пункта назначения. -
destination.containingPlaces— это повторяющееся поле, которое может содержать более крупные объекты, «содержащие» основное место. Например, если основное место являетсяsubpremise,containingPlacesобычно будет содержатьplaceView, представляющий здание. -
destination.subDestinations— это повторяющееся поле, которое может содержать подпункты основного места. Например, отдельные квартиры в здании. Обычно это поле не содержитplaceView, представляющего здание.
Обратите внимание, что формат placeView.displayPolygon соответствует формату контуров зданий в Geocoding API v3 , который представляет собой формат GeoJSON, использующий формат RFC 7946 .
Территория
Аналогично контурам зданий, чтобы получить информацию о территории, связанной с destination , следует использовать поле displayPolygon объектов placeView в destination , которые представляют собой территорию. Для каждого placeView можно проверить, является ли он территорией, с помощью поля placeView.structureType . Если тип структуры — GROUNDS , вы можете получить контур из поля placeView.displayPolygon . placeView также будет содержать дополнительные поля для территории, которых не было в API геокодирования версии 3.
destination placeView может представлять собой объект, содержащий информацию о территории, в следующих полях:
-
destination.primary -
destination.containingPlaces -
destination.subDestinations
Обратите внимание, что формат placeView.displayPolygon соответствует формату контура территории в Geocoding API v3 , который представляет собой формат GeoJSON, использующий формат RFC 7946 .
Используйте маску поля для запроса этих функций.
Для доступа к конечной точке SearchDestinations требуется маска поля, как поясняется в разделе «Выбор полей для возврата» . Маску поля можно установить на * для возврата всех полей или указать конкретные поля, которые вы хотите получить. Например, следующий API-запрос устанавливает маску поля для получения всех полей, необходимых для получения информации о входах, точках навигации, контурах зданий и территории пункта назначения:
curl -X POST -d '{"place": "places/ChIJG3kh4hq6j4AR_XuFQnV0_t8"}' \
-H "X-Goog-Api-Key: API_KEY" \
-H "Content-Type: application/json" \
-H "X-Goog-FieldMask: destinations.entrances,destinations.navigationPoints,destinations.primary,destinations.containingPlaces,destinations.subDestinations" \
https://geocode.googleapis.com/v4alpha/geocode/destinations