铯 - 点击后,将地图指向标准标记,并带有图标

时间:2017-12-28 16:19:20

标签: javascript maps cesium

我试图模仿在Cesium中使用Waze LiveMap(https://www.waze.com/livemap)看到的功能。单击某个点时,会将其转换为带有图标的标记。

我尝试了几个不同的事情,取得了不同程度的成功,而我的智慧结束了。有没有人对我如何进行有一个很好的建议?

1 个答案:

答案 0 :(得分:0)

有几种不同的方法可以做到这一点,一些是高级别的,一些是低级别的。高级别是最简单的,所以我将从那里开始。当Cesium Viewer自己的选择发生变化时,它会触发一个名为selectedEntityChanged的事件,您可以将其连接起来以打开和关闭切换广告牌显示标志。

Here's a demo。对于这个演示,我采用了原始的map pins demo并添加了一些代码:我在开始时关闭了所有广告牌的show标志,我添加了点来代替现在隐藏的广告牌,我添加了以下代码块,以便在选中时切换广告牌显示标志,如下所示:

var lastSelectedPin;
viewer.selectedEntityChanged.addEventListener(function(newEntity) {
    if (lastSelectedPin && lastSelectedPin.billboard) {
        lastSelectedPin.billboard.show = false;
    }
    lastSelectedPin = newEntity;
    if (lastSelectedPin && lastSelectedPin.billboard) {
        lastSelectedPin.billboard.show = true;
    }
});

这使用Cesium Viewer自己的选择系统,但切换广告牌显示标志在选中时显示,在取消选择时消失。

或者,您可以深入了解Cesium的较低级别以获得更好的控制,但学习曲线会更长。 Picking Demo展示了几种类型的拣货操作,包括scene.pickscene.drillPickcamera.pickEllipsoid,它们提供了各种方法来检测特定屏幕位置中存在的内容。通常会响应鼠标移动或点击或触摸/指针事件调用这些函数,以查看用户正在与之交互的内容。