如何在3D场景中设置图形的z值?

592
3.
跳到解决方案
06-24-2021 06:35上午
FatmaAkdemir
通过
偶然的因素

我们在那个视图上有一个3D SceneGraphicsView和几个graphicoverlay。当用户点击某一类型的图形时,我们想给它优先级。当另一个图形与特定类型重叠时,我们希望选择特定类型的图形。我们如何才能做到这一点呢?如果我们可以给Z值的图形叠加,而不是一个单一的图形,这也可以。

0荣誉
1解决方案

接受的解决方案
JamesBallard1
通过 Esri贡献者
Esri贡献者

@FatmaAkdemir。识别和选择是两个不同的操作。首先进行标识,然后得到标识图形的列表。在此之后,您可以根据某些标准决定要选择哪些图形。

这就是前面的建议发挥作用的地方。如果您将图形组织到不同的叠加层中,并且只识别来自特定叠加层的图形,则可以选择识别的任何/所有图形。这是一个很好的策略来组织“图形选择”和“其他图形”。如果你识别的图形可以在任何覆盖,那么这就变得更加困难。在3D中,与相机的距离会影响图形是否会出现在其他图形的顶部,因此在确定识别操作时根据哪个图形出现在顶部来选择哪个图形时可能会不一致。

https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-graphic.html#setZIndex

在原帖子中查看解决方案

0荣誉
3回复
JamesBallard1
通过 Esri贡献者
Esri贡献者

@FatmaAkdemir。不幸的是,z值并不能帮助确定识别的图形的优先级。z值不会影响标识操作。

你可以做的是将你想要优先级的图形组织成一个图形叠加,然后使用

GeoView::identifyGraphicsOverlay

然后传递那个特定的覆盖以确保你只从那个得到结果。如果您希望在多个图形叠加中穿插图形,并优先识别某些图形而不是其他图形,则会更加棘手。

https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-geoview.html identifyGraphicsO……

https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-geoview.html identifyGraphicsO……

0荣誉
FatmaAkdemir
通过
偶然的因素

谢谢@JamesBallard1,以作答复。我想问的是:当2个或更多的图形重叠,用户点击他们,哪一个会选择鼠标点击?全部还是只有最上面的?我如何确保我想要点击的是在顶部?

0荣誉
JamesBallard1
通过 Esri贡献者
Esri贡献者

@FatmaAkdemir。识别和选择是两个不同的操作。首先进行标识,然后得到标识图形的列表。在此之后,您可以根据某些标准决定要选择哪些图形。

这就是前面的建议发挥作用的地方。如果您将图形组织到不同的叠加层中,并且只识别来自特定叠加层的图形,则可以选择识别的任何/所有图形。这是一个很好的策略来组织“图形选择”和“其他图形”。如果你识别的图形可以在任何覆盖,那么这就变得更加困难。在3D中,与相机的距离会影响图形是否会出现在其他图形的顶部,因此在确定识别操作时根据哪个图形出现在顶部来选择哪个图形时可能会不一致。

https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-graphic.html#setZIndex

0荣誉