(fr) Cette page n’est plus maintenue depuis la version 2022 de Geoconcept Web. Pour accéder à la documentation à jour de ce web service, veuillez suivre ce lien.
The query includes a pair of coordinates as input, the service returns one or several possible responses (depending on the maximum number of responses desired), including the address, the post code, the town, the country, and the distance between the result and the start point (coordinates indicated as input).
This reverse geocoding service consults the road network installed previously in the dedicated directory associated to it.
Earlier versions of the web service have been conserved in Geoconcept Web to ensure compatibility with previous developments. We recommend using the most recent version.
Changes in relation to v3
- The "coordinates" parameter has been added to the response
Changes in relation to v2
- The "postalCode" parameter has been renamed "postCode"
- The "distanceToLocation" parameter has been renamed "distanceMetersToLocation"
- The "srs" parameter has been added to the response
Input
parameter | description | optional | default |
---|---|---|---|
srs |
projection (EPSG code such as epsg:4326 or wgs84) |
yes |
|
locations |
Coordinates for the start point for reverse geocoding |
no |
|
graphName |
indicate the name of the network or graph to use so the WebService can operate. |
yes |
|
maxDistance |
maximum search distance to find neighbouring streets at the reverse geocoding start point |
no |
1000 |
maxCandidates |
maximum number of result addresses in the response |
yes |
1 |
maxDistanceBetweenCandidates |
Maximum distance (in metres) between each candidate. |
no |
100 |
Output
Reminder for the coordinates of the start point of the search(reverseGeocodingV2Response)
property | type | min/max | description |
---|---|---|---|
location |
string |
0/1 |
X,Y coordinates for the start point for the reverse geocoding |
srs |
string |
0/1 |
projection (EPSG code such as epsg:4326 or wgs84) |
address/addresses |
0/unlimited |
list of (candidate) addresses returned |
Candidates returned (Address)
property | type | min/max | description |
---|---|---|---|
addressLine |
string |
0/1 |
street found |
postCode |
string |
0/1 |
post code found |
city |
string |
0/1 |
town associated with the candidate returned |
country |
string |
0/1 |
country associated to the candidate returned |
distanceMetersToLocation |
double |
1/1 |
Distance (in metres) between the candidate returned and the start point |
coordinates |
string |
1/1 |
Address coordinates |
WSDL
http://<server>
/<webapp>
/api/ws/reverseGeocodingService?wsdl
Query
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://geoconcept.com/gc/schemas"> <soapenv:Header/> <soapenv:Body> <sch:reverseGeocodingV3> <!--Optional:--> <request> <!--Optional:--> <srs>epsg:4326</srs> <!--Zero or more repetitions:--> <locations> <x>-1.565769</x> <y>47.226236</y> </locations> <!--Optional:--> <graphName></graphName> <!--Optional:--> <maxDistance>1000</maxDistance> <!--Optional:--> <maxCandidates>2</maxCandidates> <!--Optional:--> <maxDistanceBetweenCandidates>100</maxDistanceBetweenCandidates> </request> </sch:reverseGeocodingV2> </soapenv:Body> </soapenv:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:reverseGeocodingV3Response xmlns:ns2="http://geoconcept.com/gc/schemas"> <reverseGeocodingResultsV3> <status>OK</status> <reverseGeocodingResult> <location>-1.565769;47.226236</location> <srs>epsg:4326</srs> <addresses> <address> <addressLine>26 RUE DU MAINE</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>1.2300580212448586</distanceMetersToLocation> <coordinates>-1.565757,47.226229</coordinates> </address> <address> <addressLine>2 RUE JOYAU</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>27.310568595900534</distanceMetersToLocation> <coordinates>-1.566068,47.226099</coordinates> </address> </addresses> </reverseGeocodingResult> </reverseGeocodingResultsV3> </ns2:reverseGeocodingV2Response> </soap:Body> </soap:Envelope>
Query
JSON query
http://<server>/<webapp>/api/lbs/reverseGeocoding/v3.json?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
JSON-P query
http://<server>/<webapp>/api/lbs/reverseGeocoding/v3.json?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100&fonction=myFonction
XML query
http://<server>/<webapp>/api/lbs/reverseGeocoding/v3.xml?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
Response
The response is always in UTF-8 format.
JSON format
{ "message": null, "status": "OK", "reverseGeocodingResults": [ { "location": "-1.565769;47.226236", "srs": null, "addresses": [ { "addressLine": "26 RUE DU MAINE", "postCode": "44000", "city": "NANTES", "country": "France", "distanceMetersToLocation": 1.2300581, "coordinates": "-1.565757,47.226229" }, { "addressLine": "2 RUE JOYAU", "postCode": "44000", "city": "NANTES", "country": "France", "distanceMetersToLocation": 27.310568, "coordinates": "-1.566068,47.226099" } ] } ] }
JSON-P format
myCallback( { "message": null, "status": "OK", "reverseGeocodingResults": [ { "location": "-1.565769;47.226236", "srs": null, "addresses": [ { "addressLine": "26 RUE DU MAINE", "postCode": "44000", "city": "NANTES", "country": "France", "distanceMetersToLocation": 1.2300581, "coordinates": "-1.565757,47.226229" }, { "addressLine": "2 RUE JOYAU", "postCode": "44000", "city": "NANTES", "country": "France", "distanceMetersToLocation": 27.310568, "coordinates": "-1.566068,47.226099" } ] } ] } )
XML format
<reverseGeocodingResultsV3> <status>OK</status> <reverseGeocodingResult> <location>-1.565769;47.226236</location> <addresses> <address> <addressLine>26 RUE DU MAINE</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>1.2300580212448586</distanceMetersToLocation> <coordinates>-1.565757,47.226229</coordinates> </address> <address> <addressLine>2 RUE JOYAU</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>27.310568595900534</distanceMetersToLocation> <coordinates>-1.566068,47.226099</coordinates> </address> </addresses> </reverseGeocodingResult> </reverseGeocodingResultsV3>
Example of a correct reverse geocoding (reverseGeocodingResult/status is OK)
<reverseGeocodingResultsV3> <status>OK</status> <reverseGeocodingResult> <location>-1.565769;47.226236</location> <addresses> <address> <addressLine>26 RUE DU MAINE</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>1.2300580212448586</distanceMetersToLocation> <coordinates>-1.565757,47.226229</coordinates> </address> <address> <addressLine>2 RUE JOYAU</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>27.310568595900534</distanceMetersToLocation> <coordinates>-1.566068,47.226099</coordinates> </address> </addresses> </reverseGeocodingResult> </reverseGeocodingResultsV3>
Case of a reverse geocoding operation where the maxDistance does not respect a value of > 1 (a minimum value of 100 is recommended). (reverseGeocodingResult/status is OK)
<?xml version="1.0" encoding="UTF-8"?> <serviceResult> <message>ServiceException: Error in reverse geocoding computation Error in smartrouting Failed to execute ReverseGeocode com.geoconcept.smartrouting.SmartRoutingNativeException: failed to connect { -1.565769, 47.226236, 0.000000 } failed to connect { -1.565769, 47.226236, 0.000000 }</message> <status>ERROR</status> </serviceResult>
In the case of a query where one of the parameters (<locations>,…) is not set. (reverseGeocodingResult/status is ERROR)
<reverseGeocodingResultsV3> <message>locations must be not null</message> <status>ERROR</status> </reverseGeocodingResultsV3>
Case of a query that does not snap to the graph (reverseGeocodingResult/status is ERROR)
<serviceResult> <message>ServiceException: Error in reverse geocoding computation Error in smartrouting Failed to execute ReverseGeocode com.geoconcept.smartrouting.SmartRoutingNativeException: failed to connect { -1.565769, 147.226236, 0.000000 } failed to connect { -1.565769, 147.226236, 0.000000 } </message> <status>ERROR</status> </serviceResult>
Input
parameter | description | optional | default |
---|---|---|---|
srs |
projection (EPSG code such as epsg:4326 or wgs84) |
yes |
|
locations |
Coordinates for the start point for reverse geocoding |
no |
|
graphName |
indicate the name of the network or graph to use so the WebService can operate. |
yes |
|
maxDistance |
maximum search distance to find neighbouring streets at the reverse geocoding start point |
no |
1000 |
maxCandidates |
maximum number of result addresses in the response |
yes |
1 |
maxDistanceBetweenCandidates |
Maximum distance (in metres) between each candidate. |
no |
100 |
Output
Reminder for the coordinates of the start point of the search(reverseGeocodingV2Response)
property | type | min/max | description |
---|---|---|---|
location |
string |
0/1 |
X,Y coordinates for the start point for the reverse geocoding |
srs |
string |
0/1 |
projection (EPSG code such as epsg:4326 or wgs84) |
address/addresses |
0/unlimited |
list of (candidate) addresses returned |
Candidates returned (Address)
property | type | min/max | description |
---|---|---|---|
addressLine |
string |
0/1 |
street found |
postCode |
string |
0/1 |
post code found |
city |
string |
0/1 |
town associated with the candidate returned |
country |
string |
0/1 |
country associated to the candidate returned |
distanceMetersToLocation |
double |
1/1 |
Distance (in metres) between the candidate returned and the start point |
WSDL
http://<server>
/<webapp>
/api/ws/reverseGeocodingService?wsdl
Query
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://geoconcept.com/gc/schemas"> <soapenv:Header/> <soapenv:Body> <sch:reverseGeocodingV2> <!--Optional:--> <request> <!--Optional:--> <srs>epsg:4326</srs> <!--Zero or more repetitions:--> <locations> <x>-1.565769</x> <y>47.226236</y> </locations> <!--Optional:--> <graphName></graphName> <!--Optional:--> <maxDistance>1000</maxDistance> <!--Optional:--> <maxCandidates>2</maxCandidates> <!--Optional:--> <maxDistanceBetweenCandidates>100</maxDistanceBetweenCandidates> </request> </sch:reverseGeocodingV2> </soapenv:Body> </soapenv:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:reverseGeocodingV2Response xmlns:ns2="http://geoconcept.com/gc/schemas"> <ReverseGeocodingResults> <status>OK</status> <reverseGeocodingResult> <location>-1,565769;47,226236</location> <srs>epsg:4326</srs> <addresses> <address> <addressLine>24 RUE DU MAINE</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>1.2509365114145279</distanceMetersToLocation> </address> <address> <addressLine>2 RUE JOYAU</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>27.312077690953934</distanceMetersToLocation> </address> </addresses> </reverseGeocodingResult> </ReverseGeocodingResults> </ns2:reverseGeocodingV2Response> </soap:Body> </soap:Envelope>
Query
JSON query
http://<server>/<webapp>/api/lbs/reverseGeocoding/v2.json?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
JSON-P query
http://<server>/<webapp>/api/lbs/reverseGeocoding/v2.json?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100&fonction=myFonction
XML query
http://<server>/<webapp>/api/lbs/reverseGeocoding/v2.xml?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
Response
The response is always in UTF-8 format.
JSON format
{ "message": null, "status": "OK", "reverseGeocodingResults": [ { "location": "-1.565769;47.226236", "addresses": [ { "addressLine": "26 RUE DU MAINE", "postalCode": "44000", "city": "NANTES", "country": "France", "distanceToLocation": 1.2370980024960025 }, { "addressLine": "2 RUE JOYAU", "postalCode": "44000", "city": "NANTES", "country": "France", "distanceToLocation": 27.302664051548852 } ] } ] }
JSON-P format
myCallback( { "message": null, "status": "OK", "reverseGeocodingResults": [ { "location": "-1.565769;47.226236", "addresses": [ { "addressLine": "26 RUE DU MAINE", "postalCode": "44000", "city": "NANTES", "country": "France", "distanceToLocation": 1.2370980024960025 }, { "addressLine": "2 RUE JOYAU", "postalCode": "44000", "city": "NANTES", "country": "France", "distanceToLocation": 27.302664051548852 } ] } ] } )
XML format
<reverseGeocodingResultsV2> <status>OK</status> <reverseGeocodingResult> <location>-1.565769;47.226236</location> <srs>epsg:4326</srs> <addresses> <address> <addressLine>26 RUE DU MAINE</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>1.2370980024960025</distanceMetersToLocation> </address> <address> <addressLine>2 RUE JOYAU</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>27.302664051548852</distanceMetersToLocation> </address> </addresses> </reverseGeocodingResult> </reverseGeocodingResultsV2>
Example of a correct reverse geocoding (reverseGeocodingResult/status is OK)
<reverseGeocodingResultsV2> <status>OK</status> <reverseGeocodingResult> <location>-1.565769;47.226236</location> <srs>epsg:4326</srs> <addresses> <address> <addressLine>26 RUE DU MAINE</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>1.2370980024960025</distanceMetersToLocation> </address> <address> <addressLine>2 RUE JOYAU</addressLine> <postCode>44000</postCode> <city>NANTES</city> <country>France</country> <distanceMetersToLocation>27.302664051548852</distanceMetersToLocation> </address> </addresses> </reverseGeocodingResult> </reverseGeocodingResultsV2>
Case of a reverse geocoding operation where the maxDistance does not respect a value of > 1 (a minimum value of 100 is recommended). (reverseGeocodingResult/status is OK)
<?xml version="1.0" encoding="UTF-8"?> <serviceResult> <message>ServiceException: Error in reverse geocoding computation Error in smartrouting Failed to execute ReverseGeocode com.geoconcept.smartrouting.SmartRoutingNativeException: failed to connect { -1.565769, 47.226236, 0.000000 } failed to connect { -1.565769, 47.226236, 0.000000 }</message> <status>ERROR</status> </serviceResult>
In the case of a query where one of the parameters (<locations>,…) is not set. (reverseGeocodingResult/status is ERROR)
<reverseGeocodingResultsV2> <message>locations must be not null</message> <status>ERROR</status> </reverseGeocodingResultsV2>
Case of a query that does not snap to the graph from version 2.0.9 of SmartRouting Server (reverseGeocodingResult/status is ERROR)
<serviceResult> <message>ServiceException: Error in reverse geocoding computation Error in smartrouting Failed to execute ReverseGeocode com.geoconcept.smartrouting.SmartRoutingNativeException: failed to connect { -1.565769, 147.226236, 0.000000 } failed to connect { -1.565769, 147.226236, 0.000000 } </message> <status>ERROR</status> </serviceResult>
Input
parameter | description | optional | default |
---|---|---|---|
srs |
projection (EPSG code such as epsg:4326 or wgs84) |
yes |
|
locations |
Coordinates for the start point for reverse geocoding |
no |
|
graphName |
indicate the name of the network or graph to use so the WebService can operate. |
yes |
|
maxDistance |
maximum search distance to find neighbouring streets at the reverse geocoding start point |
no |
|
maxCandidates |
maximum number of result addresses in the response |
yes |
|
maxDistanceBetweenCandidates |
Maximum distance (in metres) between each candidate. |
no |
Output
Reminder for the coordinates of the start point of the search (location)
property | type | min/max | description |
---|---|---|---|
location |
string |
0/1 |
X,Y coordinates for the start point for the reverse geocoding |
address/addresses |
0/unlimited |
list of (candidate) addresses returned |
Candidates returned (Address)
property | type | min/max | description |
---|---|---|---|
addressLine |
string |
0/1 |
street found |
postalCode |
string |
0/1 |
post code found |
city |
string |
0/1 |
town associated with the candidate returned |
country |
string |
0/1 |
country associated to the candidate returned |
distanceToLocation |
integer |
1/1 |
Distance (in metres) between the candidate returned and the start point |
WSDL
http://<server>
/<webapp>
/api/ws/reverseGeocodingService?wsdl
Query
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://geoconcept.com/gc/schemas"> <soapenv:Header/> <soapenv:Body> <sch:reverseGeocoding> <!--Optional:--> <request> <!--Optional:--> <srs></srs> <!--Zero or more repetitions:--> <locations> <x>2.324382</x> <y>48.803305</y> </locations> <!--Optional:--> <graphName></graphName> <!--Optional:--> <maxDistance>1000</maxDistance> <!--Optional:--> <maxCandidates>10</maxCandidates> <!--Optional:--> <maxDistanceBetweenCandidates>100</maxDistanceBetweenCandidates> </request> </sch:reverseGeocoding> </soapenv:Body> </soapenv:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:reverseGeocodingResponse xmlns:ns2="http://geoconcept.com/gc/schemas"> <ReverseGeocodingResults> <status>OK</status> <reverseGeocodingResult> <location>2.324382;48.803305</location> <addresses> <address> <addressLine>AVENUE ARISTIDE BRIAND</addressLine> <postalCode>92220</postalCode> <city>BAGNEUX</city> <country>FRANCE</country> <distanceToLocation>18.661267300047538</distanceToLocation> </address> <address> <addressLine>RUE DU MIDI</addressLine> <postalCode>94110</postalCode> <city>ARCUEIL</city> <country>FRANCE</country> <distanceToLocation>29.691380904228758</distanceToLocation> </address> </addresses> </reverseGeocodingResult> </ReverseGeocodingResults> </ns2:reverseGeocodingResponse> </soap:Body> </soap:Envelope>
Query
JSON query
http://<server>/<webapp>/api/lbs/reverseGeocoding.json?locations=2.324382,48.803305&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
JSON-P query
http://<server>/<webapp>/api/lbs/reverseGeocoding.json?locations=2.324382,48.803305&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100&fonction=myFonction
XML query
http://<server>/<webapp>/api/lbs/reverseGeocoding.xml?locations=2.324382,48.803305&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
Response
The response is always in UTF-8 format.
JSON format
{ "message": null, "status": "OK", "reverseGeocodingResults": [ { "location": "2.324382;48.803305", "addresses": [ { "addressLine": "AVENUE ARISTIDE BRIAND", "postalCode": "92220", "city": "BAGNEUX", "country": "FRANCE", "distanceToLocation": 18.661267300047538 }, { "addressLine": "RUE DU MIDI", "postalCode": "94110", "city": "ARCUEIL", "country": "FRANCE", "distanceToLocation": 29.691380904228758 } ] }] }
JSON-P format
myCallback({ "message":null,"status":"OK", "reverseGeocodingResults":[ { "location":"2.324382;48.803305", "addresses":[ { "addressLine":"AVENUE ARISTIDE BRIAND", "postalCode":"92220", "city":"BAGNEUX", "country":"FRANCE", "distanceToLocation":18.661267300047538 }, { "addressLine":"RUE DU MIDI", "postalCode":"94110", "city":"ARCUEIL", "country":"FRANCE", "distanceToLocation":29.691380904228758 } ]}]}
XML format
<reverseGeocodingResults> <status>OK</status> <reverseGeocodingResult> <location>2.324382;48.803305</location> <addresses> <address> <addressLine>AVENUE ARISTIDE BRIAND</addressLine> <postalCode>92220</postalCode> <city>BAGNEUX</city> <country>FRANCE</country> <distanceToLocation>18.661267300047538</distanceToLocation> </address> <address> <addressLine>RUE DU MIDI</addressLine> <postalCode>94110</postalCode> <city>ARCUEIL</city> <country>FRANCE</country> <distanceToLocation>29.691380904228758</distanceToLocation> </address> </addresses> </reverseGeocodingResult> </reverseGeocodingResults>
Example of a correct reverse geocoding (reverseGeocodingResult/status is OK)
<reverseGeocodingResults> <status>OK</status> <reverseGeocodingResult> <location>2.324382;48.803305</location> <addresses> <address> <addressLine>AVENUE ARISTIDE BRIAND</addressLine> <postalCode>92220</postalCode> <city>BAGNEUX</city> <country>FRANCE</country> <distanceToLocation>18.661267300047538</distanceToLocation> </address> <address> <addressLine>RUE DU MIDI</addressLine> <postalCode>94110</postalCode> <city>ARCUEIL</city> <country>FRANCE</country> <distanceToLocation>29.691380904228758</distanceToLocation> </address> </addresses> </reverseGeocodingResult> </reverseGeocodingResults>
Case of a reverse geocoding operation where the maxDistanceBetweenCandidates does not respect a value of > 1 (a minimum value of 100 is recommended). (reverseGeocodingResult/status is OK)
<reverseGeocodingResults> <status>OK</status> <reverseGeocodingResult> <location>2.324382;48.803305</location> <addresses> <address> <addressLine>AVENUE ARISTIDE BRIAND</addressLine> <postalCode>92220</postalCode> <city>BAGNEUX</city> <country>FRANCE</country> <distanceToLocation>18.661267300047538</distanceToLocation> </address> </addresses> </reverseGeocodingResult> </reverseGeocodingResults>
Case of a reverse geocoding operation where the maxDistance does not respect a value of > 1 (a minimum value of 100 is recommended). (reverseGeocodingResult/status is OK)
<reverseGeocodingResults> <status>OK</status> <reverseGeocodingResult> <location>2.324382;48.803305</location> <addresses/> </reverseGeocodingResult> </reverseGeocodingResults>
Case of a query where the <location> parameter is not indicated. (reverseGeocodingResult/status is ERROR)
<reverseGeocodingResults> <message>locations must be not null</message> <status>ERROR</status> </reverseGeocodingResults>
Case of a query that does not snap to the graph from version 2.0.9 of SmartRouting Server (serviceResult/status is ERROR)
<serviceResult> <message>ServiceException: Error in reverse geocoding computation Error in smartrouting Failed to execute ReverseGeocode com.geoconcept.smartrouting.SmartRoutingNativeException: failed to connect { 2.165931, 49.218690, 0.000000 } failed to connect { 2.165931, 49.218690, 0.000000 } </message> <status>ERROR</status> </serviceResult>
- 1. How is the maximum distance interpreted?
- 2. What is the role of the maxCandidates parameter?
- 3. What is the significance of the maxDistanceBetweenCandidates parameter?
- 4. Can I use aliases instead of .siti file names to call a datasource?
Editing the first block associated to the first graph
<datasource> <file>navteq_maps_for_geoconcept_Q414_france_v1.siti</file> <name>HEREQ414</name> <load-graph-settings> <full-load>false</full-load> <primary-language>en</primary-language> </load-graph-settings> <calculate-route-options> <vehicle-type/> <!-- a vehicle type name present in the vehicle types catalog --> <vehicle-type-id/> <!-- a vehicle type identifier present in the vehicle types catalog --> <route-search-criteria>time</route-search-criteria> <!-- distance, time, or an integer matching cost table index (graph dependant) --> <max-graph-snap-distance>500</max-graph-snap-distance> <!-- in meters --> <graph-snap-speed>1.11111111</graph-snap-speed> <!-- in m/s --> <route-descr-items/> <!-- composition (separated by comma) --> <reference-level>4</reference-level> <reject-flags/> <!-- composition (separated by comma) --> <speed-profile/> <input-coordinate-system/> <output-coordinate-system/> <use-meta-graph>true</use-meta-graph> <use-graph-accelerator>true</use-graph-accelerator> <fields/> <!-- composition (separated by comma) --> <tour-optimization>auto</tour-optimization> <language/> <!-- default output language --> </calculate-route-options> <calculate-route-settings> <calculate-ecotax>true</calculate-ecotax> <!-- calculate ecotax when available --> </calculate-route-settings> <!-- if a section named 'search-around-options' (same definition as calculate-route-options) is present it defines particular default options for search around --> <!-- if a section named 'calculate-route-matrix-options' (same definition as calculate-route-options) is present it defines particular default options for calculate route matrix --> <!-- if a section named 'calculate-tour-options' (same definition as calculate-route-options) is present it defines particular default options for calculate tour --> <!-- if a section named 'calculate-route-matrix-settings' (same definition as calculate-route-matrix-settings) is present it defines particular settings for calculate route matrix --> <!-- if a section named 'search-around-settings' (same definition as calculate-route-settings) is present it defines particular settings for search around --> <reverse-geocode-options> <max-distance>1000</max-distance> <!-- in meters --> <max-distance-between-candidates>2</max-distance-between-candidates> <!-- in meters --> <max-candidates>10</max-candidates> <input-coordinate-system/> <output-coordinate-system/> <include-street-number>true</include-street-number> <accept-emtpy-segments>true</accept-emtpy-segments> <language/> <places/> </reverse-geocode-options> <!-- reverse geocoding configuration usually depends on each particular graph --> <reverse-geocode-settings> <address-line-field>${built-in-field:name}</address-line-field> <city-name-field>City name</city-name-field> <postal-code-field>Postcode</postal-code-field> <country-field>Country</country-field> <right-suffix> right</right-suffix> <left-suffix> left</left-suffix> <number-begin-left-field>Begin left number</number-begin-left-field> <number-end-left-field>End left number</number-end-left-field> <number-begin-right-field>Begin right number</number-begin-right-field> <number-end-right-field>End right number</number-end-right-field> </reverse-geocode-settings> <calculate-tour-settings> <tour-optimization-auto-threshold>10</tour-optimization-auto-threshold> </calculate-tour-settings> <calculate-concentric-reachable-areas-options> <vehicle-type/> <!-- a vehicle type name present in the vehicle types catalog --> <vehicle-type-id/> <!-- a vehicle type identifier present in the vehicle types catalog --> <route-search-criteria>time</route-search-criteria> <!-- distance, time, or an integer matching cost table index (graph dependant) --> <max-graph-snap-distance>500</max-graph-snap-distance> <!-- in meters --> <graph-snap-speed>1.11111111</graph-snap-speed> <!-- in m/s --> <route-descr-items/> <!-- composition (separated by comma) --> <reference-level>4</reference-level> <reject-flags/> <!-- composition (separated by comma) --> <speed-profile/> <input-coordinate-system/> <output-coordinate-system/> <use-meta-graph>true</use-meta-graph> <use-graph-accelerator>true</use-graph-accelerator> <default-reachable-area-specification> <row-col>2000</row-col> <tile-resolution>50</tile-resolution> <max-holes>0</max-holes> <min-hole-size>0</min-hole-size> <extended-smoothing>false</extended-smoothing> <accept-non-connectable-links>true</accept-non-connectable-links> </default-reachable-area-specification> </calculate-concentric-reachable-areas-options> <calculate-concentric-reachable-areas-settings> </calculate-concentric-reachable-areas-settings> </datasource>
- leave the other default parameters, except where you decide to create a configuration that is specific to your installation.
- Repeat the steps of copying the <datasource> block and the editing of the <file/> and <name/> tags to configure the second data source.
Editing the second block associated to the other reference table that will be exploited
<datasource> <file>BD_ADRESSE_France_v4.siti</file> <name>IGN</name> <load-graph-settings> <full-load>false</full-load> <primary-language>en</primary-language> </load-graph-settings> <calculate-route-options> <vehicle-type/> <!-- a vehicle type name present in the vehicle types catalog --> <vehicle-type-id/> <!-- a vehicle type identifier present in the vehicle types catalog --> <route-search-criteria>time</route-search-criteria> <!-- distance, time, or an integer matching cost table index (graph dependant) --> <max-graph-snap-distance>500</max-graph-snap-distance> <!-- in meters --> <graph-snap-speed>1.11111111</graph-snap-speed> <!-- in m/s --> <route-descr-items/> <!-- composition (separated by comma) --> <reference-level>4</reference-level> <reject-flags/> <!-- composition (separated by comma) --> <speed-profile/> <input-coordinate-system/> <output-coordinate-system/> <use-meta-graph>true</use-meta-graph> <use-graph-accelerator>true</use-graph-accelerator> <fields/> <!-- composition (separated by comma) --> <tour-optimization>auto</tour-optimization> <language/> <!-- default output language --> </calculate-route-options> <calculate-route-settings> <calculate-ecotax>true</calculate-ecotax> <!-- calculate ecotax when available --> </calculate-route-settings> <!-- if a section named 'search-around-options' (same definition as calculate-route-options) is present it defines particular default options for search around --> <!-- if a section named 'calculate-route-matrix-options' (same definition as calculate-route-options) is present it defines particular default options for calculate route matrix --> <!-- if a section named 'calculate-tour-options' (same definition as calculate-route-options) is present it defines particular default options for calculate tour --> <!-- if a section named 'calculate-route-matrix-settings' (same definition as calculate-route-matrix-settings) is present it defines particular settings for calculate route matrix --> <!-- if a section named 'search-around-settings' (same definition as calculate-route-settings) is present it defines particular settings for search around --> <reverse-geocode-options> <max-distance>1000</max-distance> <!-- in meters --> <max-distance-between-candidates>2</max-distance-between-candidates> <!-- in meters --> <max-candidates>10</max-candidates> <input-coordinate-system/> <output-coordinate-system/> <include-street-number>true</include-street-number> <accept-emtpy-segments>true</accept-emtpy-segments> <language/> <places/> </reverse-geocode-options> <!-- reverse geocoding configuration usually depends on each particular graph --> <reverse-geocode-settings> <address-line-field>${built-in-field:name}</address-line-field> <city-name-field>City name</city-name-field> <postal-code-field>Postcode</postal-code-field> <country-field>Country</country-field> <right-suffix> right</right-suffix> <left-suffix> left</left-suffix> <number-begin-left-field>Begin left number</number-begin-left-field> <number-end-left-field>End left number</number-end-left-field> <number-begin-right-field>Begin right number</number-begin-right-field> <number-end-right-field>End right number</number-end-right-field> </reverse-geocode-settings> <calculate-tour-settings> <tour-optimization-auto-threshold>10</tour-optimization-auto-threshold> </calculate-tour-settings> <calculate-concentric-reachable-areas-options> <vehicle-type/> <!-- a vehicle type name present in the vehicle types catalog --> <vehicle-type-id/> <!-- a vehicle type identifier present in the vehicle types catalog --> <route-search-criteria>time</route-search-criteria> <!-- distance, time, or an integer matching cost table index (graph dependant) --> <max-graph-snap-distance>500</max-graph-snap-distance> <!-- in meters --> <graph-snap-speed>1.11111111</graph-snap-speed> <!-- in m/s --> <route-descr-items/> <!-- composition (separated by comma) --> <reference-level>4</reference-level> <reject-flags/> <!-- composition (separated by comma) --> <speed-profile/> <input-coordinate-system/> <output-coordinate-system/> <use-meta-graph>true</use-meta-graph> <use-graph-accelerator>true</use-graph-accelerator> <default-reachable-area-specification> <row-col>2000</row-col> <tile-resolution>50</tile-resolution> <max-holes>0</max-holes> <min-hole-size>0</min-hole-size> <extended-smoothing>false</extended-smoothing> <accept-non-connectable-links>true</accept-non-connectable-links> </default-reachable-area-specification> </calculate-concentric-reachable-areas-options> <calculate-concentric-reachable-areas-settings> </calculate-concentric-reachable-areas-settings> </datasource>
- Save the «Service.xml» file and rerun the Tomcat service,
-
From now on, whenever you call the WebService, the user should call one of the two resources in a query, indicating in the
<GraphName> parameter the alias that has been defined previously in the <name> tag. If no alias is passed, the source defined
in the
iti.graphname
parameter will be used by default.