GoogleGeocodingAPIWrapper#

class langchain_google_community.geocoding.GoogleGeocodingAPIWrapper[source]#

Bases: BaseModel

Wrapper for Google Maps Geocoding API.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param google_api_key: SecretStr [Required]#
param include_address_components: bool = True#
param include_bounds: bool = True#
param include_metadata: bool = True#
param include_navigation: bool = True#
param language: str | None = 'en'#
param max_retries: int = 2#
param region: str | None = 'us'#
param timeout: int = 30#
batch_geocode(locations: List[str], language: str | None = None, region: str | None = None, components: Dict[str, str] | None = None) Dict[str, Any][source]#

Process multiple locations in a single structured request.

Efficiently handles multiple location queries, processing them as a batch while maintaining individual result integrity.

Parameters:
  • locations (List[str]) – List of location strings to geocode Examples: [“Eiffel Tower”, “Times Square”, “東京スカイツリー”]

  • language (str | None) – Optional language code for results

  • region (str | None) – Optional region bias

  • components (Dict[str, str] | None) – Optional filters (e.g., {“country”: “US”})

Returns:

status: Overall batch status total_results: Number of successful geocoding results results: List of location data (same structure as single results) errors: List of any errors encountered:

query: The location query that failed status: Error status code message: Detailed error message

query_info: {

total_queries: Total locations processed successful: Number of successful queries failed: Number of failed queries language: Language used region: Region bias used

}

Return type:

Dict containing

Example

batch_geocode(

locations=[“Eiffel Tower”, “Big Ben”], language=”en”, components={“country”: “FR”}

)

clean_results(results: List[Dict]) List[Dict][source]#

Clean and format results.

Parameters:

results (List[Dict])

Return type:

List[Dict]

async geocode_async(query: str, language: str | None = None, region: str | None = None) Dict[str, Any][source]#

Run query through Google Maps Geocoding API asynchronously.

Parameters:
  • query (str) – The location(s) to geocode

  • language (str | None) – Optional language code for results

  • region (str | None) – Optional region bias

Returns:

status: Status of the request results: List of geocoding results query_info: Metadata about the request

Return type:

Dict containing

raw_results(query: str, language: str | None = None, region: str | None = None, components: Dict[str, str] | None = None) Dict[source]#

Get raw results with improved error handling.

Parameters:
  • query (str)

  • language (str | None)

  • region (str | None)

  • components (Dict[str, str] | None)

Return type:

Dict

results(query: str, language: str | None = None, region: str | None = None, max_results: int = 10) Dict[str, Any][source]#

Process geocoding request and return comprehensive results.

This method handles both single and batch geocoding requests, returning detailed location information with optional components.

Parameters:
  • query (str) –

    Location(s) to geocode. .. rubric:: Examples

    • ”Eiffel Tower”

    • ”Times Square, Central Park”

  • language (str | None) – Optional language code for results (e.g., “en”, “fr”, “ja”)

  • region (str | None) – Optional region bias (e.g., “us”, “fr”, “jp”)

  • max_results (int) – Maximum number of results to return (default: 10)

Returns:

status: Status of the request (“OK” or error status) total_results: Number of locations found results: List of dictionaries containing location data:

address: {

full: Complete formatted address street_number: Building number (if available) route: Street name locality: City/Town state: State/Province country: Country postal_code: Postal/ZIP code

} geometry: {

location: {lat, lng} coordinates viewport: Recommended viewport bounds: Geographic bounds (if available)

} metadata: {

place_id: Unique Google place identifier types: Categories (e.g., [“establishment”, “point_of_interest”]) location_type:(e.g., “ROOFTOP”, “GEOMETRIC_CENTER”)

} navigation: List of navigation points with:

location: {latitude, longitude} restrictions: Travel mode restrictions

query_info: {

original_query: Input query language: Language used region: Region bias used

}

Return type:

Dict containing

Example Response:
{

“status”: “OK”, “total_results”: 2, “results”: [

{
“address”: {

“full”: “Street, Country..”, “route”: “Avenue Gustave Eiffel”, “locality”: “Paris”, “country”: “France”

}, “geometry”: {

“location”: {“lat”: 48.8584, “lng”: 2.2945}

}

], “query_info”: {

“original_query”: “Eiffel Tower, Big Ben”, “language”: “en”, “region”: “us”

}

}

Raises:
  • ValueError – If query is empty or invalid

  • Exception – For API errors or connection issues

Parameters:
  • query (str)

  • language (str | None)

  • region (str | None)

  • max_results (int)

Return type:

Dict[str, Any]