Google Maps / Routes API¶
Address geocoding¶
integration:
name: "GoogleMapsGeocoding"
type: "api"
endpoint: "https://maps.googleapis.com/maps/api/geocode/json"
authentication:
apiKey: "{env:GOOGLE_MAPS_KEY}"
trigger:
entity: "Location"
event: "afterSave"
condition:
fieldChanged: "address"
request:
method: "GET"
params:
address: "{street}, {city}, {postalCode}, {country}"
response:
mapping:
"geoLocation.latitude": "results[0].geometry.location.lat"
"geoLocation.longitude": "results[0].geometry.location.lng"
Route calculation¶
integration:
name: "GoogleRoutesCalculation"
type: "api"
endpoint: "https://routes.googleapis.com/directions/v2:computeRoutes"
request:
method: "POST"
headers:
"X-Goog-Api-Key": "{env:GOOGLE_MAPS_KEY}"
"X-Goog-FieldMask": "routes.duration,routes.distanceMeters"
body:
origin:
address: "{startLocation.address}"
destination:
address: "{endLocation.address}"
travelMode: "DRIVE"
routingPreference: "TRAFFIC_AWARE"
response:
mapping:
"distanceKm": "routes[0].distanceMeters / 1000"
"durationMinutes": "routes[0].duration.replace('s', '') / 60"
➡️ Continue to Product feeds.