Dodam usługę dynamicznej mapy do mapy ArcGIS Server JavaScript API i muszę zdobyć każdą warstwę komponentu i jej pola, aby móc uruchomić zapytanie.
Zobacz przykładowy katalog usług ArcGIS Server pod adresem http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/MapServer
Jeśli otworzysz ten adres URL w przeglądarce, zobaczysz listę dostępnych warstw (0,1,2) i pola każdej warstwy .
Jak mogę programowo pobrać listę pól w ramach funkcji JavaScript? Poniższy fragment kodu pokazuje, jak pobrać punkty końcowe warstwy, ale nie widzę, jak dostać się do pól.
(Jedną z opcji jest dodanie warstw jako warstw obiektów, ale wolałbym tego unikać, jeśli to możliwe).
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?
}
});
Dzięki, Steve (wysłany na forum ArcGIS Server )
źródło
Mogę mieć niewłaściwy koniec kija tutaj, ale czy nie wykonujesz po prostu zapytania na danej warstwie i odzyskujesz wyniki jako zestaw wyników? Jeśli poprosisz o to w Json, możesz przeanalizować wyniki?
Więc po to:
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Spec special/ESRI_StateCityHighway_USA/MapServer/1/query?where=STATE_NAME%3D%27Florida%27&f=json
Zwrot wynosi:
{„displayFieldName”: „STATE_NAME”, „fieldAliases”: {„STATE_NAME”: „STATE_NAME”}, „geometryType”: „esriGeometryPolygon”, „spatialReference”: {„wkid”: 4326}, „pola”: [{” nazwa „:„ STATE_NAME ”,„ typ ”:„ esriFieldTypeString ”,„ alias ”:„ STATE_NAME ”,„ długość ”: 25}],„ cechy ”: [{„ atrybuty ”: {„ STATE_NAME ”:„ Floryda ”} "geometria": { "pierścieni" [[[- 80.785662408630856,28.785194039580265 ...], [-80.5878197219821,24.956376399079556], [- 80.249453677873134,25.354937642313288]]]}}]}
(Usunąłem większość geometrii, aby ułatwić czytanie)
źródło