vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 11.1 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../packages/composables/use-providers/index.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-06-01 18:06:23\n * @LastEditTime: 2023-07-28 00:45:31\n * @LastEditors: zouyaoji 370681295@qq.com\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\composables\\use-providers\\index.ts\n */\nimport { getInstanceListener, getVcParentInstance } from '@vue-cesium/utils/private/vm'\nimport type { VcComponentInternalInstance } from '@vue-cesium/utils/types'\nimport * as coordtransform from '@vue-cesium/utils/coordtransform'\nimport useCommon from '../use-common'\nimport type { SetupContext } from 'vue'\nimport type { ProviderEmits } from '@vue-cesium/utils/emits'\nimport { VcLayerImageryRef } from '@vue-cesium/components'\nimport { compareCesiumVersion } from '@vue-cesium/utils/cesium-helpers'\n\nexport default function (props, ctx: SetupContext<ProviderEmits>, vcInstance: VcComponentInternalInstance) {\n // state\n vcInstance.cesiumEvents = ['errorEvent']\n const commonState = useCommon(props, ctx, vcInstance)\n if (commonState === void 0) {\n return\n }\n\n const { emit } = ctx\n\n // methods\n vcInstance.createCesiumObject = async () => {\n const options = commonState.transformProps(props)\n\n if (compareCesiumVersion(Cesium.VERSION, '1.104') && typeof Cesium[vcInstance.cesiumClass].fromUrl === 'function') {\n return await Cesium[vcInstance.cesiumClass].fromUrl(options.url, options)\n } else {\n return new Cesium[vcInstance.cesiumClass](options)\n }\n }\n\n vcInstance.mount = async () => {\n const { viewer } = commonState.$services\n if (vcInstance.cesiumClass.indexOf('ImageryProvider') !== -1) {\n vcInstance.renderByParent = true\n const imageryProvider = vcInstance.cesiumObject as Cesium.ImageryProvider\n\n // 1.104+ 版本废弃了 readyPromise\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n imageryProvider?.readyPromise?.then(() => {\n const listener = getInstanceListener(vcInstance, 'readyPromise')\n listener && emit('readyPromise', imageryProvider, viewer, vcInstance.proxy as VcLayerImageryRef)\n })\n\n if (props.projectionTransforms && props.projectionTransforms.from !== props.projectionTransforms.to) {\n const ignoreTransforms =\n vcInstance.proxy?.$options.name === 'VcImageryProviderBaidu' ||\n (vcInstance.proxy?.$options.name === 'VcImageryProviderTianditu' && (imageryProvider as any)._epsgCode === '4490')\n if (!ignoreTransforms) {\n const { WebMercatorTilingScheme, Cartographic, Math: CesiumMath } = Cesium\n const tilingScheme = new WebMercatorTilingScheme()\n const projection = tilingScheme.projection\n const nativeProject = projection.project\n const nativeUnProject = projection.unproject\n let projectMethods\n let unprojectMethods\n if (props.projectionTransforms.to.toUpperCase() === 'WGS84') {\n projectMethods = 'wgs84togcj02'\n unprojectMethods = 'gcj02towgs84'\n } else if (props.projectionTransforms.to.toUpperCase() === 'GCJ02') {\n projectMethods = 'gcj02towgs84'\n unprojectMethods = 'wgs84togcj02'\n }\n\n if (projectMethods && unprojectMethods) {\n projection.project = function (cartographic, result) {\n result = result || new Cesium.Cartesian3()\n result = coordtransform[projectMethods](CesiumMath.toDegrees(cartographic.longitude), CesiumMath.toDegrees(cartographic.latitude))\n return nativeProject.call(this, new Cartographic(CesiumMath.toRadians(result?.[0]), CesiumMath.toRadians(result?.[1])))\n }\n projection.unproject = function (cartesian2, result) {\n result = result || new Cartographic()\n const cartographic = nativeUnProject.call(this, cartesian2)\n result = coordtransform[unprojectMethods](CesiumMath.toDegrees(cartographic.longitude), CesiumMath.toDegrees(cartographic.latitude))\n return new Cartographic(CesiumMath.toRadians(result?.[0]), CesiumMath.toRadians(result?.[1]))\n }\n ;(imageryProvider as any)._tilingScheme = tilingScheme\n }\n }\n }\n const parentVM = getVcParentInstance(vcInstance).proxy as VcLayerImageryRef\n return parentVM && parentVM.__updateProvider?.(imageryProvider)\n } else {\n const terrainProvider = vcInstance.cesiumObject as Cesium.TerrainProvider\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n terrainProvider?.readyPromise?.then(() => {\n const listener = getInstanceListener(vcInstance, 'readyPromise')\n listener && emit('readyPromise', terrainProvider, viewer, vcInstance.proxy as VcLayerImageryRef)\n })\n viewer.terrainProvider = terrainProvider\n return true\n }\n }\n vcInstance.unmount = async () => {\n const { viewer } = commonState.$services\n if (vcInstance.cesiumClass.indexOf('ImageryProvider') !== -1) {\n const parentVM = getVcParentInstance(vcInstance).proxy as VcLayerImageryRef\n return parentVM && parentVM.__updateProvider?.(undefined)\n } else {\n const terrainProvider = new Cesium.EllipsoidTerrainProvider()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n terrainProvider?.readyPromise?.then(() => {\n const listener = getInstanceListener(vcInstance, 'readyPromise')\n listener && emit('readyPromise', terrainProvider, viewer, vcInstance.proxy as VcLayerImageryRef)\n })\n viewer.terrainProvider = terrainProvider\n return true\n }\n }\n\n return {\n transformProps: commonState.transformProps,\n unwatchFns: commonState.unwatchFns,\n setPropsWatcher: commonState.setPropsWatcher\n }\n}\n"],"names":[],"mappings":"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"}