<\/P>
素晴らしいArcGIS JavaScriptアプリケーションを一生懸命作成しています。いくつかのカスタムツールがあり、検索機能もあるかもしれません。このアプリはかっこいいです<\/EM>。地図上のフィーチャをクリックすると、重要なフィールド情報はすべて表示されます…しかし、値が表示されるべきところに数字が出ていることはありませんか?<\/P><\/P>これは一体何でしょう?その数字は何を意味しているのですか?<\/EM> そこでマップサービスを確認すると、このフィールドにはdomain<\/A>が関連付けられていることがわかります。別のアプリケーションでこのサービスが編集されているのを見て、エディタのattribute inspector<\/A>に正しいdomain値が表示されているのに気づき、どうやってその値を取得するのか頭を悩ませることでしょう。心配しないでください、それらはどこかにあります…どこかに<\/EM>。<\/P><\/P>
var fieldMap = {};featureLayer.on('load', function() { \/\/- レイヤーのフィールドを反復処理 featureLayer.fields.filter(function(x) { return !!x.domain; \/\/- 値をbooleanに強制変換。ここではdomainのみ関心あり }).map(function(x) { \/\/- domainを持つフィールドをマップ fieldMap[x.name] = {}; \/\/- ハッシュテーブル fieldMap[x.name].values = {}; \/\/- domain値を保持 fieldMap[x.name].alias = x.alias; \/\/- 表示用の名前 x.domain.codedValues.map(function(a) { \/\/- codedValuesをマップ fieldMap[x.name].values[a.code] = a.name; \/\/- domain保存 }); });});<\/PRE><\/P>ここで重要なのは、レイヤーのフィールドを反復処理し、コード化された値をキーとしてdomain値を保存することです。これにより次のステップで値の検索が非常に簡単になります。<\/P><\/P>クリック時にポップアップの内容を定義するメソッドがあります。このdomain値のハッシュテーブルを使えば、この作業は簡単になります。<\/P><\/P>function getTextContent(graphic){ \/\/- 属性のキーを取得 \/\/- *注意 - ブラウザによってはshimが必要かもしれません var elems = Object.keys(graphic.attributes).map(function(x) { var attr = graphic.attributes;<\/<X> var field = fieldMap;<\/<X> if (field) { return "<b>" + field.alias + "<\/_b>: " + field.values[attr]; } else { return false; } }).filter(function(x) { return x; }); \/\/- 有効な結果のみ返す return elems.join('<br \/>');}<\/PRE><\/P>このサンプルでは
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.