尝试一下在线预览此示例展示了如何使用 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
}
}