Estou adicionando um Serviço de Mapa Dinâmico a um mapa da API JavaScript do ArcGIS Server e preciso me apossar de cada camada de componente e seus campos, para que eu possa executar uma consulta.
Veja o diretório de serviços do ArcGIS Server de amostra em http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/MapServer
Se você abrir esse URL em um navegador, poderá ver a lista de camadas disponíveis (0,1,2) e os campos de cada camada .
Como posso recuperar a lista de campos programaticamente, em uma função JavaScript? O trecho de código abaixo mostra como recuperar os pontos finais da camada, mas não consigo ver como chegar aos campos.
(Uma opção é adicionar as camadas como Camadas de recursos, mas prefiro evitar isso, se possível).
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?
}
});
Obrigado, Steve (postado no fórum do ArcGIS Server )
fonte
Talvez eu esteja com o lado errado do stick aqui, mas você não realiza uma consulta na camada em questão e obtém os resultados novamente como um conjunto de resultados? Se você solicitar em json, poderá analisar os resultados?
Então, para isso:
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/1/query?where=STATE_NAME%3D%27Florida%27&f=json
O retorno é:
{"displayFieldName": "STATE_NAME", "fieldAliases": {"STATE_NAME": "STATE_NAME"}, "geometryType": "esriGeometryPolygon", "spatialReference": {"wkid": 4326}, "fields": [{" nome ":" STATE_NAME "," tipo ":" esriFieldTypeString "," alias ":" STATE_NAME "," comprimento ": 25}]," features ": [{" attribute ": {" STATE_NAME ":" Florida "} , "geometry": {"rings": [[[- 80.785662408630856,28.785194039580265]], ... [-80.5878197219821,24.956376399079556], [- 80.249453677873134,25.354937642313288]]]}}]]
(Removi a maior parte da geometria para facilitar a leitura)
fonte