如何在 Cesium 中鼠标悬停时更改多边形的颜色?

How can I change the color of a polygon on mouse hover in Cesium?

我需要在鼠标悬停时突出显示多边形,并在鼠标移出多边形后恢复其颜色和外观。

我尝试使用 ScreenSpaceEventType.MOUSE_MOVE 事件处理程序进行此操作,但在这种情况下,当鼠标移出多边形时,我无法恢复外观。

我试过了https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Apps/Sandcastle/gallery/Polygons.html (http://cesiumjs.org/Cesium/Apps/Sandcastle/gallery/polygons.html)

Sancastle 中的此文件。它有像 // For highlighting on mouseover in Sandcastle.

这样的内嵌注释

但它没有按预期工作。

在cesium中有什么方法可以做到这一点吗?还是我遗漏了什么?

查看 Sandcastle 中的 "Picking" example,然后单击显示 "Drill-down picking."

的按钮

有多种方法可以完成您所描述的内容,但上面的演示使用了 Cesium CallbackProperty 并提供了一个回调,该回调将 return 多边形的正常颜色或高亮颜色,取决于 "picked" 状态。请注意,使用此方法可以同时拾取多个重叠的多边形。

然后鼠标移动处理程序只控制 pickedEntities 列表的成员资格,多边形会根据它们在该列表中的成员资格为自己选择合适的颜色。