Pārlūkot izejas kodu

1.修改鼠标事件的类型 ,2. 添加覆盖物的鼠标移除和移入的事件

tags/1.5.2
Caven Chen pirms 5 gadiem
vecāks
revīzija
f97c4d4ab0

+ 7
- 0
CHANGE.md Parādīt failu

@@ -1,5 +1,12 @@
# 更新

## 1.5.2

### 2020-5-15

> 1. 修改鼠标事件的类型
> 2. 添加覆盖物的鼠标移除和移入的事件

## 1.5.1

### 2020-5-12

+ 10
- 10
dist/dc.base.min.js
Failā izmaiņas netiks attēlotas, jo tās ir par lielu
Parādīt failu


+ 1
- 1
dist/dc.core.min.js
Failā izmaiņas netiks attēlotas, jo tās ir par lielu
Parādīt failu


+ 1
- 1
package.json Parādīt failu

@@ -1,6 +1,6 @@
{
"name": "@dvgis/dc-sdk",
"version": "1.5.1",
"version": "1.5.2",
"description": " The SDK is a secondary development based on the open source project Cesium, which optimizes some operations of Cesium and enables developers to quickly develop 3D applications through the framework.",
"main": "index.js",
"repository": "https://github.com/Digital-Visual/dc-sdk.git",

+ 1
- 1
src/base/index.js Parādīt failu

@@ -2,7 +2,7 @@
* @Author: Caven
* @Date: 2020-04-22 09:44:30
* @Last Modified by: Caven
* @Last Modified time: 2020-05-12 19:58:35
* @Last Modified time: 2020-05-15 09:00:52
*/

import { initMixin, initUse } from './global-api'

+ 7
- 3
src/core/Loader.Base.js Parādīt failu

@@ -2,7 +2,7 @@
* @Author: Caven
* @Date: 2020-05-09 13:19:53
* @Last Modified by: Caven
* @Last Modified time: 2020-05-12 09:27:35
* @Last Modified time: 2020-05-15 09:00:29
*/

import { DomUtil, Util } from './utils'
@@ -10,12 +10,13 @@ import { MouseEventType, SceneEventType, Event } from './event'
import { Layer, LayerType } from './layer'
import { Overlay, OverlayType } from './overlay'
import ImageryType from './imagery/ImageryType'
import WidgetType from './widget/WidgetType'
import State from './state/State'
import Position from './position/Position'
import Transform from './transform/Transform'
import Parse from './parse/Parse'

DC.mixin({
const base = {
DomUtil,
Util,
State,
@@ -25,6 +26,7 @@ DC.mixin({
OverlayType,
MouseEventType,
SceneEventType,
WidgetType,
Layer,
Overlay,
Position,
@@ -32,4 +34,6 @@ DC.mixin({
T: Transform,
Parse,
P: Parse
})
}

DC.mixin(base)

+ 7
- 5
src/core/Loader.js Parādīt failu

@@ -2,7 +2,7 @@
* @Author: Caven
* @Date: 2019-12-27 17:18:52
* @Last Modified by: Caven
* @Last Modified time: 2020-05-12 00:45:45
* @Last Modified time: 2020-05-15 09:01:23
*/

import ImageryLayerFactory from './imagery/ImageryLayerFactory'
@@ -40,10 +40,11 @@ Cesium.Math.distance = distance
Cesium.Math.heading = heading
Cesium.Math.isBetween = isBetween

DC.mixin({
const core = {
ImageryLayerFactory,
TerrainFactory,
Viewer,
World: Viewer,
GeoJsonLayer,
HtmlLayer,
LabelLayer,
@@ -58,7 +59,8 @@ DC.mixin({
Polyline,
Polygon,
Model,
Tileset
})
Tileset,
Math: Cesium.Math
}

DC.Math = Cesium.Math
DC.mixin(core)

+ 22
- 4
src/core/event/EventType.js Parādīt failu

@@ -2,7 +2,7 @@
* @Author: Caven
* @Date: 2020-04-10 17:02:28
* @Last Modified by: Caven
* @Last Modified time: 2020-05-11 23:20:10
* @Last Modified time: 2020-05-15 13:46:18
*/

const { Cesium } = DC.Namespace
@@ -19,14 +19,23 @@ const MouseEventType = {
MOUSE_MOVE: Cesium.ScreenSpaceEventType.MOUSE_MOVE,
WHEEL: Cesium.ScreenSpaceEventType.WHEEL,
MOUSE_OVER: 'mouseover',
MOUSE_OUT: 'mouseout'
MOUSE_OUT: 'mouseout',
DRAG_START: 'dragStart',
DRAG_END: 'dragEnd',
EDIT_START: 'editStart',
EDIT_END: 'editEnd'
}

const ViewerEventType = {
ADD_LAYER: 'addLayer',
REMOVE_LAYER: 'removeLayer',
ADD_EFFECT: 'addEffect',
REMOVE_EFFECT: 'removeEffect'
REMOVE_EFFECT: 'removeEffect',
CLICK: Cesium.ScreenSpaceEventType.LEFT_CLICK,
RIGHT_CLICK: Cesium.ScreenSpaceEventType.RIGHT_CLICK,
DB_CLICK: Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK,
MOUSE_MOVE: Cesium.ScreenSpaceEventType.MOUSE_MOVE,
WHEEL: Cesium.ScreenSpaceEventType.WHEEL
}

const SceneEventType = {
@@ -44,7 +53,16 @@ const LayerEventType = {
}

const OverlayEventType = {
...baseEventType
...baseEventType,
CLICK: Cesium.ScreenSpaceEventType.LEFT_CLICK,
RIGHT_CLICK: Cesium.ScreenSpaceEventType.RIGHT_CLICK,
DB_CLICK: Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK,
MOUSE_OVER: 'mouseover',
MOUSE_OUT: 'mouseout',
DRAG_START: 'dragStart',
DRAG_END: 'dragEnd',
EDIT_START: 'editStart',
EDIT_END: 'editEnd'
}

export {

+ 42
- 4
src/core/event/MouseEvent.js Parādīt failu

@@ -2,7 +2,7 @@
* @Author: Caven
* @Date: 2019-12-31 16:58:31
* @Last Modified by: Caven
* @Last Modified time: 2020-05-11 22:35:29
* @Last Modified time: 2020-05-15 14:16:56
*/

import { MouseEventType } from './EventType'
@@ -17,6 +17,7 @@ class MouseEvent extends Event {
constructor(viewer) {
super()
this._viewer = viewer
this._selected = undefined
this._setInputAction()
this.on(MouseEventType.CLICK, this._clickHandler, this)
this.on(MouseEventType.DB_CLICK, this._dbClickHandler, this)
@@ -71,6 +72,30 @@ class MouseEvent extends Event {
}
}

/**
* Gets the Overlay id
* @param {*} target
*/
_getOverlayId(target) {
let overlayId = undefined

/**
* Entity
*/
if (target && target.id && target.id instanceof Cesium.Entity) {
overlayId = target.id.overlayId
}

/**
* Cesium3DTileFeature
*/
if (target && target instanceof Cesium.Cesium3DTileFeature) {
overlayId = target.tileset.overlayId
}

return overlayId
}

/**
*
* Gets the target information for the mouse event
@@ -116,21 +141,22 @@ class MouseEvent extends Event {
* @param {*} mouseInfo
*
*/
_raiseEvent(type, mouseInfo = {}) {
_raiseEvent(type, mouseInfo = {}, callback) {
let event = undefined
let targetInfo = this._getTargetInfo(mouseInfo.target)
let overlay = targetInfo.overlay
if (overlay && overlay.overlayEvent) {
event = overlay.overlayEvent.getEvent(type)
} else {
event = this._viewer.viewerEvent.getEvent(type)
}
// stopPropagation
!event && (event = this._viewer.viewerEvent.getEvent(type))
event &&
event.numberOfListeners > 0 &&
event.raiseEvent({
...targetInfo,
...mouseInfo
})
callback && callback()
}

/**
@@ -188,6 +214,18 @@ class MouseEvent extends Event {
let mouseInfo = this._getMouseInfo(movement.endPosition)
this._viewer.canvas.style.cursor = mouseInfo.target ? 'pointer' : 'default'
this._raiseEvent(MouseEventType.MOUSE_MOVE, mouseInfo)

// add event for overlay
if (
!this._selected ||
this._getOverlayId(this._selected.target) !==
this._getOverlayId(mouseInfo.target)
) {
this._raiseEvent(MouseEventType.MOUSE_OUT, this._selected)
this._raiseEvent(MouseEventType.MOUSE_OVER, mouseInfo, () => {
this._selected = mouseInfo
})
}
}
}


+ 2
- 7
src/core/event/OverlayEvent.js Parādīt failu

@@ -2,10 +2,10 @@
* @Author: Caven
* @Date: 2020-01-02 14:26:35
* @Last Modified by: Caven
* @Last Modified time: 2020-05-11 23:57:41
* @Last Modified time: 2020-05-15 10:05:01
*/

import { MouseEventType, OverlayEventType } from './EventType'
import { OverlayEventType } from './EventType'
import Event from './Event'

const { Cesium } = DC.Namespace
@@ -16,11 +16,6 @@ class OverlayEvent extends Event {
}

_registerEvent() {
Object.keys(MouseEventType).forEach(key => {
let type = MouseEventType[key]
this._cache[type] = new Cesium.Event()
})

Object.keys(OverlayEventType).forEach(key => {
let type = OverlayEventType[key]
this._cache[type] = new Cesium.Event()

+ 2
- 7
src/core/event/ViewerEvent.js Parādīt failu

@@ -2,10 +2,10 @@
* @Author: Caven
* @Date: 2020-01-02 14:26:35
* @Last Modified by: Caven
* @Last Modified time: 2020-05-11 23:57:30
* @Last Modified time: 2020-05-15 10:05:24
*/

import { MouseEventType, ViewerEventType } from './EventType'
import { ViewerEventType } from './EventType'
import Event from './Event'

const { Cesium } = DC.Namespace
@@ -16,11 +16,6 @@ class ViewerEvent extends Event {
}

_registerEvent() {
Object.keys(MouseEventType).forEach(key => {
let type = MouseEventType[key]
this._cache[type] = new Cesium.Event()
})

Object.keys(ViewerEventType).forEach(key => {
let type = ViewerEventType[key]
this._cache[type] = new Cesium.Event()

+ 1
- 3
src/core/math/area.js Parādīt failu

@@ -2,7 +2,7 @@
* @Author: Caven
* @Date: 2020-04-24 14:49:37
* @Last Modified by: Caven
* @Last Modified time: 2020-05-12 00:38:59
* @Last Modified time: 2020-05-15 08:58:33
*/

import Transform from '../transform/Transform'
@@ -28,5 +28,3 @@ export default function area(positions) {
}
return result
}

Cesium.Math.area = area

+ 1
- 1
src/core/math/bounds.js Parādīt failu

@@ -2,7 +2,7 @@
* @Author: Caven
* @Date: 2020-04-23 09:29:56
* @Last Modified by: Caven
* @Last Modified time: 2020-05-12 00:46:48
* @Last Modified time: 2020-05-15 08:58:37
*/

export default function bounds(positions = [], expand = 0) {

+ 1
- 1
src/core/math/center.js Parādīt failu

@@ -2,7 +2,7 @@
* @Author: Caven
* @Date: 2020-04-24 14:43:39
* @Last Modified by: Caven
* @Last Modified time: 2020-05-12 00:42:28
* @Last Modified time: 2020-05-15 08:58:38
*/

import Transform from '../transform/Transform'

Notiek ielāde…
Atcelt
Saglabāt