This library is an interface to Google's geocoding service
https://developers.google.com/maps/documentation/geocoding/intro
It provides a pipline friendly, builder-like API, and ADTs that map as closely as possible to the Google API
You can start building a request one of two ways:
Geocoding.requestForAddress apiKey "77 Battery St."
Geocoding.requestForComponents
[
("Spain", Geocoding.CountryComponent)
]or for reverse geocoding: Geocoding.reverseRequestForLatLng apiKey ( 37.8489277, -122.4031502 ) Geocoding.reverseRequestForPlaceId apiKey "ChIJrTLr-GyuEmsRBfy61i59si0"
Once you've built your request, calling send will return a Http.Request, which you perform to generate your own msg types
mapping of Google API response statuses https://developers.google.com/maps/documentation/geocoding/intro#StatusCodes
a bounding box https://developers.google.com/maps/documentation/geocoding/intro#Viewports
alias for a Google API key
components for request filtering https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering
additional data about a location https://developers.google.com/maps/documentation/geocoding/intro#Result
address component types https://developers.google.com/maps/documentation/geocoding/intro#Types
response status and a list of results (list will be empty if status is other than OK) https://developers.google.com/maps/documentation/geocoding/intro#GeocodingResponses
Build a request for an address
Geocoding.requestForAddress apiKey "77 Battery St"Build a request for a list of component filters
Geocoding.requestForComponents apiKey
[
("Spain", Geocoding.CountryComponent)
, ("Toledo", Geocoding.AdministrativeAreaComponent)
]set the address to a request. If called more than once, the later call overwrites the earlier
Geocoding.requestForComponents apiKey
[
("Spain", Geocoding.CountryComponent)
, ("Toledo", Geocoding.AdministrativeAreaComponent)
]
|> Geocoding.withAddress "Toledo"add a component filter to a request (can be called more than once for a request)
Geocoding.requestForAddress apiKey "Toledo"
|> Geocoding.withComponent ("Spain", Geocoding.CountryComponent)Specify the language for the request
Geocoding.requestForAddress apiKey "77 Battery St"
|> Geocoding.withLanguage("FR")specify region biasing for request
Geocoding.requestForAddress apiKey "Toledo"
|> Geocoding.withRegion "ES"Specify a viewport bias for the request
Geocoding.requestForAddress apiKey "Belmont"
|> Geocoding.withBounds (41, -74) (42, -70)Build a reverse geocoding request for an location
Geocoding.reverseRequestForLatLng apiKey (37.8489277,-122.4031502)Build a reverse geocoding request for Google place_id
Geocoding.reverseRequestForLatLng apiKey "ChIJrTLr-GyuEmsRBfy61i59si0"Set the language for the request
Geocoding.reverseRequestForLatLng apiKey "ChIJrTLr-GyuEmsRBfy61i59si0"
|> Geocoding.reverseWithLanguage("FR")Set the result type(s) for the request
Geocoding.reverseRequestForLatLng apiKey (37.8489277,-122.4031502)
|> Geocoding.withResultTypes [Country, PostalCode]Set the location type filters for the request
Geocoding.reverseRequestForLatLng apiKey (37.8489277,-122.4031502)
|> Geocoding.withLocationTypes [Approximate]transform a GeocodingRequest into a Cmd
Geocoding.requestForAddress apiKey "77 Battery St"
|> Geocoding.send MyGeocoderResulttransform a reverse geocoding request into a Cmd
Geocoding.requestForLatLng apiKey (37.8489277,-122.4031502)
|> Geocoding.sendReverseRequest MyReverseGeocoderResultfor inspecting the request URL for testing purposes
for inspecting the request URL for testing purposes
an individual result https://developers.google.com/maps/documentation/geocoding/intro#Results