UNPKG

vue-cesium-jyt

Version:
1 lines 16.5 kB
{"version":3,"file":"index.mjs","sources":["../../../../../packages/composables/use-events/index.ts"],"sourcesContent":["import { AnyObject, VcComponentInternalInstance } from '@vue-cesium/utils/types'\nimport { isArray } from '@vue-cesium/utils/util'\nimport { getInstanceListener } from '@vue-cesium/utils/private/vm'\n\nexport default function (props, vcInstance: VcComponentInternalInstance, logger) {\n const bindEvents = (cesiumObject: AnyObject, cesiumEvents: Array<string>, register = true) => {\n const ev = cesiumEvents || vcInstance.cesiumEvents || []\n ev &&\n ev.forEach(eventName => {\n if (cesiumObject[eventName]) {\n const listener = getInstanceListener(vcInstance, eventName)\n const methodName = register ? 'addEventListener' : 'removeEventListener'\n listener && cesiumObject[eventName][methodName](listener)\n } else if (process.env.VUECESIUM_DEBUG) {\n logger.warn('Add event linstener of ' + eventName + ' failed, try to upgrade Cesium to latest version.')\n }\n })\n }\n const registerEvents = register => {\n const { viewer, cesiumObject } = vcInstance\n if (cesiumObject === void 0) {\n return\n }\n const { ScreenSpaceEventHandler, ScreenSpaceEventType } = Cesium\n\n if (!viewer._vcPickScreenSpaceEventHandler || !viewer._vcViewerScreenSpaceEventHandler) {\n viewer._vcPickScreenSpaceEventHandler = new ScreenSpaceEventHandler(viewer.canvas)\n viewer._vcViewerScreenSpaceEventHandler = new ScreenSpaceEventHandler(viewer.canvas)\n viewerScreenSpaceEvents.forEach(type => {\n const listener = getInstanceListener(vcInstance, type)\n listener && viewer._vcViewerScreenSpaceEventHandler.setInputAction(listener, ScreenSpaceEventType[type])\n // vc-viewer 率先绑定\n viewer._vcPickScreenSpaceEventHandler.setInputAction(pickedAction.bind({ eventName: type, viewer }), ScreenSpaceEventType[type])\n })\n }\n\n bindEvents(cesiumObject, vcInstance.cesiumEvents || [], register)\n\n vcInstance.cesiumMembersEvents?.forEach(eventName => {\n const cesiumIntanceMember =\n isArray(eventName.name) && eventName.name.length > 0 && cesiumObject[eventName.name[0]]\n ? cesiumObject[eventName.name[0]][eventName.name[1]]\n : cesiumObject[eventName.name as string]\n cesiumIntanceMember && bindEvents(cesiumIntanceMember, eventName.events, register)\n })\n\n if (props.enableMouseEvent) {\n pickEvents.forEach(eventName => {\n const listener = getInstanceListener(vcInstance, eventName)\n if (register) {\n listener && (cesiumObject[eventName] = listener)\n } else {\n listener && delete cesiumObject[eventName]\n }\n })\n }\n }\n\n function pickedAction(this, movement) {\n if (!props.enableMouseEvent || !movement) {\n return\n }\n const viewer: Cesium.Viewer = this.viewer\n const { eventName } = this\n const position: Cesium.Cartesian2 = movement.position || movement.endPosition\n if (!position) {\n return\n }\n\n const pickedFeatureAndCallbackNames: Array<any> = []\n\n let callbackName\n if (eventName.indexOf('LEFT_DOUBLE_CLICK') !== -1) {\n callbackName = 'dblclick'\n } else if (eventName.indexOf('CLICK') !== -1) {\n callbackName = 'click'\n } else if (eventName.indexOf('DOWN') !== -1) {\n callbackName = 'mousedown'\n } else if (eventName.indexOf('UP') !== -1) {\n callbackName = 'mouseup'\n } else if (eventName.indexOf('MOUSE_MOVE') !== -1) {\n callbackName = 'mousemove'\n }\n\n let callbackNameOut\n if (callbackName === 'mousemove') {\n callbackNameOut = 'mouseout'\n } else if (callbackName === 'click') {\n callbackNameOut = 'clickout'\n }\n\n const pickedFeature = viewer.scene.pick(position)\n if (!Cesium.defined(pickedFeature)) {\n if (this.pickedFeature) {\n // 没有拾取到对象,this.pickedFeature又有记录,说明移出了。\n pickedFeatureAndCallbackNames.push({\n callbackName: callbackNameOut,\n pickedFeature: this.pickedFeature\n })\n }\n\n this.pickedFeature = undefined\n } else {\n if (this.pickedFeature && this.pickedFeature.id !== pickedFeature.id) {\n pickedFeatureAndCallbackNames.push({\n // 拾取到对象,this.pickedFeature也有记录,两者不同,说明操作到另外一个对象上去了\n callbackName: callbackNameOut,\n pickedFeature: this.pickedFeature\n })\n }\n if (callbackName === 'mousemove' && (!this.pickedFeature || this.pickedFeature.id !== pickedFeature.id)) {\n pickedFeatureAndCallbackNames.push({\n callbackName: 'mouseover',\n pickedFeature\n })\n }\n\n pickedFeatureAndCallbackNames.push({\n callbackName,\n pickedFeature\n })\n }\n\n if (pickedFeatureAndCallbackNames.length === 0) {\n return\n }\n\n let intersection: Cesium.Cartesian3 | undefined\n const scene = viewer.scene\n if (scene.mode === Cesium.SceneMode.SCENE3D) {\n const ray = scene.camera.getPickRay(position)\n intersection = scene.globe.pick(ray, scene)\n } else {\n intersection = scene.camera.pickEllipsoid(position, scene.globe.ellipsoid)\n }\n\n let button = -1\n if (eventName.indexOf('LEFT') !== -1) {\n button = 0\n } else if (eventName.indexOf('MIDDLE') !== -1) {\n button = 1\n } else if (eventName.indexOf('RIGHT') !== -1) {\n button = 2\n }\n const eventSourceList: Array<any> = []\n pickedFeatureAndCallbackNames.forEach(item => {\n const callbackName = item.callbackName\n const pickedFeature = item.pickedFeature\n if (pickedFeature.id) {\n if (isArray(pickedFeature.id) && pickedFeature.id[0] instanceof Cesium.Entity) {\n // 数据源集合(集群)\n eventSourceList.push({\n callbackName,\n cesiumObject: pickedFeature.id[0].entityCollection.owner,\n pickedFeature\n })\n } else if (pickedFeature.id instanceof Cesium.Entity) {\n // 实体\n eventSourceList.push({\n callbackName,\n cesiumObject: pickedFeature.id,\n pickedFeature\n })\n // 数据源\n eventSourceList.push({\n callbackName,\n cesiumObject: pickedFeature.id.entityCollection.owner,\n pickedFeature\n })\n }\n }\n const getParentCollection = e => {\n eventSourceList.push({\n callbackName,\n cesiumObject: e,\n pickedFeature\n })\n if (e._vcParent) {\n getParentCollection(e._vcParent)\n }\n }\n // 图元\n // + 自定义图元 如 PolygonPrimitive\n if (pickedFeature.primitive) {\n if (pickedFeature.primitive._vcParent) {\n getParentCollection(pickedFeature.primitive._vcParent)\n }\n eventSourceList.push({\n callbackName,\n cesiumObject: pickedFeature.primitive,\n pickedFeature\n })\n }\n\n // 图元集合\n if (pickedFeature.collection) {\n if (pickedFeature.collection._vcParent) {\n getParentCollection(pickedFeature.collection._vcParent)\n }\n\n eventSourceList.push({\n callbackName,\n cesiumObject: pickedFeature.collection,\n pickedFeature\n })\n }\n })\n\n eventSourceList.forEach(event => {\n event.cesiumObject[event.callbackName] &&\n event.cesiumObject[event.callbackName]({\n type: `on${event.callbackName}`,\n windowPosition: position,\n surfacePosition: intersection,\n pickedFeature: event.pickedFeature,\n button,\n cesiumObject: event.cesiumObject\n })\n })\n\n this.pickedFeature = pickedFeature\n }\n return {\n bindEvents,\n registerEvents\n }\n}\n\nconst viewerScreenSpaceEvents: Array<string> = [\n 'LEFT_CLICK',\n 'LEFT_DOUBLE_CLICK',\n 'LEFT_DOWN',\n 'LEFT_UP',\n 'MIDDLE_CLICK',\n 'MIDDLE_DOWN',\n 'MIDDLE_UP',\n 'MOUSE_MOVE',\n 'PINCH_END',\n 'PINCH_MOVE',\n 'PINCH_START',\n 'RIGHT_CLICK',\n 'RIGHT_DOWN',\n 'RIGHT_UP',\n 'WHEEL'\n]\n\nconst pickEvents: Array<string> = ['mousedown', 'mouseup', 'click', 'clickout', 'dblclick', 'mousemove', 'mouseover', 'mouseout']\n\nexport { pickEvents, viewerScreenSpaceEvents }\n"],"names":[],"mappings":"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"}