## Index

- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.DestinationService` (interface)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeService` (interface)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.Destination` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.Entrance` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.Entrance.Tag` (enum)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeAddressRequest` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeAddressRequest.LocationBias` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeAddressResponse` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeLocationRequest` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeLocationResponse` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodePlaceRequest` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeResult` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeResult.AddressComponent` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeResult.Granularity` (enum)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.Landmark` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.Landmark.Tag` (enum)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.NavigationPoint` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.NavigationPoint.TravelMode` (enum)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.NavigationPoint.Usage` (enum)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlaceView` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlaceView.AddressComponent` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlaceView.StructureType` (enum)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlusCode` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsRequest` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsRequest.AddressQuery` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsRequest.LocationQuery` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsRequest.LocationQuery.PlaceFilter` (message)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsRequest.LocationQuery.PlaceFilter.Addressability` (enum)
- `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsResponse` (message)

## DestinationService

A service for retrieving destinations.

A destination provides hierarchical context about a place, which allows you to, for example, find apartment buildings within a larger apartment complex and vice versa. It also provides navigation points suitable for use cases such as ridesharing or delivery.

| SearchDestinations |
|---|
| `` rpc SearchDestinations(`https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsRequest`) returns (`https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsResponse`) `` This method performs a destination lookup and returns a list of destinations. Authorization scopes :   Requires one of the following OAuth scopes: - `https://www.googleapis.com/auth/cloud-platform` - ` https://www.googleapis.com/auth/maps-platform.geocode` - ` https://www.googleapis.com/auth/maps-platform.destinations` |

## GeocodeService

A service for performing geocoding.

| GeocodeAddress |
|---|
| `` rpc GeocodeAddress(`https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeAddressRequest`) returns (`https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeAddressResponse`) `` This method performs an address geocode, which maps an address to a LatLng. It also provides structured information about the address. Authorization scopes :   Requires one of the following OAuth scopes: - `https://www.googleapis.com/auth/cloud-platform` - ` https://www.googleapis.com/auth/maps-platform.geocode` - ` https://www.googleapis.com/auth/maps-platform.geocode.address` |

| GeocodeLocation |
|---|
| `` rpc GeocodeLocation(`https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeLocationRequest`) returns (`https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeLocationResponse`) `` This method performs a location geocode, which maps a LatLng to an address. It also provides structured information about the address. Authorization scopes :   Requires one of the following OAuth scopes: - `https://www.googleapis.com/auth/cloud-platform` - ` https://www.googleapis.com/auth/maps-platform.geocode` - ` https://www.googleapis.com/auth/maps-platform.geocode.location` |

| GeocodePlace |
|---|
| `` rpc GeocodePlace(`https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodePlaceRequest`) returns (`https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeResult`) `` This method performs a geocode lookup using a place ID. Authorization scopes :   Requires one of the following OAuth scopes: - `https://www.googleapis.com/auth/cloud-platform` - ` https://www.googleapis.com/auth/maps-platform.geocode` - ` https://www.googleapis.com/auth/maps-platform.geocode.place` |

## Destination

A destination. This includes the primary place, related places, entrances, and navigation points.

| Fields ||
|---|---|
| `primary` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlaceView` The primary place identified by the `primary_query` in the request. |
| `containing_places[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlaceView` The less precise places that the primary place is contained by. For example, the apartment complex that contains this building. |
| `sub_destinations[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlaceView` More precise sub-destinations of the primary place. For example, units contained in a building. Note: compared to the [SubDestination](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places#SubDestination) returned by the Places API, this list of sub-destinations is more exhaustive, and each sub-destination contains more information. |
| `landmarks[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.Landmark` Landmarks that can be used to communicate where the destination is or help with arrival. |
| `entrances[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.Entrance` Entrances for this destination. |
| `navigation_points[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.NavigationPoint` Navigation points for this destination. |

## Entrance

An entrance is a single latitude/longitude coordinate pair that defines the location of an entry and exit point for a place.

| Fields ||
|---|---|
| `display_name` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LocalizedText` Human readable name e.g., "Gate B", "South Entrance", "5th Ave Entrance". |
| `location` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LatLng` The location of the entrance. |
| `tags[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.Entrance.Tag` A list of tags that describe the entrance. |
| `place` | `string` The structure this entrance is physically located on, in `places/{place_id}` format. |

## Tag

Characteristics that describe an entrance.

| Enums ||
|---|---|
| `TAG_UNSPECIFIED` | Not used. |
| `PREFERRED` | The entrance likely provides physical access to the primary place in the returned destination. A place can have multiple preferred entrances. If an entrance does not have this tag, it means the entrance is physically on the same building as the primary place, but does not necessarily provide access to the place. For example, if the primary place is a restaurant in a strip mall, the "PREFERRED" entrances will be the ones that likely lead into the restaurant itself, while the other returned entrances will be other entrances for the building, such as entrances into other restaurants in the strip mall. If the primary place is a building itself, the `PREFERRED` entrances will be the ones that lead into the "main" part of the building. For example, in a shopping center the `PREFERRED` entrances will be the ones that allow access to the main foyer area, but if an entrance only provides access to a store on the side of the building, it won't be a `PREFERRED` entrance. Note: a `PREFERRED` entrance might not provide access to the primary place, and a non-`PREFERRED` entrance might provide access to the primary place. |

## GeocodeAddressRequest

Request message for GeocodeService.GeocodeAddress.

| Fields ||
|---|---|
| `location_bias` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeAddressRequest.LocationBias` Optional. The region to search. This location serves as a bias which means results around the given location are preferred. |
| `language_code` | `string` Optional. Language in which the results should be returned. |
| `region_code` | `string` Optional. Region code. The region code, specified as a ccTLD ("top-level domain") two-character value. The parameter affects results based on applicable law. This parameter will also influence, but not fully restrict, results from the service. |
| Union field `address_input`. The address to geocode. `address_input` can be only one of the following: ||
| `address_query` | `string` The unstructured address to geocode. |
| `address` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.PostalAddress` The structured address to geocode in postal address format. |

## LocationBias

The region to search. This location serves as a bias which means results around the given location are preferred.

| Fields ||
|---|---|
| Union field `type`. Types of location bias. `type` can be only one of the following: ||
| `rectangle` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.geo.type#google.geo.type.Viewport` A rectangular box defined by northeast and southwest corner. `rectangle.high()` must be the northeast point of the rectangle viewport. `rectangle.low()` must be the southwest point of the rectangle viewport. `rectangle.low().latitude()` cannot be greater than `rectangle.high().latitude()`. This will result in an empty latitude range. A rectangle viewport cannot be wider than 180 degrees. |

## GeocodeAddressResponse

Response message for `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeService.GeocodeAddress`.

| Fields ||
|---|---|
| `results[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeResult` The geocoding result. |

## GeocodeLocationRequest

Request message for GeocodeService.GeocodeLocation.

| Fields ||
|---|---|
| `language_code` | `string` Optional. Language in which the results should be returned. |
| `region_code` | `string` Optional. Region code. The region code, specified as a ccTLD ("top-level domain") two-character value. The parameter affects results based on applicable law. |
| `types[]` | `string` Optional. A set of type tags to restrict the results. Results that do not have any of the specified types are removed. For the complete list of possible values, see Table A and Table B at <https://developers.google.com/maps/documentation/places/web-service/place-types>. |
| `granularity[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeResult.Granularity` Optional. A filter of one or more location granularity enums. |
| Union field `location_input`. The location to geocode. `location_input` can be only one of the following: ||
| `location_query` | `string` The location in the format of "lat,lng" string. For example, "64.7611872,-18.4705364". |
| `location` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LatLng` The location in the structured format. |

## GeocodeLocationResponse

Response message for `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeService.GeocodeLocation`.

| Fields ||
|---|---|
| `results[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeResult` The geocoding result. |
| `plus_code` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlusCode` Plus code of the location in the request. |

## GeocodePlaceRequest

Request message for GeocodeService.GeocodePlace.

| Fields ||
|---|---|
| `place` | `string` Required. Place identifier to geocode in the format of places/{place}. |
| `language_code` | `string` Optional. Language in which the results should be returned. |
| `region_code` | `string` Optional. Region code. The region code, specified as a ccTLD ("top-level domain") two-character value. The parameter affects results based on applicable law. |

## GeocodeResult

A geocode result contains geographic information about a place.

| Fields ||
|---|---|
| `place` | `string` This Place's resource name, in `places/{placeId}` format. Can be used to look up the Place. |
| `place_id` | `string` The unique identifier of a place. |
| `location` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LatLng` The latlng of this address. |
| `granularity` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeResult.Granularity` The granularity of the location. |
| `viewport` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.geo.type#google.geo.type.Viewport` A viewport suitable for displaying the geocode result. |
| `bounds` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.geo.type#google.geo.type.Viewport` A bounding box for the address. |
| `formatted_address` | `string` The one line formatted address. |
| `postal_address` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.PostalAddress` The address in postal address format. |
| `address_components[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.GeocodeResult.AddressComponent` Repeated components for each locality level. |
| `postal_code_localities[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LocalizedText` Complete list of localities contained in the postal code. This is only populated when the result is of type "postal_code". |
| `types[]` | `string` A set of type tags for this result. For example, "political" and "administrative_area". For the complete list of possible values, see Table A and Table B at <https://developers.google.com/maps/documentation/places/web-service/place-types>. |
| `plus_code` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlusCode` Plus code of the location in this geocode. |

## AddressComponent

The structured components that form the formatted address, if this information is available.

| Fields ||
|---|---|
| `long_text` | `string` The full text description or name of the address component. For example, an address component for the country Australia may have a long name of "Australia". |
| `short_text` | `string` An abbreviated textual name for the address component, if available. For example, an address component for the country of Australia may have a short name of "AU". |
| `types[]` | `string` An array indicating the type(s) of the address component. These values are drawn from the Address types and address component types table used by the Places API: <https://developers.google.com/maps/documentation/places/web-service/place-types#address-types> |
| `language_code` | `string` The language used to format this component, in CLDR notation. |

## Granularity

The granularity of the location.

| Enums ||
|---|---|
| `GRANULARITY_UNSPECIFIED` | Do not use. |
| `ROOFTOP` | The non-interpolated location of an actual plot of land corresponding to the matched address. |
| `RANGE_INTERPOLATED` | Interpolated from a range of street numbers. For example, if we know that a segment of Amphitheatre Pkwy contains numbers 1600 - 1699, then 1650 might be placed halfway between its endpoints. |
| `GEOMETRIC_CENTER` | The geometric center of a feature for which we have polygonal data. |
| `APPROXIMATE` | Everything else. |

## Landmark

Landmarks are used to communicate where the destination is or help with arriving at the destination.

| Fields ||
|---|---|
| `relational_description` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LocalizedText` A human-readable description of how the destination relates to the landmark. For example: "Near the Empire State Building" or "Across from the White House". |
| `tags[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.Landmark.Tag` Tags that describe how the landmark can be used in the context of the destination. |
| `straight_line_distance_meters` | `double` Output only. The straight-line distance from this landmark to the destination in meters. |
| `travel_distance_meters` | `double` Output only. The walking distance from this landmark to the destination in meters. |
| Union field `landmark`. The landmark. `landmark` can be only one of the following: ||
| `place` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlaceView` The place that represents this landmark. |

## Tag

The list of all possible tags that describe how a landmark can be used in the context of a destination.

If an address has both the `ADDRESS` and `ARRIVAL` tags, it means the landmark is both locally prominent and close to the destination.

| Enums ||
|---|---|
| `TAG_UNSPECIFIED` | Not used. |
| `ADDRESS` | A locally prominent place that can be used to identify the general location of the destination. Typically within a few hundred meters of the destination. These are similar to the landmarks returned by the Address Descriptors feature of the Geocoding API: <https://developers.google.com/maps/documentation/geocoding/address-descriptors/requests-address-descriptors>. |
| `ARRIVAL` | A place that can be used to help arrive at the destination. Useful for navigation once you are close to the destination. For example, this landmark might be a place that is across the street from the destination. A landmark with this tag is typically closer to the destination than landmarks with the `ADDRESS` tag. |

## NavigationPoint

A navigation point is a location next to a road where navigation can end.

| Fields ||
|---|---|
| `navigation_point_token` | `string` Output only. A token that can be used to identify this navigation point. |
| `display_name` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LocalizedText` The display name of this navigation point. For example, "5th Ave" or "Gate B". |
| `location` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LatLng` A point next to the road segment where navigation should end. The point is intentionally slightly offset from the road's centerline to clearly mark the side of the road where the place is located. |
| `travel_modes[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.NavigationPoint.TravelMode` Travel modes that are appropriate for this navigation point. |
| `usages[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.NavigationPoint.Usage` Lists `usages` supported by this navigation point. If empty, it does not necessarily mean its usage is restricted in any way. All navigation points can be used for general navigation. |

## TravelMode

Travel modes that are appropriate for this navigation point.

| Enums ||
|---|---|
| `TRAVEL_MODE_UNSPECIFIED` | Not used. |
| `DRIVE` | Suitable for driving. |
| `WALK` | Suitable for walking. |

## Usage

Usages supported by this navigation point. New values may be added in the future.

| Enums ||
|---|---|
| `USAGE_UNSPECIFIED` | Not used. |
| `UNKNOWN` | Indicates that the usage type is unknown. |
| `DROPOFF` | Suitable for dropping off a passenger. For example, a rideshare drop off location. |
| `PICKUP` | Suitable for picking up a passenger. For example, a rideshare pick up location. |
| `PARKING` | Suitable for parking. For example, within a parking lot. |

## PlaceView

Represents a view of a [Place](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places#resource:-place) in the Places API. It also provides additional information specific to destinations, such as the structure type and the display polygon.

In some cases, a `PlaceView` with the same place ID might differ from what is being returned by the Places API for the `types` and `display_name` fields.

| Fields ||
|---|---|
| `place` | `string` This Place's resource name, in `places/{placeId}` format. Can be used to look up the Place. |
| `place_id` | `string` The unique identifier of a place. |
| `display_name` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LocalizedText` Human readable place description. For example, "Gate B", "McDonalds" |
| `primary_type` | `string` The primary place type of this place. See <https://developers.google.com/maps/documentation/places/web-service/place-types> for the list of possible values. Note: This field is not always populated. Be prepared to use the `types` field in such situations. |
| `types[]` | `string` All associated place types of this place. See <https://developers.google.com/maps/documentation/places/web-service/place-types> for the list of possible values. |
| `formatted_address` | `string` One line address. |
| `postal_address` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.PostalAddress` Structured address. |
| `structure_type` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlaceView.StructureType` The type of structure corresponding to this place. |
| `location` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LatLng` The location of this place. For places with display polygons, this can represent a good spot to put a marker on the map. |
| `display_polygon` | `https://protobuf.dev/reference/protobuf/google.protobuf#struct` The polygon outline of the place in GeoJSON format, using the RFC 7946 format: <https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.6>. Note: The RFC 7946 format supports MultiPolygons, so one `display_polygon` object can represent multiple polygons. |
| `address_components[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlaceView.AddressComponent` Repeated components for each locality level. |

## AddressComponent

The structured components that form the formatted address, if this information is available.

| Fields ||
|---|---|
| `long_text` | `string` The full text description or name of the address component. For example, an address component for the country Australia may have a long name of "Australia". |
| `short_text` | `string` An abbreviated textual name for the address component, if available. For example, an address component for the country of Australia may have a short name of "AU". |
| `types[]` | `string` An array indicating the type(s) of the address component. These values are drawn from the Address types and address component types table used by the Places API: <https://developers.google.com/maps/documentation/places/web-service/place-types#address-types> |
| `language_code` | `string` The language used to format this component, in CLDR notation. |

## StructureType

The type of structure that this place represents.

| Enums ||
|---|---|
| `STRUCTURE_TYPE_UNSPECIFIED` | Not used. |
| `POINT` | A point location. |
| `SECTION` | A sub-section of a building. |
| `BUILDING` | A building. |
| `GROUNDS` | A large area that typically contains multiple buildings, such as a university campus, an apartment complex, or a shopping mall. |

## PlusCode

Plus code (<http://plus.codes>) is a location reference with two formats: global code defining a 14mx14m (1/8000th of a degree) or smaller rectangle, and compound code, replacing the prefix with a reference location.

| Fields ||
|---|---|
| `global_code` | `string` Place's global (full) code, such as "9FWM33GV+HQ", representing an 1/8000 by 1/8000 degree area (\~14 by 14 meters). |
| `compound_code` | `string` Place's compound code, such as "33GV+HQ, Ramberg, Norway", containing the suffix of the global code and replacing the prefix with a formatted name of a reference entity. |

## SearchDestinationsRequest

Request message for DestinationService.SearchDestinations.

| Fields ||
|---|---|
| `travel_modes[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.NavigationPoint.TravelMode` Optional. The travel modes to filter navigation points for. This influences the `navigation_points` field returned in the response. If empty, navigation points of all travel modes are returned. |
| `language_code` | `string` Optional. Language in which the results should be returned. |
| `region_code` | `string` Optional. Region code. The region code, specified as a ccTLD ("top-level domain") two-character value. The parameter affects results based on applicable law. This parameter also influences, but not fully restricts, results from the service. |
| Union field `primary_query`. Query for the primary destination. This can be either a place, a fully specified address, or a LatLng location. Some places and addresses with minimal information won't be able to be turned into a destination. The destinations are built around the specified primary query. Note: only places and addresses that can have a navigational destination are supported. For example, a place that represents a house or an apartment complex can be used as the primary query, but places that represent a locality or an administrative area cannot be used as the primary query. `primary_query` can be only one of the following: ||
| `place` | `string` The resource name of a place, in `places/{place_id}` format. |
| `address_query` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsRequest.AddressQuery` A street address. |
| `location_query` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsRequest.LocationQuery` A precise location. |

## AddressQuery

The street address that you want to search for. Specify addresses in accordance with the format used by the national postal service of the country concerned.

| Fields ||
|---|---|
| Union field `kind`. The address query. `kind` can be only one of the following: ||
| `address` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.PostalAddress` A street address in postal address format. |
| `address_query` | `string` A street address formatted as a single line. |

## LocationQuery

A location query to identify a nearby primary destination.

Note: if the location query is within a building that contains subpremises, it is possible that the returned primary place is a subpremise. In these cases, the `containing_places` field will include the building.

| Fields ||
|---|---|
| `place_filter` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsRequest.LocationQuery.PlaceFilter` Optional. Filters to apply to destination candidates. |
| Union field `kind`. The location query. `kind` can be only one of the following: ||
| `location` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.type#google.type.LatLng` A precise LatLng location. |

## PlaceFilter

Filters to apply to destination candidates.

| Fields ||
|---|---|
| `structure_type` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.PlaceView.StructureType` Optional. If specified, all destinations are guaranteed to have a primary place with this structure type. This can result in filtering out some destinations, or in coarsening/refining the returned destinations. For example, if `GROUNDS` is specified, all returned destinations will have a primary place with the `GROUNDS` structure type. This can result in filtering out some destinations that are not part of a grounds, or in coarsening the returned destinations to the grounds level. Another use of this field is to more easily extract building display polygons. For example, if `BUILDING` is specified, the primary place's display polygon will be for the building at the specified location. |
| `addressability` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.SearchDestinationsRequest.LocationQuery.PlaceFilter.Addressability` Optional. If specified, only returns destinations that meet the corresponding addressability criteria. |

## Addressability

Defines options for addressability filtering. New values may be added in the future.

| Enums ||
|---|---|
| `ADDRESSABILITY_UNSPECIFIED` | When unspecified, the service will choose a sensible default. |
| `ANY` | Addressability is not a filtering criteria. Destinations are returned regardless of their addressability. |
| `PRIMARY` | All destinations returned will have a primary place with a street level address or name. |
| `WEAK` | All destinations returned will have either a primary place or a subdestination with a street level address or name. |

## SearchDestinationsResponse

Response message for DestinationService.SearchDestinations.

| Fields ||
|---|---|
| `destinations[]` | `https://developers.google.com/maps/documentation/geocoding/reference/rpc/google.maps.geocode.v4#google.maps.geocode.v4.Destination` A list of destinations. The service returns one result if a primary destination can be unambiguously identified from the primary query. Otherwise, the service might return multiple results for disambiguation or zero results. |