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, en passant une coordonnée, de récupérer les informations contenues dans les champs des objets d’une carte Geoconcept. Les paramètres du nom de la couche, de la structure de la carte et du ou des champ(s) à interroger sont à renseigner lors de l’appel au web service.
Ce web service est disponible en permanence avec Geoconcept Web et une carte Geoconcept.
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 V2
- Le nom du web service a changé de "findObjectsUnder" à "findObjectV2"
- Le Web service n’est plus disponible en REST GET
- Remplacement de "mapName" par "layerName"
- Ajout de plusieurs paramètres de recherche "findObjectsTarget"
- Ajout des paramètres "targetID", "maxDistance" et "maxCandidates"
- Ajout des paramètres en sortie "distance" et "wktGeometry"
- Suppression du paramètre "topology"
En entrée
paramètre | description | optionnel | défaut |
---|---|---|---|
srs |
projection (code EPSG comme epsg:4326 ou wgs84) |
non |
|
geometries |
Coordonnées à chercher (série de triplets Id,X,Y séparées par le caractère ";") |
non |
|
layerName |
Nom de la couche à utiliser |
non |
|
targets/target (findObjectsTarget) |
Propriétés des objets cherchés |
non |
Cibles (findObjectsTarget)
paramètre | description | optionnel | défaut |
---|---|---|---|
targetID |
Identifiant |
oui |
|
className |
Nom du Type |
non |
|
subclassName |
Nom du Sous-type |
non |
|
fields |
Nom des champs séparés par le caractère ";" |
non |
|
maxDistance |
Rayon de recherche maximal (en mètre) |
oui |
|
maxCandidates |
Nombre maximum de candidats à retourner |
oui |
En sortie
paramètre | type | min/max | description |
---|---|---|---|
id |
string |
0/1 |
Identifiant des objets |
targets/target (findTargetResult) |
array (objectInfo) |
0/illimité |
Objets |
Cibles Infos (findTargetResult)
paramètre | type | min/max | description |
---|---|---|---|
targetID |
string |
0/1 |
Identifiant |
objects/object (objectInfoV2) |
string |
0/illimité |
Description des objets |
Objets Infos (objectInfoV2)
paramètre | type | min/max | description |
---|---|---|---|
distance |
integer |
1/1 |
Distance en mètre entre le point d’orgine et l’objet trouvé |
wktGeometry |
string |
0/1 |
Géométrie de l’objet |
WSDL
http://<server>
/<webapp>
/api/ws/findObjectsService?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:findObjectV2> <!--Optional:--> <request> <!--Optional:--> <srs>epsg:4326</srs> <geometries>1,-1.80280,47.15524</geometries> <layerName>Fond de plan</layerName> <!--Optional:--> <targets> <!--1 or more repetitions:--> <target> <!--Optional:--> <targetId>1</targetId> <className>Unité administrative</className> <!--Optional:--> <subClassName>Commune</subClassName> <fields>Name;Code gouvernement</fields> <!--Optional:--> <maxDistance>1000</maxDistance> <!--Optional:--> <maxCandidates>5</maxCandidates> </target> </targets> </request> </sch:findObjectV2> </soapenv:Body> </soapenv:Envelope>
Réponse
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:findObjectV2Response xmlns:ns2="http://geoconcept.com/gc/schemas"> <FindObjectResult> <status>OK</status> <results> <id>1</id> <targets> <target> <targetId>1</targetId> <objects> <object> <fields> <field>Port-Saint-Père</field> <field>44133</field> </fields> <distance>0</distance> </object> <object> <fields> <field>Rouans</field> <field>44145</field> </fields> <distance>447</distance> </object> </objects> </target> </targets> </results> </FindObjectResult> </ns2:findObjectV2Response> </soap:Body> </soap:Envelope>
Requête
Requête
http://<server>/<webapp>/api/lbs/find/findObject/v2.xml
Data (XML)
<?xml version="1.0" encoding="UTF-8"?> <findObjectRequestV2> <srs>epsg:4326</srs> <geometries>1,-1.80280,47.15524</geometries> <layerName>Fond de plan</layerName> <targets> <target> <targetId>1</targetId> <className>Unité administrative</className> <subClassName>Commune</subClassName> <fields>Name;Code gouvernement</fields> <maxDistance>0</maxDistance> <maxCandidates>1</maxCandidates> </target> </targets> </findObjectRequestV2>
Réponse
La réponse est toujours encodée en UTF-8.
Format XML
<findObjectResultsV2> <status>OK</status> <results> <id>1</id> <targets> <target> <targetId>1</targetId> <objects> <object> <fields> <field>Port-Saint-Père</field> <field>44133</field> </fields> <distance>0</distance> </object> </objects> </target> </targets> </results> </findObjectResultsV2>
Requête
Requête JSON
http://<server>/<webapp>/api/lbs/find/findObject/v2.json
JSON
{ "srs" : "epsg:4326", "geometries" : "1,-1.80280,47.15524", "layerName" : "Fond de plan", "targets" : [ { "className" : "Unité administrative", "subClassName" : "Commune", "fields" : "Name;Code gouvernement" }] }
Réponse
La réponse est toujours encodée en UTF-8.
Format JSON
{ "message": null, "status": "OK", "results": [ { "id": "1", "targets": [{"objects": [ { "distance": 0, "fields": [ "Port-Saint-Père", "44133" ] }]}] }] }
Cas d’une réponse trouvée (findObjectsResults/status est OK)
<findObjectResultsV2> <status>OK</status> <results> <id>1</id> <targets> <target> <targetId>1</targetId> <objects> <object> <fields> <field>Port-Saint-Père</field> <field>44133</field> </fields> <distance>0</distance> </object> </objects> </target> </targets> </results> </findObjectResultsV2>
Absence d’objet sur la position recherché (findObjectsResultsV2/status est OK)
<findObjectsResultsV2> <status>OK</status> <results> <id>1</id> <objects/> </results> </findObjectsResultsV2>
Mauvaise projection / srs (serviceResult/status est ERROR)
<serviceResult> <message> CoordinateTransformEngineException: Coordinate transformation failed </message> <status>ERROR</status> </serviceResult>
Cas, absence d’un argument pour geometries (serviceResult/status est ERROR)
<serviceResult> <message>IllegalArgumentException: Geometry has too few fields : String[][{1,-1.80280}]</message> <status>ERROR</status> </serviceResult>
Cas de la couche non trouvée (serviceResult/status est ERROR)
<serviceResult> <message>WebServiceException: Layer name 'Fond de lan' does not exist</message> <status>ERROR</status> </serviceResult>
Cas du Type non trouvé (serviceResult/status est ERROR)
<serviceResult> <message>WebServiceException: Error in finding objects failed to execute text request failed to execute gcis request (text response) failed to execute gcis request exception occured while servicing request Failed to service request com.geoconcept.gc.GcException: native returned exception (code=1) native returned exception [FindObject-88304] unknown type 'Unité administrtive'</message> <status>ERROR</status> </serviceResult>
Cas du Sous-type non trouvé (serviceResult/status est ERROR)
<serviceResult> <message>WebServiceException: Error in finding objects failed to execute text request failed to execute gcis request (text response) failed to execute gcis request exception occured while servicing request Failed to service request com.geoconcept.gc.GcException: native returned exception (code=1) native returned exception [FindObject-88305] unknown subtype 'Commun'</message> <status>ERROR</status> </serviceResult>
Cas de champ non trouvé (serviceResult/status est ERROR)
<serviceResult> <message>WebServiceException: Error in finding objects failed to execute text request failed to execute gcis request (text response) failed to execute gcis request exception occured while servicing request Failed to service request com.geoconcept.gc.GcException: native returned exception (code=1) native returned exception [FindObject-88300] unknown field 'Code governement'</message> <status>ERROR</status> </serviceResult>
En entrée
paramètre | description | optionnel | défaut |
---|---|---|---|
srs |
projection (code EPSG comme epsg:4326 ou wgs84) |
oui |
|
geometries |
Coordonnées à chercher (série de triplets Id,X,Y séparées par le caractère ";") |
non |
|
topology |
Relation topologique entre le |
oui |
|
mapName |
Nom de la carte |
non |
|
className |
Nom du Type |
non |
|
subclassName |
Nom du Sous-type |
non |
|
fields |
Nom des champs séparés par le caractère ";" |
non |
En sortie
Objets (findObjectsResult)
paramètre | type | min/max | description |
---|---|---|---|
id |
string |
0/1 |
Identifiant des objets |
objects |
array (objectInfo) |
0/illimité |
Objets |
Objets Infos (objectInfo)
paramètre | type | min/max | description |
---|---|---|---|
fields |
string |
0/illimité |
Attributs des champs |
WSDL
http://<server>
/<webapp>
/api/ws/findObjectsService?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:findObjectsUnder> <!--Optional:--> <srs>epsg:4326</srs> <!--Optional:--> <geometries>1,-1.80280,47.15524</geometries> <!--Optional:--> <topology></topology> <!--Optional:--> <mapName>Loire.gcm</mapName> <!--Optional:--> <className>Unité administrative</className> <!--Optional:--> <subclassName>Commune</subclassName> <!--Optional:--> <fields>Nom;Population</fields> </sch:findObjectsUnder> </soapenv:Body> </soapenv:Envelope>
Réponse
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:findObjectsUnderResponse xmlns:ns2="http://geoconcept.com/gc/schemas"> <FindObjectsResult> <status>OK</status> <results> <id>1</id> <objects> <object> <fields> <field>Port-Saint-Père</field> <field>2724</field> </fields> </object> </objects> </results> </FindObjectsResult> </ns2:findObjectsUnderResponse> </soap:Body> </soap:Envelope>
Requête
Requête JSON
http://<server>/<webapp>/api/lbs/find/under.json?srs=epsg:4326&geometries=1,-1.80280,47.15524&mapName=Loire.gcm&className=Unit%C3%A9%20administrative&subclassName=Commune&fields=Nom;Population
Requête JSON-P
http://<server>/<webapp>/api/lbs/find/under.xml?srs=epsg:4326&geometries=1,-1.80280,47.15524&mapName=Loire.gcm&className=Unit%C3%A9%20administrative&subclassName=Commune&fields=Nom;Population&callback=myCallback
Requête XML
http://<server>/<webapp>/api/lbs/find/under.xml?srs=epsg:4326&geometries=1,-1.80280,47.15524&mapName=Loire.gcm&className=Unit%C3%A9%20administrative&subclassName=Commune&fields=Nom;Population
Réponse
La réponse est toujours encodée en UTF-8.
Format JSON
{ "message":null, "status":"OK", "results":[ { "id":"1", "objects":[ { "fields":[ "Port-Saint-Père", "2724" ] } ] } ] }
Format JSON-P
myCallback({ "message":null, "status":"OK", "results":[ { "id":"1", "objects":[ { "fields":[ "Port-Saint-Père", "2724" ] } ] } ] } );
Format XML
<findObjectsResults> <status>OK</status> <results> <id>1</id> <objects> <object> <fields> <field>Port-Saint-Père</field> <field>2724</field> </fields> </object> </objects> </results> </findObjectsResults>
Cas d’une réponse trouvée (findObjectsResults/status est OK)
<findObjectsResults> <status>OK</status> <results> <id>1</id> <objects> <object> <fields> <field>Port-Saint-Père</field> <field>2724</field> </fields> </object> </objects> </results> </findObjectsResults>
Absence d’objet sur la position recherché (findObjectsResults/status est OK)
<findObjectsResults> <status>OK</status> <results> <id>1</id> <objects/> </results> </findObjectsResults>
Mauvaise projection / srs (serviceResult/status est ERROR)
<serviceResult> <message> CoordinateTransformEngineException: Coordinate transformation failed </message> <status>ERROR</status> </serviceResult>
Cas, absence d’un argument pour geometries (serviceResult/status est ERROR)
<serviceResult> <message>IllegalArgumentException: Candidate has too few fields : [Ljava.lang.String;@5890d398</message> <status>ERROR</status> </serviceResult>
Cas de la carte non trouvée (serviceResult/status est ERROR)
<serviceResult> <message>ServiceException: getLayerInfo : Error reading map info on Loir.gcm No metadata for this map has been found</message> <status>ERROR</status> </serviceResult>
Cas du Type non trouvé (serviceResult/status est ERROR)
<serviceResult> <message>WebServiceException: Error in finding objects Error on ObjClass</message> <status>ERROR</status> </serviceResult>
Cas du Sous-type non trouvé (serviceResult/status est ERROR)
<serviceResult> <message>WebServiceException: Error in finding objects Error on ObjSubclass</message> <status>ERROR</status> </serviceResult>
Cas de champ non trouvé (serviceResult/status est ERROR)
<serviceResult> <message>WebServiceException: Error in finding objects Error on ObjField</message> <status>ERROR</status> </serviceResult>
- 1. Est-il possible d’utiliser d’autres relations topologiques entre les objets ?
- 2. Comment traiter les cartes avec des encodages non latin ?
- 3. Est-il possible de passer plusieurs geometries lors d’un appel au Web Service?