【问题标题】:How can I change the color of a polygon on mouse hover in Cesium?如何在铯中鼠标悬停时更改多边形的颜色?
【发布时间】:2022-01-04 21:45:05
【问题描述】:

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

我用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。它具有内联 cmets,例如 // For highlighting on mouseover in Sandcastle.

但它没有按预期工作。

铯有没有办法做到这一点?还是我错过了什么?

【问题讨论】:

  • "// 用于在 Sandcastle 鼠标悬停时突出显示。"用于在沙堡cesiumjs.org/Cesium/Apps/Sandcastle/… 的左侧突出显示多边形代码:(
  • “我试过这个...”你能告诉我们你的代码吗?
  • @dgiugg,我执行此操作的步骤: 1. 获取拾取多边形的属性和坐标。 2. 移除选取的多边形。 3.用我在步骤1中得到的属性和坐标重新绘制不同颜色的多边形。
  • TY,但提供您的代码(通过编辑问题)会更清晰!两个反对意见: 1. 你不需要删除多边形并显示一个新的,你可以使用polygon.material.uniforms.color。 2.你说问题是当你用鼠标离开多边形时。也许这是一个事件处理程序问题。但是您需要向我们展示相应的代码,以帮助我们识别问题! ;)

标签: javascript cesium


【解决方案1】:

查看 Sandcastle 中的 "Picking" example,然后点击“下钻采摘”按钮。

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

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

【讨论】:

  • 谢谢!!正如你所说“有不同的方法来完成你所描述的”。你能总结一下其中的一些吗?
猜你喜欢
  • 2020-07-11
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 2016-02-01
相关资源
最近更新 更多