外观
事件与高亮问题
约 822 字大约 3 分钟
2026-10-28
矢量对象为什么没有双击事件
回复矢量数据目前只支持滑过、单击、右键三类鼠标事件,没有双击事件。地图(Map)对象有双击事件,可在 EventType 中搜索对应项确认。如何自定义绘制时的删除快捷键
回复以键盘事件为例,按 ESC 键删除上一个绘制点:map.on(mars3d.EventType.keyup, function (e) {
if (e.keyCode === 27) {
graphicLayer._graphic_drawing._positions_draw.pop();
}
});如何监听地图层级与视角的变化
回复没有专门的层级变化事件,只有视角切换变化事件。可监听 cameraMoveEnd 事件,在回调中结合 map.level 判断层级变化。如何监听底图切换
回复监听 imageryLayers 的 layerAdded 事件:map.imageryLayers.layerAdded.addEventListener((...args) => {});地形加载完成对应哪个事件
回复对应 terrainChange 事件。图层参数变更(setOption)如何监听
回复setOption 本身没有配套的监听机制。如果是外部代码调用,可以自行用 layer.fire("事件名") 抛出事件,再在需要的位置通过 layer.on("事件名", fn) 监听。绑定 click 事件后鼠标样式为什么会自动变化
回复这是代码内部自动处理的:绑定 click 事件后鼠标会自动变为手势样式,内部调用了 map.setCursor 实现。如何通过代码触发矢量高亮
回复两种方式,矢量级与图层级:// 矢量级:开启与关闭高亮
graphic.openHighlight({
silhouette: true,
silhouetteColor: "#00ffff",
silhouetteSize: 8,
});
graphic.closeHighlight();
// 图层级:指定高亮某个矢量
map.openHighlight(graphic);如何实现列表与地图的联动高亮
回复使用 map.openHighlight(graphic) 高亮指定矢量,并配合 graphic.flyTo 定位到该对象。单体化面同理,由列表点击事件触发即可。倾斜摄影如何整体高亮
回复对倾斜摄影数据配置 highlight 属性即可实现整体高亮。鼠标移入矢量时如何实现高亮
回复参考 entity 相关示例中的 hover 处理方式。如何实现绕点飞行
回复使用 RotatePoint(绕点旋转)对象实现。如何绑定第一人称视角跟随目标
回复单击车辆等运动目标后,构造飞行路线对象进行绑定;或直接设置 map.trackedEntity = graphic 锁定跟随该对象。如何按时间段控制对象的显示隐藏
回复使用属性机制实现:position 传入 SampledPositionProperty,按时间采样控制对象位置,从而间接控制对象的显隐。可参考开发教程中 property 属性机制章节。如何获取某一时刻模型的方向
回复const position = mars3d.PointUtil.getPositionValue(
pathEntity.position,
map.clock.currentTime
);如果需要获取当前时刻的位置,直接取 pathEntity.positionsShow 即可。
