放大不在中心距离 可以关闭插件试一下
使用的 vue3-scale-box
npm install vue3-scale-box
- <template>
- <ScaleBox
- :width="1920"
- :height="1080"
- bgc="transparent"
- :delay="100"
- @scaleChange="scaleChange"
- :isFlat="false"
- >
- <div class="ec-demo" id="ec-demo"></div>
- </ScaleBox>
- </template>
- <script setup>
- import ScaleBox from "vue3-scale-box";
- </script>
- 属性
- width 宽度 默认 1920
- height 高度 默认 1080
- bgc 背景颜色 默认 "transparent"
- delay自适应缩放防抖延迟时间(ms) 默认 100
- isFlat是否启用拉伸模式 默认 false
- @scaleChange 缩放值发生改变的方法 可动态获取 scale 改变后的值 注意:拉伸模式下scale值为: [x缩放值, y缩放值];非拉伸模式下scale值为:等比缩放值
存储事件中的缩放值
const scaleChange=(even)=>{
store.commit('scaleChange', even)
}
在使用cesium页面
- import { useStore } from 'vuex'
- const store = useStore()
- const isscale = computed(() => store.state.scale)
- const resetMapSize = () => {
- let mapContent = document.getElementById("loadingIndicator");
- if (mapContent) {
- mapContent.style.transform = `scale(${1 / isscale.value[0]},${1 / isscale.value[1]
- })`
- }
- }
-
- watch(
- () => computed(() => store.state.scale),
- () => {
- resetMapSize()
- }, { deep: true }
- );
大致为在通过缩放比再缩放回来