vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 7.73 kB
Source Map (JSON)
{"version":3,"file":"Feature.mjs","sources":["../../../../../../packages/components/controls/selection-indicator/Feature.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-10-27 15:54:13\n * @LastEditTime: 2022-09-10 21:29:53\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\controls\\selection-indicator\\Feature.ts\n */\n\nimport { makeCartesian3 } from '@vue-cesium/utils/cesium-helpers'\nimport type { VcCesiumObject } from '@vue-cesium/utils/types'\n\nclass Feature {\n id: string\n cesiumObject: VcCesiumObject\n pickedFeature: any\n name: any\n description: any\n properties: any\n data: any\n imageryLayer: Cesium.ImageryLayer\n position: Cesium.Cartesian3\n coords: any\n windowPosition: Cesium.Cartesian2\n constructor(options) {\n this.id = options.id || Cesium.createGuid()\n }\n\n static getBoundingSphere(cesiumObject, viewer: Cesium.Viewer) {\n const { Primitive, ClassificationPrimitive, GroundPolylinePrimitive, GroundPrimitive, Polyline } = Cesium\n let boundingSphere\n if (cesiumObject instanceof ClassificationPrimitive || cesiumObject instanceof GroundPolylinePrimitive) {\n boundingSphere = (cesiumObject as any)._primitive?._boundingSphereWC?.[0]\n } else if (cesiumObject instanceof Primitive) {\n boundingSphere = (cesiumObject as any)._boundingSphereWC?.[0]\n } else if (cesiumObject instanceof GroundPrimitive) {\n boundingSphere = (cesiumObject as any)._boundingVolumes?.[0]\n } else if (cesiumObject instanceof Polyline) {\n boundingSphere = (cesiumObject as any)._boundingVolumeWC\n } else if (cesiumObject instanceof Cesium.Entity) {\n boundingSphere = new Cesium.BoundingSphere()\n ;(viewer.dataSourceDisplay as any).getBoundingSphere(cesiumObject, true, boundingSphere)\n }\n\n return boundingSphere\n }\n static fromPickedFeature(cesiumObject, pickedFeature, viewer, screenPosition) {\n const feature = new Feature({ id: cesiumObject.id })\n\n if (cesiumObject.position) {\n feature.position = cesiumObject.position\n } else if (cesiumObject instanceof Cesium.Model) {\n feature.position = Cesium.Matrix4.getTranslation(cesiumObject.modelMatrix, new Cesium.Cartesian3())\n } else if (cesiumObject instanceof Cesium.Cesium3DTileset) {\n let position = pickedFeature.content.tile.boundingSphere.center\n let positionProperty = pickedFeature?.getProperty?.('position')\n if (Cesium.defined(positionProperty)) {\n if (typeof positionProperty === 'string') {\n positionProperty = JSON.parse(positionProperty)\n }\n\n position = makeCartesian3(positionProperty) as Cesium.Cartesian3\n }\n feature.position = position\n } else {\n feature.position = Feature.getBoundingSphere(cesiumObject, viewer)?.center\n }\n\n feature.cesiumObject = cesiumObject\n feature.pickedFeature = pickedFeature\n feature.windowPosition = screenPosition\n feature.description = cesiumObject?.description || cesiumObject?.description?.getValue()\n feature.properties = cesiumObject?.properties || cesiumObject?.properties?.getValue() || cesiumObject?.feature?.properties\n return feature\n }\n\n static fromImageryLayerFeature(imageryFeature, viewer: Cesium.Viewer) {\n const feature = new Feature({\n id: imageryFeature.name\n })\n feature.name = imageryFeature.name\n feature.description = imageryFeature.description // already defined by the new Entity\n feature.properties = imageryFeature.properties\n feature.data = imageryFeature.data\n\n feature.imageryLayer = imageryFeature.imageryLayer\n feature.position = viewer.scene.globe.ellipsoid.cartographicToCartesian(imageryFeature.position)\n feature.coords = imageryFeature.coords\n\n return feature\n }\n}\n\n// function addCustomFeatureProperties (entity) {\n// for (let i = 0; i < customProperties.length; i++) {\n// if (entity.propertyNames.indexOf(customProperties[i]) === -1) {\n// entity.addProperty(customProperties[i])\n// }\n// }\n// }\n\nexport default Feature\n"],"names":[],"mappings":"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"}