如何使用 ArcGIS Esri 地图中的自定义条件过滤要素图层属性?

How to filter a feature layer attributes using custom criteria in ArcGIS Esri map?

我在 Angular 应用程序内将一个地块图层集成到我的 Esri 地图中。现在我想过滤并仅显示满足以下条件的特定地块。

building_area等于0,Number_of_units同样等于0。

如何根据这些条件筛选要素图层?

.ts

    const parcelLayer = new FeatureLayer({
                url: this.featureLayerUrl,
                });
    
       const esriLayers = [parcelLayer,ageLayer];
    
            const map = new Map({
              basemap: 'topo-vector',
              layers: esriLayers
          });
            const view = new MapView({
              container,
              map: map,
              zoom: 4,
              center: [-97.63, 38.34],
            });

      const createEsriPopupTemplate = function(layer) {
      const config = {
        fields: layer.fields.map(field => (
            {
                name: field.name,
                type: field.type,
                alias: formatName(field.alias)
            }
        )),
        title: formatName(layer.title)
    };
    return popupUtils.createPopupTemplate(config);
  }
    
     for (const layer of esriLayers) {
        view.whenLayerView(layer).then(function (layerView) {
            const popupTemplate = createEsriPopupTemplate(layer)
            if (!popupTemplate) {
                console.log("FeatureLayer has no fields.")
            } else {
                layer.popupTemplate = popupTemplate;
            }
        });
      }

您可以使用 FeatureLayer definitionExpression 属性 来实现您的目标。

ArcGIS JS API - FeatureLayer definitionExpression

此 属性 允许您过滤将向服务器请求的要素,并因此显示在地图中。这是一种非常强大的过滤层数据以进行分析、查看和性能的方法。

在你的情况下这应该有效,

const parcelLayer = new FeatureLayer({
    url: this.featureLayerUrl,
    definitionExpression: "building_area=0 AND Number_of_units=0"
});