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 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]