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.
La requête comprend un couple de coordonnées en entrée, le service retourne une ou plusieurs réponse(s) possible(s) (en fonction du nombre maximum de réponses souhaitées), en incluant l’adresse, le code postal, la ville, le pays ainsi que la distance entre le résultat et le point de départ (coordonnées indiquées en entrée).
Ce service de géocodage inverse interroge le graphe préalablement installé dans le répertoire dédié.
Les versions précédente du web service sont conservées dans Geoconcept Web pour assurer la compatibilité avec les développements antérieurs. Il est recommandé d’utiliser la version la plus récente.
Changements avec la v3
- Ajout du paramètre "coordinates" dans la réponse
Changements avec la v2
- Le paramètre "postalCode" est renommé "postCode"
- Le paramètre "distanceToLocation" est renommé "distanceMetersToLocation"
- Ajout du paramètre "srs" dans la réponse
En entrée
paramètre | description | optionnel | défaut |
---|---|---|---|
srs |
projection (code EPSG comme epsg:4326 ou wgs84) |
oui |
|
locations |
Coordonnées du point de départ pour le géocodage inverse |
non |
|
graphName |
indiquer le nom du graphe à utiliser pour faire fonctionner le WebService |
oui |
|
maxDistance |
distance maximale de recherche pour trouver les rues avoisinantes au point de départ du géocodage inverse |
non |
1000 |
maxCandidates |
nombre maximum de résultats d’adresses dans la réponse |
oui |
1 |
maxDistanceBetweenCandidates |
Distance maximale (en mètres) entre chaque candidat. |
non |
100 |
En sortie
Rappel des coordonnées du départ de la recherche (reverseGeocodingV2Response)
propriété | type | min/max | description |
---|---|---|---|
location |
string |
0/1 |
coordonnées XY du point de départ pour le géocodage inverse |
srs |
string |
0/1 |
projection (code EPSG comme epsg:4326 ou wgs84) |
address / addresses |
0/illimité |
liste des adresses (candidats) retournées |
Candidats retournés (Address)
propriété | type | min/max | description |
---|---|---|---|
addressLine |
string |
0/1 |
rue trouvée |
postCode |
string |
0/1 |
code postal trouvé |
city |
string |
0/1 |
ville en relation avec le candidat retourné |
country |
string |
0/1 |
pays en lien avec le candidat retourné |
distanceMetersToLocation |
double |
1/1 |
Distance (en mètres) entre le candidat retourné et le point de départ |
coordinates |
string |
1/1 |
Coordonnées de l’adresse |
WSDL
http://<server>
/<webapp>
/api/ws/reverseGeocodingService?wsdl
Requête
<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>
Réponse
<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>
Requête
Requête JSON
http://<server>/<webapp>/api/lbs/reverseGeocoding/v3.json?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
Requête JSON-P
http://<server>/<webapp>/api/lbs/reverseGeocoding/v3.json?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100&fonction=myFonction
Requête XML
http://<server>/<webapp>/api/lbs/reverseGeocoding/v3.xml?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
Réponse
La réponse est toujours encodée en UTF-8.
Format JSON
{ "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" } ] } ] }
Format JSON-P
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" } ] } ] } )
Format XML
<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>
Exemple d’un géocodage inverse correct (reverseGeocodingResult/status est 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>
Cas d’un géocodage inverse où le maxDistance ne respecte pas une valeur > à 1 (on préconise une valeur minimum de 100). (reverseGeocodingResult/status est 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>
Cas d’une requête où l’un des paramètres (<locations>,…) n’est pas renseigné. (reverseGeocodingResult/status est ERROR)
<reverseGeocodingResultsV3> <message>locations must be not null</message> <status>ERROR</status> </reverseGeocodingResultsV3>
Cas d’une requête qui ne s’accroche pas au graphe (reverseGeocodingResult/status est 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>
En entrée
paramètre | description | optionnel | défaut |
---|---|---|---|
srs |
projection (code EPSG comme epsg:4326 ou wgs84) |
oui |
|
locations |
Coordonnées du point de départ pour le géocodage inverse |
non |
|
graphName |
indiquer le nom du graphe à utiliser pour faire fonctionner le WebService |
oui |
|
maxDistance |
distance maximale de recherche pour trouver les rues avoisinantes au point de départ du géocodage inverse |
non |
1000 |
maxCandidates |
nombre maximum de résultats d’adresses dans la réponse |
oui |
1 |
maxDistanceBetweenCandidates |
Distance maximale (en mètres) entre chaque candidat. |
non |
100 |
En sortie
Rappel des coordonnées du départ de la recherche (reverseGeocodingV2Response)
propriété | type | min/max | description |
---|---|---|---|
location |
string |
0/1 |
coordonnées XY du point de départ pour le géocodage inverse |
srs |
string |
0/1 |
projection (code EPSG comme epsg:4326 ou wgs84) |
address / addresses |
0/illimité |
liste des adresses (candidats) retournées |
Candidats retournés (Address)
propriété | type | min/max | description |
---|---|---|---|
addressLine |
string |
0/1 |
rue trouvée |
postCode |
string |
0/1 |
code postal trouvé |
city |
string |
0/1 |
ville en relation avec le candidat retourné |
country |
string |
0/1 |
pays en lien avec le candidat retourné |
distanceMetersToLocation |
double |
1/1 |
Distance (en mètres) entre le candidat retourné et le point de départ |
WSDL
http://<server>
/<webapp>
/api/ws/reverseGeocodingService?wsdl
Requête
<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>
Réponse
<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>
Requête
Requête JSON
http://<server>/<webapp>/api/lbs/reverseGeocoding/v2.json?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
Requête JSON-P
http://<server>/<webapp>/api/lbs/reverseGeocoding/v2.json?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100&fonction=myFonction
Requête XML
http://<server>/<webapp>/api/lbs/reverseGeocoding/v2.xml?locations=-1.565769,47.226236&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
Réponse
La réponse est toujours encodée en UTF-8.
Format JSON
{ "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 } ] } ] }
Format JSON-P
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 } ] } ] } )
Format XML
<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>
Exemple d’un géocodage inverse correct (reverseGeocodingResult/status est 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>
Cas d’un géocodage inverse où le maxDistance ne respecte pas une valeur > à 1 (on préconise une valeur minimum de 100). (reverseGeocodingResult/status est 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>
Cas d’une requête où l’un des paramètres (<locations>,…) n’est pas renseigné. (reverseGeocodingResult/status est ERROR)
<reverseGeocodingResultsV2> <message>locations must be not null</message> <status>ERROR</status> </reverseGeocodingResultsV2>
Cas d’une requête qui ne s’accroche pas au graphe à partir de la version 2.0.9 de SmartRouting Server (reverseGeocodingResult/status est 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>
En entrée
paramètre | description | optionnel | défaut |
---|---|---|---|
srs |
projection (code EPSG comme epsg:4326 ou wgs84) |
oui |
|
locations |
Coordonnées du point de départ pour le géocodage inverse |
non |
|
graphName |
indiquer le nom du graphe à utiliser pour faire fonctionner le WebService |
oui |
|
maxDistance |
distance maximale de recherche pour trouver les rues avoisinantes au point de départ du géocodage inverse |
non |
|
maxCandidates |
nombre maximum de résultats d’adresses dans la réponse |
oui |
|
maxDistanceBetweenCandidates |
Distance maximale (en mètres) entre chaque candidat. |
non |
En sortie
Rappel des coordonnées du départ de la recherche (location)
propriété | type | min/max | description |
---|---|---|---|
location |
string |
0/1 |
coordonnées XY du point de départ pour le géocodage inverse |
address / addresses |
0/illimité |
liste des adresses (candidats) retournées |
Candidats retournés (Address)
propriété | type | min/max | description |
---|---|---|---|
addressLine |
string |
0/1 |
rue trouvée |
postalCode |
string |
0/1 |
code postal trouvé |
city |
string |
0/1 |
ville en relation avec le candidat retourné |
country |
string |
0/1 |
pays en lien avec le candidat retourné |
distanceToLocation |
integer |
1/1 |
Distance (en mètres) entre le candidat retourné et le point de départ |
WSDL
http://<server>
/<webapp>
/api/ws/reverseGeocodingService?wsdl
Requête
<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>
Réponse
<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>
Requête
Requête JSON
http://<server>/<webapp>/api/lbs/reverseGeocoding.json?locations=2.324382,48.803305&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
Requête JSON-P
http://<server>/<webapp>/api/lbs/reverseGeocoding.json?locations=2.324382,48.803305&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100&fonction=myFonction
Requête XML
http://<server>/<webapp>/api/lbs/reverseGeocoding.xml?locations=2.324382,48.803305&maxDistance=1000&maxCandidates=2&maxDistanceBetweenCandidates=100
Réponse
La réponse est toujours encodée en UTF-8.
Format JSON
{ "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 } ] }] }
Format JSON-P
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 } ]}]}
Format XML
<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>
Exemple d’un géocodage inverse correct (reverseGeocodingResult/status est 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>
Cas d’un géocodage inverse où le maxDistanceBetweenCandidates ne respecte pas une valeur > à 1 (on préconise une valeur minimum de 100). (reverseGeocodingResult/status est 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>
Cas d’un géocodage inverse où le maxDistance ne respecte pas une valeur > à 1 (on préconise une valeur minimum de 100). (reverseGeocodingResult/status est OK)
<reverseGeocodingResults> <status>OK</status> <reverseGeocodingResult> <location>2.324382;48.803305</location> <addresses/> </reverseGeocodingResult> </reverseGeocodingResults>
Cas d’une requête où le paramètre <locations> n’est pas indiqué. (reverseGeocodingResult/status est ERROR)
<reverseGeocodingResults> <message>locations must be not null</message> <status>ERROR</status> </reverseGeocodingResults>
Cas d’une requête qui ne s’accroche pas au graphe à partir de la version 2.0.9 de SmartRouting Server (serviceResult/status est 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. Comment est interprété la distance maximale ?
- 2. Quel est le rôle du paramètre maxCandidates ?
- 3. Quelle est l’importance du paramètre maxDistanceBetweenCandidates ?
- 4. Peut-on utiliser des alias à défaut des noms de fichiers .siti pour appeler une datasource ?
Edition du premier bloc associé au premier graphe
<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>
- laisser les autres paramètres par défaut, sauf si vous décidez de faire un paramétrage spécifique à votre installation.
- Répéter les étapes de la copie du bloc <datasource> et l'édition des balises <file/> et <name/> pour paramétrer la seconde source de données.
Edition du second bloc associé à l’autre table de référence qui sera exploitée
<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>
- Sauvegarder le fichier « Service.xml » et relancer le service Tomcat,
-
Désormais, lorsque l’on fait appel au WebService, l’utilisateur devra appeler une des deux ressources dans sa requête en indiquant
dans le paramètre <GraphName> l’alias qui a été défini auparavant via la balise <name>. si aucun alias n’est passé, la source
définie dans le paramètre
iti.graphname
sera utilisée par défaut.