Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Geocoder

...

Component

...

Available

...

as

...

of

...

Camel

...

2.12

...

The

...

geocoder:

...

component

...

is

...

used

...

for

...

looking

...

up

...

geocodes

...

(latitude

...

and

...

longitude)

...

for

...

a

...

given

...

address,

...

or

...

reverse

...

lookup.

...

The

...

component

...

uses

...

the

...

Java

...

API

...

for

...

Google

...

Geocoder

...

library.

...

Maven

...

users

...

will

...

need

...

to

...

add

...

the

...

following

...

dependency

...

to

...

their

...

pom.xml

...

for

...

this

...

component:

Code Block
xml
xml

{code: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>
{code}

h3. URI format

{code}

URI format

Code Block
geocoder:address:name[?options]
geocoder:latlng:latitude,longitude[?options]

Options

Wiki Markup
{code}

h3. Options

{div:class=confluenceTableSmall}
|| 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 |
{div}

You

...

can

...

append

...

query

...

options

...

to

...

the

...

URI

...

in

...

the

...

following

...

format,

...

?option=value&option=value&...

...

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.

...

If

...

the

...

option

...

headersOnly

...

is

...

set

...

to

...

true

...

then

...

the

...

message

...

body

...

is

...

left

...

as-is,

...

and

...

only

...

headers

...

will

...

be

...

added

...

to

...

the

...

Exchange

...

.

...

Message Headers

Wiki Markup
 Headers
{div:class=confluenceTableSmall}
|| Header || Description ||
| {{CamelGeoCoderStatus}} | Mandatory. Status code from the geocoder library. If status is {{GeocoderStatus.OK}} then additional headers is enriched |
| {{CamelGeoCoderAddress}} | The formatted address |
| {{CamelGeoCoderLat}} | The latitude of the location. |
| {{CamelGeoCoderLng}} | The longitude of the location. |
| {{CamelGeoCoderLatlng}} | The latitude and longitude of the location. Separated by comma. |
| {{CamelGeoCoderCity}} | The city long name. |
| {{CamelGeoCoderRegionCode}} | The region code. |
| {{CamelGeoCoderRegionName}} | The region name. |
| {{CamelGeoCoderCountryLong}} | The country long name. |
| {{CamelGeoCoderCountryShort}} | The country short name. |
{div}

Notice

...

not

...

all

...

headers

...

may

...

be

...

provided

...

depending

...

on

...

available

...

data

...

and

...

mode

...

in

...

use

...

(address

...

vs

...

latlng).

Samples

In the example below we get the latitude and longitude for Paris, France

Code Block


h3. Samples

In the example below we get the latitude and longitude for Paris, France
{code}
  from("direct:start")
    .to("geocoder:address:Paris, France")
{code}

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");
{code}

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}")
{code}

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
{code}

To

...

get

...

the

...

current

...

location

...

you

...

can

...

use

...

"current"

...

as

...

the

...

address

...

as

...

shown:

{
Code Block
}
  from("direct:start")
    .to("geocoder:address:current")
{code}