Explorar el Código

add layer mouse event

tags/2.4.1
Caven Chen hace 4 años
padre
commit
c6e988fefb
Se han modificado 2 ficheros con 23 adiciones y 2 borrados
  1. 3
    1
      modules/event/EventType.js
  2. 20
    1
      modules/event/type/MouseEvent.js

+ 3
- 1
modules/event/EventType.js Ver fichero

@@ -62,7 +62,9 @@ const LayerGroupEventType = BaseEventType

const LayerEventType = {
...BaseEventType,
CLICK: Cesium.ScreenSpaceEventType.LEFT_CLICK
CLICK: Cesium.ScreenSpaceEventType.LEFT_CLICK,
RIGHT_CLICK: Cesium.ScreenSpaceEventType.RIGHT_CLICK,
DB_CLICK: Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK
}

const TrackEventType = {

+ 20
- 1
modules/event/type/MouseEvent.js Ver fichero

@@ -228,15 +228,25 @@ class MouseEvent extends Event {
let event = undefined
let targetInfo = this._getTargetInfo(mouseInfo.target)
let overlay = targetInfo?.overlay
let layer = targetInfo?.layer
// get Overlay Event
if (overlay?.overlayEvent) {
event = overlay.overlayEvent.getEvent(type)
}

// get Layer Event
if ((!event || event.numberOfListeners === 0) && layer?.layerEvent) {
event = layer.layerEvent.getEvent(type)
}

// get Viewer Event
if (!event || event.numberOfListeners === 0) {
if (
(!event || event.numberOfListeners === 0) &&
this._viewer?.viewerEvent
) {
event = this._viewer.viewerEvent.getEvent(type)
}

event &&
event.numberOfListeners > 0 &&
event.raiseEvent({
@@ -249,11 +259,20 @@ class MouseEvent extends Event {
let drillInfos = this._getDrillInfos(mouseInfo.windowPosition)
drillInfos.forEach(drillInfo => {
let dillOverlay = drillInfo?.overlay
let dillLayer = drillInfo?.layer
if (
dillOverlay?.overlayId !== overlay.overlayId &&
dillOverlay?.overlayEvent
) {
// get Overlay Event
event = dillOverlay.overlayEvent.getEvent(type)
// get Layer Event
if (
(!event || event.numberOfListeners === 0) &&
dillLayer?.layerEvent
) {
event = dillLayer.layerEvent.getEvent(type)
}
event &&
event.numberOfListeners > 0 &&
event.raiseEvent({

Cargando…
Cancelar
Guardar