J'ajoute un service de carte dynamique à une carte d'API JavaScript ArcGIS Server, et je dois récupérer chaque couche de composant et ses champs, afin de pouvoir exécuter une requête.
Voir l'exemple de répertoire de services ArcGIS Server à http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/MapServer
Si vous ouvrez cette URL dans un navigateur, vous pouvez voir la liste des couches disponibles (0,1,2) et les champs de chaque couche .
Comment récupérer la liste des champs par programmation, au sein d'une fonction JavaScript? L'extrait de code ci-dessous montre comment récupérer les points de terminaison de la couche, mais je ne vois pas comment accéder aux champs.
(Une option consiste à ajouter les couches en tant que couches d'entités, mais je préférerais éviter cela si possible).
var url = "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/MapServer/";
var dynLayer = new esri.layers.ArcGISDynamicMapServiceLayer(url);
map.addLayer(dynLayer);
dojo.connect(dynLayer, "onLoad", function() {
var infos = dynLayer.layerInfos;
for (var i = 0; i <= infos.length - 1; i++) {
var layerId = infos[i].id;
var restEndPoint = url + layerId;
//restEndPoint is the layer's URL - how can I retrieve its fields?
}
});
Merci, Steve (mis en ligne sur le forum ArcGIS Server )
la source
J'ai peut-être la mauvaise extrémité du bâton ici, mais ne vous contentez-vous pas d'effectuer une requête sur la couche en question et de récupérer les résultats sous forme de jeu de résultats? Si vous le demandez dans json, vous pouvez analyser les résultats?
Donc pour ça:
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/1/query?where=STATE_NAME%3D%27Florida%27&f=json
Le retour est:
{"displayFieldName": "STATE_NAME", "fieldAliases": {"STATE_NAME": "STATE_NAME"}, "geometryType": "esriGeometryPolygon", "spatialReference": {"wkid": 4326}, "fields": [{"" nom ":" STATE_NAME "," type ":" esriFieldTypeString "," alias ":" STATE_NAME "," longueur ": 25}]," features ": [{" attributs ": {" STATE_NAME ":" Florida "} , "géométrie": {"anneaux": [[[- 80.785662408630856,28.785194039580265], ... [-80.5878197219821,24.956376399079556], [- 80.249453677873134,25.354937642313288]]]}}]}
(J'ai supprimé la plupart de la géométrie pour en faciliter la lecture)
la source