Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Maven users will need to add the following dependency to their pom.xml for this component:

Code Block
xml
xml

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

Property

Default

Description

language

en

The language to use.

headersOnly

false

Whether to only enrich the Exchange with headers, and leave the body as-is.

clientId

 

To use google premium with this client id

clientKey

 

To use google premium with this client key

httpClientConfigurer

null

Camel 2.17: Reference to a org.apache.camel.component.geocoder.http.HttpClientConfigurer in the Registry.

clientConnectionManager

null

Camel 2.17: To use a custom org.apache.http.conn.ClientConnectionManager

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
classconfluenceTableSmall

Property

Default

Description

proxyHost

null

Camel 2.17: The proxy host name

proxyPort

null

Camel 2.17: The proxy port number

proxyAuthMethod

null

Camel 2.17: Authentication method for proxy, either as BasicDigest or NTLM.

proxyAuthUsername

null

Camel 2.17: Username for proxy authentication

proxyAuthPassword

null

Camel 2.17: Password for proxy authentication

proxyAuthDomain

null

Camel 2.17: Domain for proxy NTML authentication

proxyAuthHost

null

Camel 2.17: Optional host for proxy NTML authentication

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")