场景视图- hitTest

尝试一下在线预览

此示例展示了如何使用  hitTest  为每次单击交互查找鼠标指针下的所有对象。 从版本 4.11 开始,SceneView 中的 hitTest 返回一个数组,该数组包含与这些图层中的鼠标位置相交的所有对象:

如果图形具有 非重叠 IconSymbol3DLayer 符号,则从  hitTest  将仅返回第一个图形。

对于每个对象, HitTestResult  包含图形、相机到对象的距离以及对应的地图点。 还提供有关地面(如果有的话)的位置信息。

启动 hitTest:

         
1
2
3
4
5
6
7
8
9
view.on("immediate-click", (event) => {
  view.hitTest(event)
  .then((hitTestResult) => {
    console.log(hitTestResult)
  })
  .catch((error) => {
    console.error(error);
  });
};

 HitTestResult 实例:

                                        
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{
  "screenPoint": {
    "x": 1110.666748046875,
    "y": 704.6666870117188
  },
  "results": [
    {
      "graphic": {
        "geometry": null,
        "symbol": null,
        "attributes": {
          "OBJECTID": 23259,
          "CNSTRCT_YR": 1950
        }
      },
      "mapPoint": {
        "spatialReference": {
          "latestWkid": 3857,
          "wkid": 102100
        },
        "x": -8237578.175357298,
        "y": 4972677.452421391,
        "z": 29.343255893327296
      },
      "distance": 6033.217135564263
    }
  ],
  "ground": {
    "mapPoint": {
      "spatialReference": {
        "latestWkid": 3857,
        "wkid": 102100
      },
      "x": -8237575.894557083,
      "y": 4972679.5403643185,
      "z": 6.689946555570758
    },
    "distance": 6055.99127013477
  }
}

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