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.
Ce web service permet de classer par temps ou par distance une liste de ressources positionnées autour d’un point. Il prend en entrée un point de départ (target) et une liste de ressources avec des positions géographiques et des priorités 1 et 2 (optionnelles). Les ressources sont des enregistrements stockés dans une base de données à la discrétion du client en fonction de ses besoins. La sélection de ces ressources dans la base de données est à la charge du client. Les ressources sont renvoyées triées d’abord par l’attribut priority1, puis par l’attribut priority2, puis par temps ou par distance (suivant le critère choisi). Les priorités sont optionnelles. La valeur par défaut des priorités est 0. Il s’appuie sur le graphe paramétré dont le nom a été spécifié dans l’interface d’administration de Geoconcept Web.
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 v4
- Ajout des paramètres "maxCost", "timeOut" et "computeOptions".
- Ajout dans la snapMethod "nodes" de l’accrochage aux noeuds les plus proches.
Changements avec la v3
- Ajout de la notion de noeud, plus rapide, pour s’accrocher aux noeuds du graphe plutôt qu’a des coordonnées géographiques. Ajout des éléments suivants : "locationNode", du paramètre "node" dans les ressources et de "nodes" dans les snapMethod.
- Ajout des paramètres "graphName", "profileId", "profileName", "avoidArea" et "configName".
Changements avec la v2
- Ajout du paramètre "snapMethod"
- Suppression des paramètres "targetX" et "targetY" typés double, remplacé par "location" typé string
- Suppression du paramètre "searchMethod", remplacé par "method"
- Suppression du paramètre "rejectFlags", remplacé par "exclusions"
- Suppression du paramètre "projection", remplacé par "srs"
- Le paramètre "distance" est renommé "distanceMeters " et son typage passe de int à double
- Le paramètre "time" est renommé "durationSeconds " et son typage passe de int à double
En entrée
paramètre | description | optionnel | défaut |
---|---|---|---|
location |
Coordonnées du point de départ (ou d’arrivée) |
oui * |
|
locationNode |
Noeud de départ (ou d’arrivée). Attention : un noeud physique n’a pas le même ID dans un autre graphe. |
oui * |
|
method |
Itinéraire le plus court (distance), le plus rapide (time) ou à vol d’oiseau (flying) |
oui |
time |
reverse |
si true, la cible est considérée comme arrivée |
oui |
false |
srs |
projection (code EPSG comme epsg:4326 ou wgs84) |
oui |
|
exclusions |
Liste des règles de restrictions à utiliser, séparés par le caractère ; (Exemple : Toll, Tunnel, Bridge) |
oui |
|
resources |
Liste des ressources, séparés par le caractère ";". |
oui |
|
startDateTime |
Date et heure de départ (format ISO8601 : heure locale) Exemple : 2014-01-21T09:00:00.000+01:00 (ou 2014-01-21T09:00:00.000%2B01:00) pour un départ le 21 janvier 2014, à 9h à Paris. Attention le caractère + peut être mal interprété par les navigateurs, dans ce cas, il faut le remplacer par %2B. |
oui |
|
snapMethod |
Méthode d’accrochage au graphe |
oui |
standard |
graphName (déprécié) |
Nom du graphe à utiliser |
oui |
|
profileId (déprécié) |
Identifiant du véhicule (enregistré dans les profils de véhicule) |
oui |
|
profileName (déprécié) |
Profil du véhicule (enregistré dans les profils de véhicule) |
oui |
|
avoidArea |
Zone de transit interdit au format WKT (POLYGON ou MULTIPOLYGON) dans la projection (paramètre srs) demandée |
oui |
|
configName |
Nom de la configuration à utiliser (défini dans Geoconcept Web - Administration / Outils / Définitions des graphes) |
oui |
|
computeOptions |
Liste des options pour le calcul, séparées par le caractère ; |
oui |
|
maxCost |
Coût maximum à ne pas dépasser dans le calcul |
oui |
|
timeOut |
Time out pour le calcul (en millisecondes) |
oui |
(*) Au moins l’un des deux paramètres location, et locationNode doit être renseigné.
(M18) Disponible à partir de la version M18 des graphes fournis par GEOCONCEPT SAS.
En sortie
Search Around (searchAroundWebResultsV4)
paramètre | type | min/max | description |
---|---|---|---|
location |
double |
0/1 |
Coordonnées du point de départ (ou d’arrivée) |
method |
string |
0/1 |
Méthode précisée en entrée (time, distance ou flying), time par défaut. |
srs |
string |
0/1 |
Projection précisée en entrée. |
exclusions |
string |
0/illimité |
Liste des règles de restrictions précisées en entrée. |
searchAroundResult |
searchAroundWebResultV4 (ou array en JSON / JSON-P) |
0/illimité |
Liste des résultats pour chaque candidat. |
Search Around élément (searchAroundWebResultV4)
paramètre | type | min/max | description |
---|---|---|---|
id |
string |
0/1 |
Identifiant du candidat |
distanceMeters |
double |
1/1 |
Distance en mètre |
durationSeconds |
double |
1/1 |
Temps en seconde |
WSDL
http://<server>
/<webapp>
/api/ws/searchAroundService?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:searchAroundV4> <!--Optional:--> <request> <location> <x>-1.553927</x> <y>47.218580</y> </location> <!--Optional:--> <locationNode></locationNode> <!--Optional:--> <method>time</method> <reverse></reverse> <!--Optional:--> <srs></srs> <!--Optional:--> <exclusions> <!--Zero or more repetitions:--> <exclusion></exclusion> </exclusions> <!--Optional:--> <resources> <!--Zero or more repetitions:--> <resource> <x>-1.593927</x> <y>47.188580</y> <!--Optional:--> <id>1</id> <!--Optional:--> <node></node> <!--Optional:--> <priority1>1</priority1> <!--Optional:--> <priority2>2</priority2> </resource> <resource> <x>-1.556927</x> <y>47.219580</y> <!--Optional:--> <id>2</id> <!--Optional:--> <node></node> <!--Optional:--> <priority1>1</priority1> <!--Optional:--> <priority2>2</priority2> </resource> </resources> <!--Optional:--> <startDateTime></startDateTime> <!--Optional:--> <snapMethod></snapMethod> <!--Optional:--> <graphName></graphName> <!--Optional:--> <profileId></profileId> <!--Optional:--> <profileName></profileName> <!--Optional:--> <avoidArea></avoidArea> <!--Optional:--> <configName></configName> <!--Optional:--> <computeOptions></computeOptions> <!--Optional:--> <maxCost></maxCost> <!--Optional:--> <timeOut></timeOut> </request> </sch:searchAroundV4> </soapenv:Body> </soapenv:Envelope>
Réponse
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:searchAroundV4Response xmlns:ns2="http://geoconcept.com/gc/schemas"> <SearchAroundResult> <status>OK</status> <location>-1.553927,47.21858</location> <method>time</method> <srs/> <exclusions/> <searchAroundResult> <id>2</id> <distanceMeters>424.0</distanceMeters> <durationSeconds>100.0</durationSeconds> </searchAroundResult> <searchAroundResult> <id>1</id> <distanceMeters>6682.0</distanceMeters> <durationSeconds>942.0</durationSeconds> </searchAroundResult> </SearchAroundResult> </ns2:searchAroundV4Response> </soap:Body> </soap:Envelope>
Requête
Requête JSON
http://<server>/<webapp>/api/lbs/searchAround/v4.json?method=time&location=-1.593927,47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1
Requête JSON-P
http://<server>/<webapp>/api/lbs/searchAround/v4.json?method=time&location=-1.593927,47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1&callback=myCallback
Requête XML
http://<server>/<webapp>/api/lbs/searchAround/v4.xml?method=time&location=-1.593927,47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1
Réponse
La réponse est toujours encodée en UTF-8.
Format JSON
{ "message": null, "status": "OK", "location": "-1.593927,47.21858", "locationNode": null, "method": "time", "srs": null, "exclusions": [], "searchAroundResult": [ { "id": "2", "distanceMeters": 4474, "durationSeconds": 796 }, { "id": "1", "distanceMeters": 10453, "durationSeconds": 1114 } ] }
Format JSON-P
myCallback( { "message": null, "status": "OK", "location": "-1.593927,47.21858", "method": "time", "srs": null, "exclusions": [], "searchAroundResult": [ { "id": "2", "distanceMeters": 4474, "durationSeconds": 796 }, { "id": "1", "distanceMeters": 10453, "durationSeconds": 1114 } ] } );
Format XML
<searchAroundResponseV4> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distanceMeters>4474.0</distanceMeters> <durationSeconds>796.0</durationSeconds> </searchAroundResult> <searchAroundResult> <id>1</id> <distanceMeters>10453.0</distanceMeters> <durationSeconds>1114.0</durationSeconds> </searchAroundResult> </searchAroundResponseV4>
Cas d’une recherche de proximité trouvée (searchAroundResponse/status est OK)
<searchAroundResponseV4> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distanceMeters>4474.0</distanceMeters> <durationSeconds>796.0</durationSeconds> </searchAroundResult> <searchAroundResult> <id>1</id> <distanceMeters>10453.0</distanceMeters> <durationSeconds>1114.0</durationSeconds> </searchAroundResult> </searchAroundResponseV4>
Cas d’un problème avec le graphe : fichier absent, mauvais chemin, etc… (searchAroundResponse/status est OK)
<searchAroundResponseV4> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> </searchAroundResponseV4>
Cas d’une erreur d’accrochage au graphe (searchAroundResponse/status est OK)
<searchAroundResponseV4> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> </searchAroundResponseV4>
Cas d’une absence du paramètre location (searchAroundResponse/status est ERROR)
<searchAroundResponseV4> <message>Location must be not null</message> <status>ERROR</status> </searchAroundResponseV4>
Cas ou la paramètre location est incomplet ou avec un mauvais séparateur (searchAroundResponse/status est ERROR)
<searchAroundResponseV4> <message>Location point must have 2 components separated with a ,</message> <status>ERROR</status> </searchAroundResponseV4>
Cas d’absence de ressource (searchAroundResponse/status est ERROR)
<searchAroundResponseV4> <message>resources not defined</message> <status>ERROR</status> </searchAroundResponseV4>
Cas d’une ressource mal formatée (searchAroundResponse/status est ERROR)
<serviceResult> <message>ServiceException: not enough fields in candidate 1.-1.5939</message> <status>ERROR</status> </serviceResult>
En entrée
paramètre | description | optionnel | défaut |
---|---|---|---|
location |
Coordonnées du point de départ (ou d’arrivée) |
oui * |
|
locationNode |
Noeud de départ (ou d’arrivée). Attention : un noeud physique n’a pas le même ID dans un autre graphe. |
oui * |
|
method |
Itinéraire le plus court (distance), le plus rapide (time) ou à vol d’oiseau (flying) |
oui |
time |
reverse |
si true, la cible est considérée comme arrivée |
oui |
false |
srs |
projection (code EPSG comme epsg:4326 ou wgs84) |
oui |
|
exclusions |
Liste des règles de restrictions à utiliser, séparés par le caractère ; (Exemple : "Toll", "Tunnel", "Bridge") |
oui |
|
resources |
Liste des ressources, séparés par le caractère ";". |
oui |
|
startDateTime |
Date et heure de départ (format ISO8601 : heure locale) Exemple : 2014-01-21T09:00:00.000+01:00 (ou 2014-01-21T09:00:00.000%2B01:00) pour un départ le 21 janvier 2014, à 9h à Paris. Attention le caractère + peut être mal interprété par les navigateurs, dans ce cas, il faut le remplacer par %2B. |
oui |
|
snapMethod |
Méthode d’accrochage au graphe |
oui |
standard |
graphName |
Nom du graphe à utiliser |
oui |
|
profileId |
Identifiant du véhicule (enregistré dans les profils de véhicule) |
oui |
|
profileName |
Profil du véhicule (enregistré dans les profils de véhicule) |
oui |
|
avoidArea |
Zone de transit interdit au format WKT (POLYGON ou MULTIPOLYGON) dans la projection (paramètre srs) demandée |
oui |
|
configName |
Nom de la configuration à utiliser (défini dans Geoconcept Web - Administration / Outils / Définitions des graphes) |
oui |
(*) Au moins l’un des deux paramètres location, et locationNode doit être renseigné.
En sortie
Search Around (searchAroundWebResultsV3)
paramètre | type | min/max | description |
---|---|---|---|
location |
double |
0/1 |
Coordonnées du point de départ (ou d’arrivée) |
method |
string |
0/1 |
Méthode précisée en entrée (time, distance ou flying), time par défaut. |
srs |
string |
0/1 |
Projection précisée en entrée. |
exclusions |
string |
0/illimité |
Liste des règles de restrictions précisées en entrée. |
searchAroundResult |
searchAroundWebResultV3 (ou array en JSON / JSON-P) |
0/illimité |
Liste des résultats pour chaque candidat. |
Search Around élément (searchAroundWebResultV3)
paramètre | type | min/max | description |
---|---|---|---|
id |
string |
0/1 |
Identifiant du candidat |
distanceMeters |
double |
1/1 |
Distance en mètre |
durationSeconds |
double |
1/1 |
Temps en seconde |
WSDL
http://<server>
/<webapp>
/api/ws/searchAroundService?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:searchAroundV3> <!--Optional:--> <request> <location> <x>-1.553927</x> <y>47.218580</y> </location> <!--Optional:--> <locationNode></locationNode> <!--Optional:--> <method>time</method> <reverse></reverse> <!--Optional:--> <srs></srs> <!--Optional:--> <exclusions> <!--Zero or more repetitions:--> <exclusion></exclusion> </exclusions> <!--Optional:--> <resources> <!--Zero or more repetitions:--> <resource> <x>-1.593927</x> <y>47.188580</y> <!--Optional:--> <id>1</id> <!--Optional:--> <node></node> <!--Optional:--> <priority1>1</priority1> <!--Optional:--> <priority2>2</priority2> </resource> <resource> <x>-1.556927</x> <y>47.219580</y> <!--Optional:--> <id>2</id> <!--Optional:--> <node></node> <!--Optional:--> <priority1>1</priority1> <!--Optional:--> <priority2>2</priority2> </resource> </resources> <!--Optional:--> <startDateTime></startDateTime> <!--Optional:--> <snapMethod></snapMethod> <!--Optional:--> <graphName></graphName> <!--Optional:--> <profileId></profileId> <!--Optional:--> <profileName></profileName> <!--Optional:--> <avoidArea></avoidArea> <!--Optional:--> <configName></configName> </request> </sch:searchAroundV3> </soapenv:Body> </soapenv:Envelope>
Réponse
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:searchAroundV3Response xmlns:ns2="http://geoconcept.com/gc/schemas"> <SearchAroundResult> <status>OK</status> <location>-1.553927,47.21858</location> <method>time</method> <srs/> <exclusions/> <searchAroundResult> <id>2</id> <distanceMeters>424.0</distanceMeters> <durationSeconds>147.0</durationSeconds> </searchAroundResult> <searchAroundResult> <id>1</id> <distanceMeters>6682.0</distanceMeters> <durationSeconds>1059.0</durationSeconds> </searchAroundResult> </SearchAroundResult> </ns2:searchAroundV3Response> </soap:Body> </soap:Envelope>
Requête
Requête JSON
http://<server>/<webapp>/api/lbs/searchAround/v3.json?method=time&location=-1.593927,47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1
Requête JSON-P
http://<server>/<webapp>/api/lbs/searchAround/v3.json?method=time&location=-1.593927,47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1&callback=myCallback
Requête XML
http://<server>/<webapp>/api/lbs/searchAround/v3.xml?method=time&location=-1.593927,47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1
Réponse
La réponse est toujours encodée en UTF-8.
Format JSON
{ "message": null, "status": "OK", "location": "-1.593927,47.21858", "locationNode": null, "method": "time", "srs": null, "exclusions": [], "searchAroundResult": [ { "id": "2", "distanceMeters": 4474, "durationSeconds": 796 }, { "id": "1", "distanceMeters": 10453, "durationSeconds": 1114 } ] }
Format JSON-P
myCallback( { "message": null, "status": "OK", "location": "-1.593927,47.21858", "method": "time", "srs": null, "exclusions": [], "searchAroundResult": [ { "id": "2", "distanceMeters": 4474, "durationSeconds": 796 }, { "id": "1", "distanceMeters": 10453, "durationSeconds": 1114 } ] } );
Format XML
<searchAroundResponseV3> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distanceMeters>4474.0</distanceMeters> <durationSeconds>796.0</durationSeconds> </searchAroundResult> <searchAroundResult> <id>1</id> <distanceMeters>10453.0</distanceMeters> <durationSeconds>1114.0</durationSeconds> </searchAroundResult> </searchAroundResponseV3>
Cas d’une recherche de proximité trouvée (searchAroundResponse/status est OK)
<searchAroundResponseV3> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distanceMeters>4474.0</distanceMeters> <durationSeconds>796.0</durationSeconds> </searchAroundResult> <searchAroundResult> <id>1</id> <distanceMeters>10453.0</distanceMeters> <durationSeconds>1114.0</durationSeconds> </searchAroundResult> </searchAroundResponseV3>
Cas d’un problème avec le graphe : fichier absent, mauvais chemin, etc… (searchAroundResponse/status est OK)
<searchAroundResponseV3> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> </searchAroundResponseV3>
Cas d’une erreur d’accrochage au graphe (searchAroundResponse/status est OK)
<searchAroundResponseV3> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> </searchAroundResponseV3>
Cas d’une absence du paramètre location (searchAroundResponse/status est ERROR)
<searchAroundResponseV3> <message>Location must be not null</message> <status>ERROR</status> </searchAroundResponseV3>
Cas ou la paramètre location est incomplet ou avec un mauvais séparateur (searchAroundResponse/status est ERROR)
<searchAroundResponseV3> <message>Location point must have 2 components separated with a ,</message> <status>ERROR</status> </searchAroundResponseV3>
Cas d’une absence de ressource (searchAroundResponse/status est OK)
<searchAroundResponseV3> <status>OK</status> </searchAroundResponseV3>
Cas d’une ressource mal formatée (searchAroundResponse/status est ERROR)
<serviceResult> <message>ServiceException: not enough fields in candidate 1.-1.5939</message> <status>ERROR</status> </serviceResult>
En entrée
paramètre | description | optionnel | défaut |
---|---|---|---|
location |
Coordonnées du point de départ (ou d’arrivée) |
non |
|
method |
Itinéraire le plus court (distance), le plus rapide (time) ou à vol d’oiseau (flying) |
oui |
time |
reverse |
si true, la cible est considérée comme arrivée |
oui |
false |
srs |
projection (code EPSG comme epsg:4326 ou wgs84) |
oui |
|
exclusions |
Liste des règles de restrictions à utiliser, séparés par le caractère ; (Exemple : "Toll", "Tunnel", "Bridge") |
oui |
|
resources |
Liste des ressources, séparés par le caractère ";". |
oui |
|
startDateTime |
Date et heure de départ (format ISO8601 : heure locale) exemple : 2014-01-21T09:00:00.000+01:00 (ou 2014-01-21T09:00:00.000%2B01:00) pour un départ le 21 janvier 2014, à 9h à Paris |
oui |
|
snapMethod |
Méthode d’accrochage au graphe |
oui |
standard |
En sortie
Search Around (searchAroundWebResultsV2)
paramètre | type | min/max | description |
---|---|---|---|
location |
double |
0/1 |
Coordonnées du point de départ (ou d’arrivée) |
method |
string |
0/1 |
Méthode précisée en entrée (time, distance ou flying), time par défaut. |
srs |
string |
0/1 |
Projection précisée en entrée. |
exclusions |
string |
0/illimité |
Liste des règles de restrictions précisées en entrée. |
searchAroundResult |
searchAroundWebResultV2 (ou array en JSON / JSON-P) |
0/illimité |
Liste des résultats pour chaque candidat. |
Search Around élément (searchAroundWebResultV2)
paramètre | type | min/max | description |
---|---|---|---|
id |
string |
0/1 |
Identifiant du candidat |
distanceMeters |
double |
1/1 |
Distance en mètre |
durationSeconds |
double |
1/1 |
Temps en seconde |
WSDL
http://<server>
/<webapp>
/api/ws/searchAroundService?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:searchAroundV2> <!--Optional:--> <request> <location> <x>-1.553927</x> <y>47.218580</y> </location> <!--Optional:--> <method>time</method> <reverse></reverse> <!--Optional:--> <srs></srs> <!--Optional:--> <exclusions> <!--Zero or more repetitions:--> <exclusion></exclusion> </exclusions> <!--Optional:--> <resources> <!--Zero or more repetitions:--> <resource> <x>-1.593927</x> <y>47.188580</y> <!--Optional:--> <id>1</id> <!--Optional:--> <priority1>1</priority1> <!--Optional:--> <priority2>2</priority2> </resource> <resource> <x>-1.556927</x> <y>47.219580</y> <!--Optional:--> <id>2</id> <!--Optional:--> <priority1>1</priority1> <!--Optional:--> <priority2>2</priority2> </resource> </resources> <!--Optional:--> <startDateTime></startDateTime> <!--Optional:--> <snapMethod></snapMethod> </request> </sch:searchAroundV2> </soapenv:Body> </soapenv:Envelope>
Réponse
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:searchAroundV2Response xmlns:ns2="http://geoconcept.com/gc/schemas"> <SearchAroundResult> <status>OK</status> <location>-1.553927,47.21858</location> <method>time</method> <srs/> <exclusions/> <searchAroundResult> <id>2</id> <distanceMeters>424.0</distanceMeters> <durationSeconds>147.0</durationSeconds> </searchAroundResult> <searchAroundResult> <id>1</id> <distanceMeters>6682.0</distanceMeters> <durationSeconds>1059.0</durationSeconds> </searchAroundResult> </SearchAroundResult> </ns2:searchAroundV2Response> </soap:Body> </soap:Envelope>
Requête
Requête JSON
http://<server>/<webapp>/api/lbs/searchAround/v2.json?method=time&location=-1.593927,47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1
Requête JSON-P
http://<server>/<webapp>/api/lbs/searchAround/v2.json?method=time&location=-1.593927,47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1&callback=myCallback
Requête XML
http://<server>/<webapp>/api/lbs/searchAround/v2.xml?method=time&location=-1.593927,47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1
Réponse
La réponse est toujours encodée en UTF-8.
Format JSON
{ "message": null, "status": "OK", "location": "-1.593927,47.21858", "method": "time", "srs": null, "exclusions": [], "searchAroundResult": [ { "id": "2", "distanceMeters": 3376, "durationSeconds": 735 }, { "id": "1", "distanceMeters": 10453, "durationSeconds": 1114 } ] }
Format JSON-P
myCallback( { "message": null, "status": "OK", "location": "-1.593927,47.21858", "method": "time", "srs": null, "exclusions": [], "searchAroundResult": [ { "id": "2", "distanceMeters": 3376, "durationSeconds": 735 }, { "id": "1", "distanceMeters": 10453, "durationSeconds": 1114 } ] } );
Format XML
<searchAroundResponse> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distanceMeters>3376.0</distanceMeters> <durationSeconds>735.0</durationSeconds> </searchAroundResult> <searchAroundResult> <id>1</id> <distanceMeters>10453.0</distanceMeters> <durationSeconds>1114.0</durationSeconds> </searchAroundResult> </searchAroundResponse>
Cas d’une recherche de proximité trouvée (searchAroundResponse/status est OK)
<searchAroundResponse> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distanceMeters>3376.0</distanceMeters> <durationSeconds>735.0</durationSeconds> </searchAroundResult> <searchAroundResult> <id>1</id> <distanceMeters>10453.0</distanceMeters> <durationSeconds>1114.0</durationSeconds> </searchAroundResult> </searchAroundResponse>
Cas d’un problème avec le graphe : fichier absent, mauvais chemin, etc… (searchAroundResponse/status est OK)
<searchAroundResponse> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> </searchAroundResponse>
Cas d’une erreur d’accrochage au graphe (searchAroundResponse/status est OK)
<searchAroundResponse> <status>OK</status> <location>-1.593927,47.21858</location> <method>time</method> <searchAroundResult> <id>2</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> </searchAroundResponse>
Cas d’une absence du paramètre location (searchAroundResponse/status est ERROR)
<searchAroundResponse> <message>Location must be not null</message> <status>ERROR</status> </searchAroundResponse>
Cas ou la paramètre location est incomplet ou avec un mauvais séparateur (searchAroundResponse/status est ERROR)
<searchAroundResponse> <message>Location point must have 2 components separated with a ,</message> <status>ERROR</status> </searchAroundResponse>
Cas d’une absence de ressource (searchAroundResponse/status est OK)
<searchAroundResponse> <status>OK</status> </searchAroundResponse>
Cas d’une ressource mal formatée (searchAroundResponse/status est ERROR)
<serviceResult> <message>ServiceException: not enough fields in candidate 1.-1.5939</message> <status>ERROR</status> </serviceResult>
En entrée
paramètre | description | optionnel | défaut |
---|---|---|---|
targetX |
Coordonnées X ou longitude de la target |
oui |
|
targetY |
Coordonnées Y ou latitude de la target |
oui |
|
searchMethod |
Déprécié, remplacé par method |
oui |
time |
method |
Itinéraire le plus court (distance) ou le plus rapide (time) |
oui |
time |
reverse |
si true, la target est considéré comme arrivée |
oui |
false |
projection |
Déprécié, remplacé par srs |
oui |
|
srs |
projection (code EPSG comme epsg:4326 ou wgs84) |
oui |
|
rejectFlags |
Déprécié, remplacé par exclusions |
oui |
|
exclusions |
Liste des règles de restrictions à utiliser, séparés par le caractère ; (Exemple : "Toll", "Tunnel", "Bridge") |
oui |
|
resources |
Liste des ressources, séparés par le caractère ";". |
oui |
En sortie
Search Around (searchAroundWebResults)
paramètre | type | min/max | description |
---|---|---|---|
targetX |
double |
1/1 |
Coordonnées X ou longitude de la target |
targetY |
double |
1/1 |
Coordonnées Y ou latitude de la target |
method |
string |
0/1 |
Méthode précisée en entrée |
projection |
string |
0/1 |
Déprécié, remplacé par srs |
srs |
string |
0/1 |
Projection précisée en entrée |
exclusions |
string |
0/illimité |
Liste des règles de restrictions précisées en entrée |
searchAroundResult |
array |
0/illimité |
Liste des réponses |
Search Around élément (searchAroundWebResult)
paramètre | type | min/max | description |
---|---|---|---|
id |
string |
0/1 |
Identifiant du candidat |
distance |
int |
1/1 |
Distance en mètre |
time |
int |
1/1 |
Temps en seconde |
WSDL
http://<server>
/<webapp>
/api/ws/searchAroundService?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:searchAround> <!--Optional:--> <request> <!--Optional:--> <target> <x>-1.553927</x> <y>47.218580</y> </target> <!--Optional:--> <searchMethod></searchMethod> <!--Optional:--> <method>time</method> <reverse></reverse> <!--Optional:--> <srs></srs> <!--Optional:--> <exclusions> <!--Zero or more repetitions:--> <exclusion></exclusion> </exclusions> <!--Optional:--> <rejectFlags> <!--Zero or more repetitions:--> <rejectFlag></rejectFlag> </rejectFlags> <!--Optional:--> <resources> <!--Zero or more repetitions:--> <resource> <x>-1.593927</x> <y>47.188580</y> <!--Optional:--> <id>1</id> <!--Optional:--> <priority1>1</priority1> <!--Optional:--> <priority2>2</priority2> </resource> <resource> <x>-1.556927</x> <y>47.219580</y> <!--Optional:--> <id>2</id> <!--Optional:--> <priority1>1</priority1> <!--Optional:--> <priority2>2</priority2> </resource> </resources> </request> </sch:searchAround> </soapenv:Body> </soapenv:Envelope>
Réponse
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:searchAroundResponse xmlns:ns2="http://geoconcept.com/gc/schemas"> <SearchAroundResult> <status>OK</status> <targetX>-1.553927</targetX> <targetY>47.21858</targetY> <method>time</method> <projection/> <srs/> <exclusions/> <searchAroundResult> <id>2</id> <distance>485</distance> <time>87</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>6788</distance> <time>526</time> </searchAroundResult> </SearchAroundResult> </ns2:searchAroundResponse> </soap:Body> </soap:Envelope>
Requête
Requête JSON
http://<server>/<webapp>/api/lbs/searchAround.json?method=time&targetX=-1.593927&targetY=47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1
Requête JSON-P
http://<server>/<webapp>/api/lbs/searchAround.json?method=time&targetX=-1.593927&targetY=47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1&callback=myCallback
Requête XML
http://<server>/<webapp>/api/lbs/searchAround.xml?method=time&targetX=-1.593927&targetY=47.218580&resources=1,-1.593927,47.188580,1,2;2,-1.556927,47.219580,1,1
Réponse
La réponse est toujours encodée en UTF-8.
Format JSON
{ "message": null, "status": "OK", "targetX": -1.593927, "targetY": 47.21858, "method": "time", "projection": null, "srs": null, "exclusions": [], "searchAroundResult": [ { "id": "2", "distance": 3880, "time": 777 }, { "id": "1", "distance": 10448, "time": 1178 } ] }
Format JSON-P
myCallback( { "message": null, "status": "OK", "targetX": -1.593927, "targetY": 47.21858, "method": "time", "projection": null, "srs": null, "exclusions": [], "searchAroundResult": [ { "id": "2", "distance": 3880, "time": 777 }, { "id": "1", "distance": 10448, "time": 1178 } ] } );
Format XML
<searchAroundResponse> <status>OK</status> <targetX>-1.593927</targetX> <targetY>47.21858</targetY> <method>time</method> <searchAroundResult> <id>2</id> <distance>3880</distance> <time>777</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>10448</distance> <time>1178</time> </searchAroundResult> </searchAroundResponse>
Cas d’une recherche de proximité trouvée (searchAroundResponse/status est OK)
<searchAroundResponse> <status>OK</status> <targetX>-1.593927</targetX> <targetY>47.21858</targetY> <method>time</method> <searchAroundResult> <id>2</id> <distance>3880</distance> <time>777</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>10448</distance> <time>1178</time> </searchAroundResult> </searchAroundResponse>
Cas d’un problème avec le graphe : fichier absent, mauvais chemin, etc… (searchAroundResponse/status est OK)
<searchAroundResponse> <status>OK</status> <targetX>-1.593927</targetX> <targetY>47.21858</targetY> <method>time</method> <searchAroundResult> <id>2</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> </searchAroundResponse>
Cas d’une erreur d’accrochage au graphe (searchAroundResponse/status est OK)
<searchAroundResponse> <status>OK</status> <targetX>-51.593927</targetX> <targetY>47.21858</targetY> <method>time</method> <searchAroundResult> <id>2</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> </searchAroundResponse>
Cas d’un oubli de spécification du point target (searchAroundResponse/status est OK)
<searchAroundResponse> <status>OK</status> <targetX>0.0</targetX> <targetY>0.0</targetY> <method>time</method> <searchAroundResult> <id>2</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> <searchAroundResult> <id>1</id> <distance>-1</distance> <time>-1</time> </searchAroundResult> </searchAroundResponse>
Cas d’une absence de ressource (searchAroundResponse/status est OK)
<searchAroundResponse> <status>OK</status> <targetX>0.0</targetX> <targetY>0.0</targetY> </searchAroundResponse>
Cas d’une ressource mal formatée (searchAroundResponse/status est ERROR)
<serviceResult> <message>ServiceException: not enough fields in candidate 2,-1.556927,</message> <status>ERROR</status> </serviceResult>
- 1. Est-il possible de prioriser le temps de parcours ou la distance ?
- 2. Peut-on utiliser des alias à défaut des noms de fichiers .siti pour appeler une datasource ?
- 3. Comment utiliser les statistiques routières ?
- 4. Comment s’organise le classement des adresses retournées, par rapport à la distance, au temps, aux priorités ?
- 5. Quel format doit avoir la priorité et est-il possible de définir un ordre de classement ? (croissant/décroissant)
- 6. Si une seule adresse de la liste a une priorité à 0, la priorité est elle prise en compte pour une des adresses de la liste ?
- 7. Comment faire un calcul d’itinéraire sans péage?
- 8. Qu’est-ce que les Speed Patterns ? Comment les utiliser ?
- 9. Comment utiliser les attributs poids lourds ?