Estoy agregando un servicio de mapas dinámicos a un mapa de API de JavaScript de ArcGIS Server, y necesito obtener cada capa de componente y sus campos, para poder ejecutar una consulta.
Consulte el directorio de servicios de ejemplo de ArcGIS Server en http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/MapServer
Si abre esta URL en un navegador, puede ver la lista de capas disponibles (0,1,2) y los campos de cada capa .
¿Cómo puedo recuperar la lista de campos mediante programación, dentro de una función de JavaScript? El fragmento de código a continuación muestra cómo recuperar los puntos finales de la capa, pero no puedo ver cómo llegar a los campos.
(Una opción es agregar las capas como Capas de entidades, pero preferiría evitar esto si es posible).
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?
}
});
Gracias, Steve (publicado en el foro de ArcGIS Server )
fuente
Puede que tenga el extremo incorrecto del palo aquí, pero ¿no solo realiza una consulta en la capa en cuestión y obtiene los resultados como un conjunto de resultados? Si lo solicita en json, ¿puede analizar los resultados?
Entonces para esto:
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/1/query?where=STATE_NAME%3D%27Florida%27&f=json
El regreso es:
{"displayFieldName": "STATE_NAME", "fieldAliases": {"STATE_NAME": "STATE_NAME"}, "geometryType": "esriGeometryPolygon", "spaceialReference": {"wkid": 4326}, "fields": [[{" nombre ":" STATE_NAME "," type ":" esriFieldTypeString "," alias ":" STATE_NAME "," length ": 25}]," features ": [{" atributos ": {" STATE_NAME ":" Florida "} , "geometry": {"rings": [[[- - 80.785662408630856,28.785194039580265], ... [-80.5878197219821,24.956376399079556], [- 80.249453677873134,25.354937642313288]]]}}}
(He eliminado la mayor parte de la geometría para facilitar la lectura)
fuente