Ich füge einen dynamischen Map-Service zu einer ArcGIS Server-JavaScript-API-Map hinzu und muss jeden Komponenten-Layer und seine Felder erfassen, damit ich eine Abfrage ausführen kann.
Weitere Informationen finden Sie im Beispielverzeichnis für ArcGIS Server-Dienste unter http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/MapServer
Wenn Sie diese URL in einem Browser öffnen, sehen Sie die Liste der verfügbaren Ebenen (0,1,2) und die Felder der einzelnen Ebenen .
Wie kann ich die Liste der Felder innerhalb einer JavaScript-Funktion programmgesteuert abrufen? Das folgende Codefragment zeigt, wie die Ebenenendpunkte abgerufen werden, aber ich kann nicht sehen, wie ich zu den Feldern komme.
(Eine Möglichkeit besteht darin, die Ebenen als Feature-Ebenen hinzuzufügen, aber ich würde dies nach Möglichkeit lieber vermeiden.)
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?
}
});
Vielen Dank, Steve (im ArcGIS Server-Forum veröffentlicht )
quelle
Ich habe hier möglicherweise das falsche Ende des Sticks, aber führen Sie nicht einfach eine Abfrage für die betreffende Ebene durch und erhalten die Ergebnisse als Ergebnismenge zurück? Wenn Sie in json danach fragen, können Sie die Ergebnisse analysieren?
Also dafür:
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/1/query?where=STATE_NAME%3D%27Florida%27&f=json
Die Rückkehr ist:
{"displayFieldName": "STATE_NAME", "fieldAliases": {"STATE_NAME": "STATE_NAME"}, "GeometryType": "esriGeometryPolygon", "SpatialReference": {"wkid": 4326}, "fields": [{" Name ":" STATE_NAME "," Typ ":" esriFieldTypeString "," Alias ":" STATE_NAME "," Länge ": 25}]," Features ": [{" Attribute ": {" STATE_NAME ":" Florida "} , "Geometrie": {"Ringe": [[[- 80.785662408630856,28.785194039580265], ... [-80.5878197219821,24.956376399079556], [- 80.249453677873134,25.354937642313288]]}}
(Ich habe den größten Teil der Geometrie entfernt, um das Lesen zu erleichtern.)
quelle