概要
ArcGIS Maps SDK for JavaScript の MapImageLayer クラスや FeatureLayer クラスは、 特定の条件に合ったフィーチャのみ表示させるフィルター設定をすることができます。<br実装
MapImageLayer
MapImageLayer クラスの場合、各サブレイヤーの definitionExpression プロパティを使用してレイヤーフィルターを設定しています。
サブレイヤーの取得はマップ サービスに含まれるレイヤーの配列を設定することで実装できます。
サンプルコード:
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/MapImageLayer",
], function(
Map,
MapView,
MapImageLayer
) {
const map = new Map({
basemap: "topo-vector"
});
const view = new MapView({
container: "viewDiv",
map: map,
center: [-120, 37],
zoom: 6
});
// MapImageLayer を作成します
let usaLayer = new MapImageLayer({
url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer"
});
// definitionExpression プロパティに条件式を設定し、サブレイヤーごとにフィルターの条件を設定します。
// id プロパティの番号は、マップ サービスに含まれるサブレイヤーのインデックス番号と対応しています。
usaLayer.sublayers = [{
id: 3,
definitionExpression: "state_name = 'California'"
},
{
id: 0,
definitionExpression: "pop2000 > 100000"
},
]
map.add(usaLayer);
});
FeatureLayer
FeatureLayer クラスの場合、definitionExpression プロパティにフィルターの条件を指定することで実装できます。
サンプルコード:
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/FeatureLayer",
], function(
Map,
MapView,
FeatureLayer
) {
const map = new Map({
basemap: "topo-vector"
});
const view = new MapView({
container: "mapDiv",
map: map,
center: [-120, 37],
zoom: 6
});
// FeatureLayer を作成します
const usaLayer = new FeatureLayer({
url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/3"
});
// フィルターの条件を設定します
usaLayer.definitionExpression = "state_name = 'California'"; // カリフォルニア州を表示
map.add(usaLayer);
});
このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!
このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!