如何根据 ArcGis 要素图层中的多个图形几何过滤数据?
How do I filter data based on multiple Graphic geometries in ArcGis Feature layer?
这是我的代码。
let query = layer.createQuery();
query.geometry = geometry_here;
query.outFields = ["*"];
query.returnGeometry = true;
layer.queryFeatures(query).then((result) => {
console.log('result of principle transmission layer', result);
// i get filtered result here but i want to apply direct on layer
});
我只能通过这种方式获取过滤器数据,但我想在图层上应用过滤器。
您需要使用 FeatureLayerView.filter which will require some additional wiring when adding the FeatureLayer to the map I'm assuming youa re using a MapView though similar functionality exists for scenes. You have a large number of options in defining the spatial relationship of the filter. See the documentation on the spatialRelationship 属性 的 FeatureFilter
const view = new MapView({
container: "sceneDiv",
map: map,
center: [-73.95, 40.702],
zoom: 13,
padding: {
right: 300
}
});
var layer = new FeatureLayer(url);
map.add(layer);
view.whenLayerView(layer)
.then(function(layerView) {
// The layerview for the layer is available here
featureLayerView.filter = new FeatureFilter({
geometry: geometry_here,
spatialRelationship: "contains"
});
})
.catch(function(error) {
// An error occurred during the layerview creation
});
这是我的代码。
let query = layer.createQuery();
query.geometry = geometry_here;
query.outFields = ["*"];
query.returnGeometry = true;
layer.queryFeatures(query).then((result) => {
console.log('result of principle transmission layer', result);
// i get filtered result here but i want to apply direct on layer
});
我只能通过这种方式获取过滤器数据,但我想在图层上应用过滤器。
您需要使用 FeatureLayerView.filter which will require some additional wiring when adding the FeatureLayer to the map I'm assuming youa re using a MapView though similar functionality exists for scenes. You have a large number of options in defining the spatial relationship of the filter. See the documentation on the spatialRelationship 属性 的 FeatureFilter
const view = new MapView({
container: "sceneDiv",
map: map,
center: [-73.95, 40.702],
zoom: 13,
padding: {
right: 300
}
});
var layer = new FeatureLayer(url);
map.add(layer);
view.whenLayerView(layer)
.then(function(layerView) {
// The layerview for the layer is available here
featureLayerView.filter = new FeatureFilter({
geometry: geometry_here,
spatialRelationship: "contains"
});
})
.catch(function(error) {
// An error occurred during the layerview creation
});