Как отфильтровать данные на основе нескольких графических геометрий в слое ArcGis Feature? - PullRequest
1 голос
/ 11 июня 2019

Вот мой код.

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
});

Я получаю данные фильтра только таким способом, но я хочу применить фильтр к слою.

1 Ответ

1 голос
/ 11 июня 2019

Вам необходимо использовать FeatureLayerView.filter , который потребует некоторой дополнительной проводки при добавлении FeatureLayer на карту. Я предполагаю, что вы используете MapView, хотя аналогичные функции существуют для сцен.У вас есть большое количество опций в определении пространственных отношений фильтра.См. Документацию по свойству atialRelationship для 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
    });
...