从 FeatureLayerView 查询要素

尝试一下在线预览

FeatureLayerView 提供对视图中显示的图层要素的访问。此示例使用 whenLayerView() 方法在创建 FeatureLayer 的图层视图后获取该图层视图。

   
1
2
3
view.whenLayerView(featureLayer).then(function(layerView) {
  // do something with the layerView
});

图层视图可用后,您需要在图层视图的更新属性上设置监视。在执行查询之前,必须等待视图中的所有要素完成更新。

                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
layerView.watch("updating", function(value) {
  if (!value) {
    // wait for the layer view to finish updating

    // get all the features available for drawing.
    layerView
      .queryFeatures({
        geometry: view.extent,
        returnGeometry: true
      })
      .then(function(results) {
        // do something with the resulting graphics
        graphics = results.features;
      });
  }
});

访问图层视图可用的图形后,可以将它们用于各种目的,例如创建下拉菜单或列表,就像本示例一样。创建列表后,您可以侦听每个列表节点上的单击事件,并在单击相应节点时在要素位置打开弹出窗口。

    
1
2
3
4
view.popup.open({
  features: [result],
  location: result.geometry.centroid
});

虽然弹出窗口通常与要素图层一起使用,但您也可以显示弹出窗口以响应查询或一些不涉及图形或要素的其他操作。例如,当用户单击表行或列表时,可以在视图上显示弹出窗口。此示例中生成的弹出窗口显示在邮政编码面的中心,其内容和标题将从 features 参数填充。 

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.