Я добавляю сервис динамической карты на карту JavaScript API ArcGIS Server, и мне нужно получить доступ к каждому компонентному слою и его полям, чтобы я мог выполнить запрос.
См. Образец каталога сервисов ArcGIS Server по адресу http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/MapServer.
Если вы откроете этот URL в браузере, вы увидите список доступных слоев (0,1,2) и поля каждого слоя .
Как я могу получить список полей программно, внутри функции JavaScript? Фрагмент кода ниже показывает, как получить конечные точки слоя, но я не вижу, как добраться до полей.
(Один из вариантов - добавить слои как Feature Layers, но я бы предпочел избежать этого, если это возможно).
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?
}
});
Спасибо, Стив (опубликовано на форуме ArcGIS Server )
источник
У меня здесь может быть неправильный конец флешки, но разве вы не выполнили запрос на соответствующем слое и вернули результаты в виде набора результатов? Если вы спросите об этом в JSON, вы можете проанализировать результаты?
Итак, для этого:
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/1/query?where=STATE_NAME%3D%27Florida%27&f=json
Возврат:
{ "DisplayFieldName": "STATE_NAME", "FieldAliases": { "STATE_NAME": "STATE_NAME"}, "geometryType": "esriGeometryPolygon", "spatialReference": { "wkid": 4326}, "полей": [{» название ":" STATE_NAME», "типа": "esriFieldTypeString", "псевдоним": "STATE_NAME", "длина": 25}], "особенности": [{ "атрибуты": { "STATE_NAME": "Флорида"} , "geometry": {"rings": [[[- 80.785662408630856,28.785194039580265], ... [-80.5878197219821,24.956376399079556], [- 80.249453677873134,25.354937642313288]]]}}]]}
(Я удалил большую часть геометрии, чтобы было легче читать)
источник