UNPKG

vue-cesium

Version:
106 lines (101 loc) 5.36 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vm = require('../../utils/private/vm.js'); var coordtransform = require('../../utils/coordtransform.js'); var index = require('../use-common/index.js'); var cesiumHelpers = require('../../utils/cesium-helpers.js'); "use strict"; function useProviders(props, ctx, vcInstance) { vcInstance.cesiumEvents = ["errorEvent"]; const commonState = index["default"](props, ctx, vcInstance); if (commonState === void 0) { return; } const { emit } = ctx; vcInstance.createCesiumObject = async () => { const options = commonState.transformProps(props); if (cesiumHelpers.compareCesiumVersion(Cesium.VERSION, "1.104") && typeof Cesium[vcInstance.cesiumClass].fromUrl === "function") { return await Cesium[vcInstance.cesiumClass].fromUrl(options.url, options); } else { return new Cesium[vcInstance.cesiumClass](options); } }; vcInstance.mount = async () => { var _a, _b, _c, _d, _e; const { viewer } = commonState.$services; if (vcInstance.cesiumClass.indexOf("ImageryProvider") !== -1) { vcInstance.renderByParent = true; const imageryProvider = vcInstance.cesiumObject; (_a = imageryProvider == null ? void 0 : imageryProvider.readyPromise) == null ? void 0 : _a.then(() => { const listener = vm.getInstanceListener(vcInstance, "readyPromise"); listener && emit("readyPromise", imageryProvider, viewer, vcInstance.proxy); }); if (props.projectionTransforms && props.projectionTransforms.from !== props.projectionTransforms.to) { const ignoreTransforms = ((_b = vcInstance.proxy) == null ? void 0 : _b.$options.name) === "VcImageryProviderBaidu" || ((_c = vcInstance.proxy) == null ? void 0 : _c.$options.name) === "VcImageryProviderTianditu" && imageryProvider._epsgCode === "4490"; if (!ignoreTransforms) { const { WebMercatorTilingScheme, Cartographic, Math: CesiumMath } = Cesium; const tilingScheme = new WebMercatorTilingScheme(); const projection = tilingScheme.projection; const nativeProject = projection.project; const nativeUnProject = projection.unproject; let projectMethods; let unprojectMethods; if (props.projectionTransforms.to.toUpperCase() === "WGS84") { projectMethods = "wgs84togcj02"; unprojectMethods = "gcj02towgs84"; } else if (props.projectionTransforms.to.toUpperCase() === "GCJ02") { projectMethods = "gcj02towgs84"; unprojectMethods = "wgs84togcj02"; } if (projectMethods && unprojectMethods) { projection.project = function(cartographic, result) { result = result || new Cesium.Cartesian3(); result = coordtransform[projectMethods](CesiumMath.toDegrees(cartographic.longitude), CesiumMath.toDegrees(cartographic.latitude)); return nativeProject.call(this, new Cartographic(CesiumMath.toRadians(result == null ? void 0 : result[0]), CesiumMath.toRadians(result == null ? void 0 : result[1]))); }; projection.unproject = function(cartesian2, result) { result = result || new Cartographic(); const cartographic = nativeUnProject.call(this, cartesian2); result = coordtransform[unprojectMethods](CesiumMath.toDegrees(cartographic.longitude), CesiumMath.toDegrees(cartographic.latitude)); return new Cartographic(CesiumMath.toRadians(result == null ? void 0 : result[0]), CesiumMath.toRadians(result == null ? void 0 : result[1])); }; imageryProvider._tilingScheme = tilingScheme; } } } const parentVM = vm.getVcParentInstance(vcInstance).proxy; return parentVM && ((_d = parentVM.__updateProvider) == null ? void 0 : _d.call(parentVM, imageryProvider)); } else { const terrainProvider = vcInstance.cesiumObject; (_e = terrainProvider == null ? void 0 : terrainProvider.readyPromise) == null ? void 0 : _e.then(() => { const listener = vm.getInstanceListener(vcInstance, "readyPromise"); listener && emit("readyPromise", terrainProvider, viewer, vcInstance.proxy); }); viewer.terrainProvider = terrainProvider; return true; } }; vcInstance.unmount = async () => { var _a, _b; const { viewer } = commonState.$services; if (vcInstance.cesiumClass.indexOf("ImageryProvider") !== -1) { const parentVM = vm.getVcParentInstance(vcInstance).proxy; return parentVM && ((_a = parentVM.__updateProvider) == null ? void 0 : _a.call(parentVM, void 0)); } else { const terrainProvider = new Cesium.EllipsoidTerrainProvider(); (_b = terrainProvider == null ? void 0 : terrainProvider.readyPromise) == null ? void 0 : _b.then(() => { const listener = vm.getInstanceListener(vcInstance, "readyPromise"); listener && emit("readyPromise", terrainProvider, viewer, vcInstance.proxy); }); viewer.terrainProvider = terrainProvider; return true; } }; return { transformProps: commonState.transformProps, unwatchFns: commonState.unwatchFns, setPropsWatcher: commonState.setPropsWatcher }; } exports["default"] = useProviders; //# sourceMappingURL=index.js.map