UNPKG

@vuemap/vue-amap-extra

Version:

@vuemap/vue-amap扩展库,包含threejs相关图层

149 lines (146 loc) 3.42 kB
import { defineComponent, provide, renderSlot } from 'vue'; import { buildProps, provideKey, useRegister } from '@vuemap/vue-amap'; import CustomThreeLayer from './CustomThreeLayer.mjs'; var script = /* @__PURE__ */ defineComponent({ ...{ name: "ElAmapLayerThree", inheritAttrs: false }, __name: "ThreeLayer", props: buildProps({ lights: { type: Array, default() { return []; } }, // 灯光数组 hdr: { type: Object }, zooms: { type: Array, default() { return [2, 20]; } }, // 支持的缩放级别范围,默认范围 [2, 20] opacity: { type: Number }, // 透明度,默认 1 alpha: { type: Boolean, default: true }, // canvas是否包含alpha (透明度)。默认为 false antialias: { type: Boolean, default: false }, // 是否执行抗锯齿。默认为false customCoordsCenter: { type: Array, default() { return null; } }, axesHelper: { type: Boolean, default: false }, createCanvas: { type: Boolean, default: false }, webGLRendererParameters: { type: Object, default() { return void 0; } }, createCssRender: { type: Boolean, default: false } }), emits: ["init"], setup(__props, { expose: __expose, emit: __emit }) { const needInitComponents = []; const provideData = { $amapComponent: void 0, addChildComponent(cb) { needInitComponents.push(cb); }, isDestroy: false }; provide(provideKey, provideData); const emits = __emit; let $amapComponent; const { $$getInstance, parentInstance } = useRegister( (options, parentComponent) => { return new Promise((resolve) => { $amapComponent = new CustomThreeLayer(parentComponent, options, () => { provideData.$amapComponent = $amapComponent; resolve($amapComponent); }); }); }, { emits, provideData, needInitComponents, destroyComponent() { if ($amapComponent) { $amapComponent.destroy(); $amapComponent = null; } } } ); const convertLngLat = (lnglat) => { return $amapComponent.convertLngLat(lnglat); }; const addObject = (object) => { $amapComponent.add(object); }; const removeObject = (object) => { $amapComponent.remove(object); }; const addEnvMap = (obj) => { $amapComponent.addEnvMap(obj); }; const $$getScene = () => { return $amapComponent.getScene(); }; const $$getRender = () => { return $amapComponent.getRender(); }; const $$refresh = () => { $amapComponent.refreshMap(); }; const $$addPass = (pass) => { $amapComponent.addPass(pass); }; const $$removePass = (pass) => { $amapComponent.removePass(pass); }; __expose({ $$getInstance, convertLngLat, addObject, removeObject, addEnvMap, $$getScene, $$getRender, $$refresh, $$addPass, $$removePass }); return (_ctx, _cache) => { return renderSlot(_ctx.$slots, "default"); }; } }); export { script as default }; //# sourceMappingURL=ThreeLayer.vue2.mjs.map