ArcGis-server jsとdynamicMapServiceLayerを使用してカスタムの動的凡例を作成する


8

地図アプリケーションの構築に使用しているdynamicMapServiceLayerがあります。マップサービスには、setVisibleLayersアクションを使用して切り替えているレイヤーが約10あります。

独自の動的な地図の凡例を作成したいと思います。レイヤーの可視性が切り替えられると、対応する凡例アイテムもhide()/ show()になります

私のmapServerには、凡例のURLに10個の凡例アイテムがあることを除いて、以下のような対応するすべての凡例アイテムを含むページにリンクするURLがあります

http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Petroleum/KGS_OilGasFields_Kansas/MapServer/legend

既存のmapServerから個々の凡例アイテム(名前とシンボル)にアクセスする方法はありますか?凡例の作成に慣れています。凡例ダイアログに追加するレイヤーのシンボルにアクセスする方法を知っている必要があります。

また、DOJOの使用、および純粋なjavascriptとjQueryの使用を避けていることにも言及する必要があります。

回答:


7

REST APIを介してそのサービスにアクセスする場合:

http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Petroleum/KGS_OilGasFields_Kansas/MapServer/legend?f=json&pretty=true

jQuery http://api.jquery.com/jQuery.getJSON/を使用してJSONを 取得できます。そのため、取得したデータから自分で凡例を作成します。

凡例シンボルを追加するには、jQueryを使用してimgを作成し、各凡例アイテムのcontentTypeとimageDataをsrcに挿入して、シンボルをレンダリングします。

/programming/5000710/receive-image-data-as-json-and-injecting-it-into-the-dom/5000778#5000778

理にかなっていますか?


stu ...これは素晴らしいですね。しばらくハックして、それがどうなるか見てみましょう
jotamon

いくつかのこと。1つは、pretty = trueを使用しないでください。これは不要であり、余分なサーバーリソースを使用するためです。2番目に、renderer.infos []。symbolからrender.symbolまたは配列を取得することにより、レイヤーのシンボルを取得できます。しかし、マップの作成者が「SimpleMarkerSymbol」、「SimpleCircleSymbol」などを使用していたことを覚えておいてください
ジム・ウォートン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.