FeatureLayer 中的基本查询

尝试一下在线预览

此示例演示如何使用 queryFeatures() 方法通过旧金山的犯罪数据在 FeatureLayer 上进行查询。这允许用户设置查询参数,并通过相应的弹出窗口显示查询的响应。

工作原理

当应用程序启动时,UI 将显示查询选项,可以是基本查询,也可以是按距离查询。根据用户在地图上单击的位置调用查询。在应用程序中单击某个位置后,将调用此函数。FeatureLayer 有许多方法用于对其数据执行查询。queryFeatures() 方法允许用户基于输入查询对象查询 FeatureLayer 中的要素。此方法返回一个可以使用 .then() 访问的 FeatureSet Promise

                    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function queryFeatures(screenPoint) {
  const point = view.toMap(screenPoint);
  layer.queryFeatures({
    //query object
    geometry: point,
    spatialRelationship: "intersects",
    returnGeometry: false,
    outFields: ["*"],
  })
  .then((featureSet) => {
    // set graphic location to mouse pointer and add to mapview
    pointGraphic.geometry = point;
    view.graphics.add(pointGraphic);
    // open popup of query result
    view.popup.open({
      location: point,
      features: featureSet.features
    });
  });
}

如果用户选择“按距离查询”,则两个参数(距离单位)将添加到作为 layer.queryFeatures() 的输入的查询对象中,返回要素中距离用户单击地图的位置 0.5 英里以内的任何项目。突出显示的第一个要素不一定与最初单击的要素相同,但可以通过单击弹出窗口底部的箭头来查看查询生成的每个要素。

         
1
2
3
4
5
6
7
8
9
layer.queryFeatures({
  geometry: point,
  // distance and units will be null if basic query selected
  distance: 0.5,
  units: "miles",
  spatialRelationship: "intersects",
  returnGeometry: false,
  outFields: ["*"],
})

另请参阅从 FeatureLayer 查询要素

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