ダイナミックマップサービスをArcGIS Server JavaScript APIマップに追加しています。クエリを実行できるように、各コンポーネントレイヤーとそのフィールドを取得する必要があります。
http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/MapServerにあるサンプルのArcGIS Serverサービスディレクトリを参照してください。
このURLをブラウザーで開くと、使用可能なレイヤー(0、1、2)と各レイヤーのフィールドのリストが表示されます。
JavaScript関数内でプログラムによってフィールドのリストを取得するにはどうすればよいですか?以下のコードスニペットは、レイヤーのエンドポイントを取得する方法を示していますが、フィールドに到達する方法がわかりません。
(1つのオプションは、レイヤーをフィーチャレイヤーとして追加することですが、可能であればこれを避けたいです)。
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フォーラムにクロス投稿)