...
Maven users will need to add the following dependency to their pom.xml
for this component:
Code Block | ||||
---|---|---|---|---|
| ||||
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-geocoder</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
|
URI format
Code Block |
---|
geocoder:address:name[?options]
geocoder:latlng:latitude,longitude[?options]
|
...
Div | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
|
You can append query options to the URI in the following format, ?option=value&option=value&...
Proxy
The following proxy options can also be set on the GeoCoderEndpoint
Div | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
Exchange data format
Camel will deliver the body as a com.google.code.geocoder.model.GeocodeResponse
type.
And if the address is "current"
then the response is a String type with a JSON representation of the current location.
...
In the example below we get the latitude and longitude for Paris, France
Code Block |
---|
from("direct:start")
.to("geocoder:address:Paris, France")
|
If you provide a header with the CamelGeoCoderAddress
then that overrides the endpoint configuration, so to get the location of Copenhagen, Denmark we can send a message with a headers as shown:
Code Block |
---|
template.sendBodyAndHeader("direct:start", "Hello", GeoCoderConstants.ADDRESS, "Copenhagen, Denmark");
|
To get the address for a latitude and longitude we can do:
Code Block |
---|
from("direct:start")
.to("geocoder:latlng:40.714224,-73.961452")
.log("Location ${header.CamelGeocoderAddress} is at lat/lng: ${header.CamelGeocoderLatlng} and in country ${header.CamelGeoCoderCountryShort}")
|
Which will log
Code Block |
---|
Location 285 Bedford Avenue, Brooklyn, NY 11211, USA is at lat/lng: 40.71412890,-73.96140740 and in country US
|
To get the current location you can use "current" as the address as shown:
Code Block |
---|
from("direct:start")
.to("geocoder:address:current")
|