Compare commits

...

10 Commits

30 changed files with 2651 additions and 505 deletions

1
.gitignore vendored
View File

@@ -13,6 +13,7 @@ dist
dist-ssr
*.local
public/Cesium
public/landmarkImg
# Editor directories and files
.vscode/*

View File

@@ -4,6 +4,49 @@
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style>
/* 当屏幕宽度大于或等于3840px时 */
@media (min-width: 3840px) {
html {
font-size: 40px;
}
}
/* 当屏幕宽度在2560px到3839px之间时 */
@media (min-width: 2560px) and (max-width: 3839px) {
html {
font-size: 26px;
}
}
/* 当屏幕宽度在1920px到2559px之间时 */
@media (min-width: 1920px) and (max-width: 2559px) {
html {
font-size: 20px;
}
}
/* 当屏幕宽度在750px到1919px之间时 */
@media (min-width: 750px) and (max-width: 1919px) {
html {
font-size: 14px;
}
}
/* 当屏幕宽度在600px到749px之间时 */
@media (min-width: 600px) and (max-width: 749px) {
html {
font-size: 14px;
}
}
/* 当屏幕宽度小于600px时 */
@media (max-width: 599px) {
html {
font-size: 12px;
}
}
</style>
<title>数字地球</title>
</head>
<body>

1455
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -9,6 +9,7 @@
},
"dependencies": {
"cesium": "^1.92.0",
"digital-earth": "file:",
"pinia": "^2.0.13",
"vue": "^3.2.25",
"vue-cesium": "^3.0.11"

View File

@@ -3,7 +3,10 @@
<Earth>
<LocatingPoint />
<MarkPoints />
<LandMarkPoints />
</Earth>
<LandMarkWindow />
<LandMarkShow />
</vc-config-provider>
<LonlatForm id="lonlat-form"></LonlatForm>
@@ -19,6 +22,9 @@ import LonlatTable from '/@/components/LonlatTable.vue'
import MarkPoints from "/@/components/MarkPoints.vue"
import LocatingPoint from '/@/components/LocatingPoint.vue'
import HotLandmark from '/@/components/HotLandmark.vue'
import LandMarkPoints from "/@/components/LandMarkPoints.vue"
import LandMarkWindow from '/@/components/LandMarkWindow.vue'
import LandMarkShow from '/@/components/LandMarkShow.vue'
const CESIUM_PATH = (process.env.NODE_ENV === 'development' ? './node_modules/cesium/Build/Cesium/Cesium.js': './Cesium/Cesium.js')
</script>
@@ -33,19 +39,19 @@ html, body, #app {
#lonlat-form {
position: absolute;
top: 10px;
left: 15px;
top: 1rem;
left: 1rem;
}
#lonlat-table {
position: absolute;
top: 100px;
left: 15px;
top: 5rem;
left: 1rem;
}
#hotlandmark {
position: absolute;
bottom: 30px;
right: 10px;
bottom: 1.5rem;
right: 0.5rem;
}
</style>

View File

@@ -1,8 +1,8 @@
export const isLnglat = lnglat => {
const { lng, lat } = lnglat
if (isNaN(lng) || lng > 180 || lng < -180) return false
if (isNaN(lat) || lat > 90 || lat < -90 ) return false
if (typeof lng !== 'number' || lng === '' || isNaN(lng) || lng > 180 || lng < -180) return false
if (typeof lat !== 'number' || lat ==='' || isNaN(lat) || lat > 90 || lat < -90 ) return false
return true
}

BIN
src/assets/button.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
src/assets/close.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 15 KiB

BIN
src/assets/left.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
src/assets/right.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
src/assets/showpin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
src/assets/todown.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
src/assets/toup.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,32 +1,43 @@
<template>
<div class="compass" @click="Compass">
<img class="north" src="../assets/compass.png">
</div>
<div class="compass" style="cursor: pointer" @click="Compass">
<img class="north" src="../assets/compass.png" />
</div>
</template>
<script setup>
import {defineEmits} from 'vue'
const emit = defineEmits(['Pointing'])
import { onMounted } from "vue";
const emit = defineEmits(["Pointing"]);
const Compass = () => {
emit('Pointing')
}
emit("Pointing");
};
onMounted(() => {
setTimeout(() => {
let navigation = window.document.getElementsByClassName("vc-navigation")[0].style;
let compass = window.document.getElementsByClassName("compass")[0].style;
compass.left = navigation.width / 2 - compass.width / 2;
compass.bottom = navigation.height + compass.height;
}, 200);
});
</script>
<style scoped>
.compass{
width:50px;
height:50px;
padding:5px;
padding-top:0;
border-radius:50%;
background-color:#fff;
position:fixed;
bottom:245px;
left:42px;
z-index:99;
.compass {
width: 2.5rem;
height: 2.5rem;
padding: 0.25rem;
padding-top: 0;
border-radius: 50%;
background-color: #fff;
position: fixed;
left: 2.8rem;
bottom: 16rem;
z-index: 99;
}
.north{
width:40px;
.north {
width: 2rem;
}
</style>
</style>

View File

@@ -7,7 +7,6 @@
>
</vc-imagery-provider-urltemplate>
</vc-layer-imagery>
<vc-layer-imagery>
<vc-imagery-provider-urltemplate
:projectionTransforms="projectionTransforms"
@@ -15,13 +14,9 @@
>
</vc-imagery-provider-urltemplate>
</vc-layer-imagery>
<vc-status-bar />
<slot></slot>
<vc-navigation
:offset="[10, 30]"
<vc-navigation
:position="'bottom-left'"
:printOpts="false"
:locationOpts="false"
@@ -35,6 +30,7 @@
import Compass from '/@/components/Compass.vue'
import { usePointStore } from "/@/stores/point";
import { usePositionStore } from "/@/stores/position";
import { useFlytoStore } from "/@/stores/flyto";
import {
VcViewer,
VcStatusBar,
@@ -49,16 +45,27 @@ const projectionTransforms = { from: "GCJ02", to: "WGS84" };
const img_url = "https://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&style=6";
const ann_url = "https://webst01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&style=8";
let Cesium = null,
viewer = null;
const ready = (readyObj) => {
Cesium = readyObj.Cesium;
viewer = readyObj.viewer;
window.viewer = readyObj.viewer;
viewer._selectionIndicator = false;
//不显示选中指示器
viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);
//屏蔽Cesium的默认双击追踪选中entity行为
setTimeout(() => {
window.document.getElementsByClassName("vc-navigation-control")[0].style.marginBottom = "1rem";
window.document.getElementsByClassName("vc-navigation-control")[0].children[0].children[0].children[1].children[0].style.fontSize = "6rem";
window.document.getElementsByClassName("vc-navigation-control")[0].children[0].children[1].children[1].children[0].style.fontSize = "2rem";
window.document.getElementsByClassName("vc-navigation-control")[1].children[0].children[0].children[0].children[0].children[1].children[0].style.fontSize = "2rem";
window.document.getElementsByClassName("vc-navigation-control")[1].children[0].children[0].children[1].children[0].children[1].children[0].style.fontSize = "2rem";
window.document.getElementsByClassName("vc-navigation-control")[1].children[0].children[0].children[2].children[0].children[1].children[0].style.fontSize = "2rem";
window.document.getElementsByClassName("vc-navigation")[0].style.width = "8rem";
window.document.getElementsByClassName("vc-navigation")[0].style.height = "16rem";
window.document.getElementsByClassName("vc-navigation")[0].style.paddingTop = "1rem";
window.document.getElementsByClassName("vc-navigation")[0].style.bottom = "0rem";
window.document.getElementsByClassName("vc-navigation")[0].style.left = "0rem";
}, 0);
};
const point = usePointStore();
@@ -91,13 +98,6 @@ const cartesian2Lonlat = (cartesian) => {
const position = usePositionStore();
position.$subscribe((_, state) => {
// import { MutationType } from 'pinia' 改变触发的类型
// mutation.type // 'direct' | 'patch object' | 'patch function'
// same as cartStore.$id
// mutation.storeId // 'cart'
// only available with mutation.type === 'patch object'
// mutation.payload // patch object passed to cartStore.$patch()
// 侦听到state变化时,把state存在localStorage中
// localStorage.setItem('cart', JSON.stringify(state))
if (!isLnglat(state)) return;
@@ -107,6 +107,15 @@ position.$subscribe((_, state) => {
});
});
const flyto = useFlytoStore();
flyto.$subscribe((_, state) => {
if (!isLnglat(state)) return;
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(state.lng, state.lat, 2000.0),
});
});
// 默认值 天安门广场经纬度 116.39140105, 39.90452844 高度 2000.0
const pointTo = () => {
let initialPosition = Cesium.Cartesian3.fromDegrees(position.lng?position.lng:116.39140105, position.lat?position.lat:39.90452844, 2000.0);
@@ -117,4 +126,4 @@ const pointTo = () => {
endtransform: Cesium.Matrix4.IDENTITY,
});
}
</script>
</script>

View File

@@ -1,114 +1,96 @@
<template>
<div>
<div v-show="!showit" class="switch" style="position:absolute;top:-40px;right:0;z-index:99;" @click="showLandmark">
<img class="icon" src="../assets/up.png">
</div>
<div v-show="showit" class="switch" style="position:absolute;top:-50px;right:0;z-index:99;" @click="showLandmark">
<img class="icon" src="../assets/down.png">
</div>
<div class="landmark">
<table v-if="showit">
<thead>
<tr>
<th>景点名称</th>
<th>经度</th>
<th>纬度</th>
<th>访问景点</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in landmarkArr" :key="index">
<td>{{ item ? item.landmark : index+1 }}</td>
<td>{{ item ? item.lng : "" }}</td>
<td>{{ item ? item.lat : "" }}</td>
<td><button @click="write(item.lng,item.lat)">访问</button></td>
</tr>
</tbody>
</table>
</div>
<div
v-show="!showit"
class="switch"
style="position: absolute; top: -2.5rem; right: 0; z-index: 99; cursor: pointer"
@click="showLandmark"
>
<img class="icon" src="../assets/up.png" />
</div>
<div
v-show="showit"
class="switch"
style="position: absolute; top: -2.5rem; right: 0; z-index: 99; cursor: pointer"
@click="showLandmark"
>
<img class="icon" src="../assets/down.png" />
</div>
<div class="landmark">
<table v-if="showit">
<thead>
<tr>
<th>景点名称</th>
<th>经度</th>
<th>纬度</th>
<th>访问景点</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in landmarkArr" :key="index">
<td>{{ item ? item.landmark : index + 1 }}</td>
<td>{{ item ? item.position.lng : "" }}</td>
<td>{{ item ? item.position.lat : "" }}</td>
<td>
<button style="cursor: pointer" @click="write(item.position)">访问</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</template>
<script setup>
import { ref } from 'vue'
import { usePositionStore } from '/@/stores/position'
const landmarkArr = [
{
landmark:'北京天安门',
lng:116.391243,
lat:39.907202
},
{
landmark:'北京鸟巢',
lng:116.390502,
lat:39.991396
},
{
landmark:'上海东方明珠',
lng:121.495263,
lat:31.241829
},
{
landmark:'香港迪斯尼',
lng:114.042287,
lat:22.313002
},
{
landmark:'布达拉宫',
lng:91.117684,
lat:29.656959
}
]
import { ref } from "vue";
import { useFlytoStore } from "/@/stores/flyto";
import { landmarkArr } from "/@/information/landmark";
let showit = ref(false);
const showLandmark = () => {
showit.value = !showit.value;
}
showit.value = !showit.value;
};
const position = usePositionStore()
const flyto = useFlytoStore();
const write = (lng,lat) => {
position.set({ lng: lng, lat: lat })
}
const write = (flytoLand) => {
flyto.set(flytoLand);
};
</script>
<style scoped>
.landmark {
max-height: 360px;
overflow-y:scroll;
max-height: 18rem;
overflow-y: auto;
}
.switch {
width:42px;
height:42px;
width: 2.5rem;
height: 2.5rem;
border-radius: 50%;
background-color:#fff;
padding-top:9px;
padding-left:3px;
}
.icon {
width:36px;
width: 2.5rem;
}
table {
color: #FFFFFF;
color: #ffffff;
background-color: #242424;
padding: 10px;
border-radius: 7px;
padding: 0.5rem;
border-radius: 0.5rem;
border-collapse: separate;
border-spacing: 2px;
text-align:center;
border-spacing: 0.1rem;
text-align: center;
}
table th:first-child {
width: 120px;
width: 6rem;
}
table th:not(:first-child) {
width: 100px;
width: 5rem;
}
table thead tr {
@@ -123,7 +105,8 @@ table tbody tr:nth-child(odd) {
background-color: rgba(84, 84, 84, 0.25);
}
table th, table td {
padding: 3px 5px;
table th,
table td {
padding: 0.2rem 0.2rem;
}
</style>

View File

@@ -0,0 +1,16 @@
<template>
<Pin
v-for="item, index in landmarkArr"
:key="index"
:position="item.position"
:image="showpin"
:pintype="landmark"/>
</template>
<script setup>
import { landmarkArr } from '/@/information/landmark'
import Pin from '/@/components/Pin.vue'
import showpin from '/@/assets/showpin.png'
const landmark = "landmark"
</script>

View File

@@ -0,0 +1,221 @@
<template>
<div class="lightbox" :style="judgmentShow">
<div class="boxImg">
<img :id="nowId" style="height:100%;display:block;margin:auto;" :src="nowImg" />
<div id="describesBox" class="describesBox" :style="describesShow">
<div class="textBox">
<br />
<h1 class="describesTitle">{{LandMarkShow.information.landTitle}}</h1>
<br />
<div class="paragraphBox">
<p class="describesParagraph">{{LandMarkShow.information.landDescribes}}</p>
</div>
</div>
</div>
<div id="brieflyBox" class="brieflyBox" :style="brieflyShow">
<div class="textBox">
<h3 class="brieflyTitle">{{LandMarkShow.information.landTitle}}</h3>
<div class="paragraphBox">
<p class="brieflyParagraph">{{LandMarkShow.information.landBriefly}}</p>
</div>
</div>
</div>
<div class="share showBtn">
<img class="imgBase" :style="judgmentUp" src="../../src/assets/up.png" @click="up" />
<img class="imgBase" :style="judgmentDown" src="../../src/assets/down.png" @click="down" />
</div>
<div class="share leftBtn">
<img class="imgBase" src="../../src/assets/left.png" @click="left" />
</div>
<div class="share rightBtn">
<img class="imgBase" src="../../src/assets/right.png" @click="right" />
</div>
</div>
<div class="share boxClose">
<img class="imgBase" src="../../src/assets/close.png" @click="close" />
</div>
</div>
</template>
<script setup>
import { LandMarkShowStore } from '/@/stores/LandMarkShow';
import { ref, watch } from 'vue';
const LandMarkShow = LandMarkShowStore();
const judgmentShow = ref();
const describesShow = ref();
const brieflyShow = ref();
const nowId = ref(1);
const nowImg = ref();
const judgmentUp = ref("dispaly:block;");
const judgmentDown = ref("dispaly:none;");
//文本内容自适应照片宽度
const adaptive = (imgId) => {
let newImg;
setTimeout(() => {
newImg = document.getElementById(imgId);
}, 10);
//程序执行需要时间
setTimeout(() => {
let newWidth = window.getComputedStyle(newImg, null)["width"];
let newMargin = window.getComputedStyle(newImg, null).marginLeft;
describesShow.value = `width:${newWidth};left:${newMargin};${judgmentDown.value}`;
brieflyShow.value = `width:${newWidth};left:${newMargin};${judgmentUp.value}`;
}, 20);
}
watch(() => LandMarkShow.boxShow, (newValue, oldValue) => {
judgmentShow.value = `display:${LandMarkShow.boxShow?'block':'none'};`;
adaptive(nowId.value);
})
watch(() => LandMarkShow.information.landImgUrl, (newValue, oldValue) => {
nowId.value = 1;
nowImg.value = `${LandMarkShow.information.landImgUrl}${nowId.value}.webp`;
judgmentUp.value = "display:block;";
judgmentDown.value = "display:none;";
adaptive(nowId.value);
})
const up = () => {
judgmentUp.value = "display:none;";
judgmentDown.value = "display:block;";
adaptive(nowId.value);
}
const down = () => {
judgmentUp.value = "display:block;";
judgmentDown.value = "display:none;";
adaptive(nowId.value);
}
const left = () => {
nowId.value = nowId.value - 1;
if (nowId.value == 0) {
nowId.value = LandMarkShow.information.landImgCount;
}
nowImg.value = `${LandMarkShow.information.landImgUrl}${nowId.value}.webp`;
adaptive(nowId.value);
}
const right = () => {
nowId.value = nowId.value + 1;
if (nowId.value > LandMarkShow.information.landImgCount) {
nowId.value = 1;
}
nowImg.value = `${LandMarkShow.information.landImgUrl}${nowId.value}.webp`;
adaptive(nowId.value);
}
const close = () => {
LandMarkShow.boxShow = false;
}
</script>
<style scoped>
.lightbox {
width: 100vw;
height: 100vh;
background: rgba(0, 0, 0, 0.4);
position: absolute;
top: 0;
left: 0;
user-select: none;
display:none;
}
.boxImg {
width: 70%;
height: 50%;
position: absolute;
top: 20%;
left: 15%;
}
.imgBase {
width: 100%;
}
.share {
min-width: 1.6rem;
min-height: 1.6rem;
width: 3vw;
height: 3vw;
position: absolute;
bottom: -15%;
z-index: 1;
border-radius: 50%;
overflow: hidden;
cursor: pointer;
box-shadow:inset 0px 0px 6px white;
}
.describesBox {
width: 60%;
height: 100%;
background: rgba(255, 255, 255, 0.5);
position: absolute;
bottom: 0;
left: 20%;
display: none;
text-shadow: 0 0 6px white;
}
.brieflyBox {
width: 60%;
height: 24%;
background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8));
position: absolute;
bottom: 0;
left: 20%;
text-shadow: 0 0 6px black;
}
.textBox {
width: 80%;
height: 100%;
overflow: hidden;
margin: auto;
}
.paragraphBox{
height:80%;
overflow-x:hidden;
overflow-y:auto;
}
.describesTitle {
text-align: center;
margin: 0;
font-size: clamp(0.8rem, 0.489rem + 1.05vw, 2rem);
}
.describesParagraph {
text-align: left;
text-indent: 2em;
margin: 0;
font-weight:bolder;
font-size: clamp(0.5rem, 0.489rem + 1.05vw, 1rem);
}
.brieflyTitle {
color: #fff;
text-align: left;
margin-top: 4%;
margin-bottom: 1%;
font-size: clamp(0.6rem, 0.489rem + 1.05vw, 1.2rem);
}
.brieflyParagraph {
color: #fff;
text-align: left;
text-indent: 2em;
margin-top: 0;
font-weight:bolder;
font-size: clamp(0.4rem, 0.489rem + 1.05vw, 0.8rem);
}
.boxClose {
bottom: 15%;
left: 48.5%;
}
.showBtn {
left: 47.8%;
}
.leftBtn {
left: 40%;
}
.rightBtn {
right: 40%;
}
</style>

View File

@@ -0,0 +1,142 @@
<template>
<div id="landMarkWindow" class="window" :style="nowPosition">
<div id="landMarkBase" class="base">
<div class="title">{{LandMarkWindow.information.landTitle}}</div>
<div class="triangle"></div>
<div class="backimg" :style="nowImg">{{LandMarkWindow.information.landTitle}}</div>
</div>
<div class="closeBtn" @click="closeWindow">
<svg
t="1603334792546"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="1328"
width="20"
height="20"
>
<path
d="M568.922 508.232L868.29 208.807a39.139 39.139 0 0 0 0-55.145l-1.64-1.64a39.139 39.139 0 0 0-55.09 0l-299.367 299.82-299.425-299.934a39.139 39.139 0 0 0-55.088 0l-1.697 1.64a38.46 38.46 0 0 0 0 55.09l299.48 299.594-299.424 299.48a39.139 39.139 0 0 0 0 55.09l1.64 1.696a39.139 39.139 0 0 0 55.09 0l299.424-299.48L811.56 864.441a39.139 39.139 0 0 0 55.089 0l1.696-1.64a39.139 39.139 0 0 0 0-55.09l-299.48-299.537z"
p-id="1329"
></path>
</svg>
</div>
<div class="changeButton" @click="judgment">{{LandMarkWindow.buttonText?'地点信息':'探索'}}</div>
</div>
</template>
<script setup>
import { LandMarkWindowStore } from '/@/stores/LandMarkWindow';
import { LandMarkShowStore } from '/@/stores/LandMarkShow';
import { ref, watch } from 'vue';
const LandMarkWindow = LandMarkWindowStore();
const LandMarkShow = LandMarkShowStore();
const nowPosition = ref();
const nowImg = ref();
watch(() => LandMarkWindow.windowShow, (newValue, oldValue) => {
nowPosition.value = `bottom:${LandMarkWindow.windowPosition.bottom};left:${LandMarkWindow.windowPosition.left};display:${LandMarkWindow.windowShow?'block':'none'};`;
})
watch(() => LandMarkWindow.information.landImgUrl, (newValue, oldValue) => {
nowImg.value = `background-image: url('${LandMarkWindow.information.landImgUrl}1.webp');`;
})
watch(() => LandMarkWindow.windowPosition.left, (newValue, oldValue) => {
nowPosition.value = `bottom:${LandMarkWindow.windowPosition.bottom};left:${LandMarkWindow.windowPosition.left};display:${LandMarkWindow.windowShow?'block':'none'};`;
})
const closeWindow = () => {
LandMarkWindow.windowShow = false;
LandMarkWindow.hiddenWindow = true;
}
const flyToLandmark = () => {
LandMarkWindow.flyToLand = true;
}
const watchImg = () => {
LandMarkShow.boxShow = true;
LandMarkShow.information = LandMarkWindow.information;
}
const judgment = () => {
if(LandMarkWindow.buttonText){
watchImg()
}else{
flyToLandmark()
}
}
</script>
<style scoped>
.window {
width: 30rem;
height: 2rem;
position: absolute;
display:none;
}
.base {
background: #FFFFA0;
height: 20rem;
text-align: center;
border-radius: 0px 0px 10px 10px;
}
.title {
height: 2rem;
font-size: 1.5rem;
}
.triangle {
width: 0;
height: 0;
border-top: 0.5rem solid red;
border-right: 0.5rem solid transparent;
border-left: 0.5rem solid transparent;
position: absolute;
left: 14.5rem;
bottom: -18.5rem;
}
.backimg {
color: red;
text-shadow: 0px 0px 8px rgba(255, 255, 255, 0.5);
padding-top: 0.2rem;
font-size: 2rem;
background-size: cover;
height: 18rem;
line-height:8rem;
border-radius: 0px 0px 10px 10px;
}
.closeBtn {
width:2rem;
height:2rem;
position:absolute;
top:0;
right:0;
background-color:#fff;
cursor:pointer;
}
.closeBtn:hover {
background-color: red;
}
svg {
width: 100%;
height: auto;
}
.changeButton {
width:6rem;
height:2rem;
position:absolute;
top:9rem;
right:12rem;
font-size: 1.2rem;
background-image:url('../../src/assets/button.png');
background-size:cover;
color:#fff;
border:1px solid skyblue;
border-radius:16px;
box-shadow:0px 0px 8px skyblue;
text-align:center;
line-height:1.8rem;
cursor:pointer;
}
</style>

View File

@@ -1,37 +1,56 @@
<template>
<form @keyup.enter="onFlyBtnClick">
<label>经度:</label>
<input type="number" v-model="lng" placeholder="请输入经度值">
<input type="number" v-model="lng" placeholder="请输入经度值" />
<label>纬度:</label>
<input type="number" v-model="lat" placeholder="请输入纬度值">
<input type="button" id="fly-btn" @click="onFlyBtnClick" value="飞到这个点">
<input type="button" id="clear-btn" @click="onClearBtnClick" value="清除坐标">
<input type="number" v-model="lat" placeholder="请输入纬度值" />
<input
type="button"
style="cursor: pointer"
id="fly-btn"
@click="onFlyBtnClick"
value="飞到这个点"
/>
<input
type="button"
style="cursor: pointer"
id="clear-btn"
@click="onClearBtnClick"
value="清除坐标"
/>
</form>
</template>
<script setup>
import { ref } from 'vue';
import { usePointStore } from '/@/stores/point'
import { usePositionStore } from '/@/stores/position'
import { ref } from "vue";
import { usePointStore } from "/@/stores/point";
import { usePositionStore } from "/@/stores/position";
import { useFlytoStore } from "/@/stores/flyto";
import { isLnglat } from "/@/api/util";
const lng = ref(NaN);
const lat = ref(NaN);
const position = usePositionStore();
const flyto = useFlytoStore();
flyto.$subscribe((_, state) => {
if (!isLnglat(state)) return;
lng.value = flyto.lng;
lat.value = flyto.lat;
});
const lng = ref(NaN)
const lat = ref(NaN)
const position = usePositionStore()
const onFlyBtnClick = () => {
if ( !position.set({ lng: lng.value, lat: lat.value }) ) alert('请输入正确的经纬度信息')
}
if (!position.set({ lng: lng.value, lat: lat.value })) alert("请输入正确的经纬度信息");
};
const point = usePointStore()
const point = usePointStore();
const onClearBtnClick = () => {
lng.value = NaN
lat.value = NaN
position.$reset()
point.$reset()
}
lng.value = NaN;
lat.value = NaN;
position.$reset();
point.$reset();
};
</script>
<style scoped>
@@ -63,25 +82,26 @@ input:focus {
}
/* Chrome, Safari, Edge, Opera */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Firefox */
input[type=number] {
input[type="number"] {
-moz-appearance: textfield;
}
input#fly-btn, input#clear-btn {
input#fly-btn,
input#clear-btn {
border-radius: 3px;
background-color: #41ddee;
}
input#fly-btn:hover , input#clear-btn:hover {
input#fly-btn:hover,
input#clear-btn:hover {
background-color: #ffffff;
color: #41ddee;
}
</style>
</style>

View File

@@ -29,19 +29,19 @@ const show = computed(() => point.index)
table {
color: #FFFFFF;
background-color: #242424;
padding: 10px;
border-radius: 7px;
padding: 0.5rem;
border-radius: 0.4rem;
border-collapse: separate;
border-spacing: 2px;
text-align:center;
}
table th:first-child {
width: 60px;
width: 3rem;
}
table th:not(:first-child) {
width: 120px;
width: 6rem;
}
table thead tr {
@@ -57,6 +57,6 @@ table tbody tr:nth-child(odd) {
}
table th, table td {
padding: 3px 5px;
padding: 0.2rem 0.2rem;
}
</style>

View File

@@ -1,14 +1,30 @@
<template>
<vc-entity :show="show" :position="position">
<vc-graphics-billboard :image="image" :verticalOrigin="1" />
</vc-entity>
<vc-entity
:show="pintype == 'landmark' ? landshow : show"
:position="position"
@click="clickPin"
@ready="ready"
>
<vc-graphics-billboard
:image="image"
:verticalOrigin="1"
:scale="pintype == 'landmark' ? jump : 1"
:color="pintype == 'landmark' ? jumpColor : 'none'"
/>
</vc-entity>
</template>
<script setup>
import { computed } from 'vue'
import { VcEntity, VcGraphicsBillboard } from 'vue-cesium'
import { isLnglat } from '/@/api/util'
import pin from '/@/assets/pin.png'
import { LandMarkWindowStore } from '/@/stores/LandMarkWindow';
import { LandMarkShowStore } from '/@/stores/LandMarkShow';
import { ref, computed, watch } from "vue";
import { VcEntity, VcGraphicsBillboard } from "vue-cesium";
import { isLnglat } from "/@/api/util";
import { landmarkArr } from "/@/information/landmark";
import pin from "/@/assets/pin.png";
const LandMarkWindow = LandMarkWindowStore();
const LandMarkShow = LandMarkShowStore();
const props = defineProps({
position: {
@@ -18,8 +34,167 @@ const props = defineProps({
image: {
type: String,
default: pin,
},
pintype: {
type: String,
default: "ordinary",
},
});
const show = computed(() => isLnglat(props.position));
const landshow = ref(false);
const jump = ref(1);
const jumpSwitch = ref(true);
const jumpColor = ref("none");
let handler = null,
computTime = null;
//标点动画
const animetion = (clearit) => {
if(!clearit){
clearInterval(computTime);
}else{
computTime = setInterval(() => {
if (0.5 <= jump.value < 1.1 && jumpSwitch.value) {
jump.value = Math.round(jump.value * 100) / 100 + 0.05;
jumpColor.value = "none";
if (jump.value == 1.1) {
jumpSwitch.value = false;
jumpColor.value = "rgba(0,255,255,0.5)";
}
} else if (0.5 < jump.value <= 1.1) {
jump.value = Math.round(jump.value * 100) / 100 - 0.05;
jumpColor.value = "none";
if (jump.value == 0.5) {
jumpSwitch.value = true;
jumpColor.value = "rgba(0,255,255,0.5)";
}
}
}, 100);
};
};
const ready = (readyObj) => {
handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
if (props.pintype == "landmark") {
viewer.scene.postRender.addEventListener(() => {
if (viewer.camera.positionCartographic.height < 100000) {
landshow.value = true;
} else {
landshow.value = false;
}
});
}
};
watch(landshow,() => {
animetion(landshow.value);
})
const show = computed(() => isLnglat(props.position))
let landArr = {};
const insetLand = () => {
landmarkArr.forEach((element) => {
if (
element.position.lng == props.position.lng &&
element.position.lat == props.position.lat
) {
landArr.landTitle = element.landmark;
landArr.landDescribes = element.describes;
landArr.landBriefly = element.briefly;
landArr.landImgUrl = element.imgUrl;
landArr.landPosition = element.position;
landArr.landImgCount = element.imgCount;
}
});
}
//清除事件监听
const clearDiv = (id) => {
viewer.scene.postRender.removeEventListener(addDynamicLabel);
handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
};
const addDynamicLabel = (data) => {
insetLand();
LandMarkWindow.information = landArr;
LandMarkWindow.windowShow = true;
LandMarkWindow.hiddenWindow = false;
let gisPosition = data.position._value;
//cesium 渲染事件监听
viewer.scene.postRender.addEventListener(() => {
const canvasHeight = viewer.scene.canvas.height;
const windowPosition = new Cesium.Cartesian2();
Cesium.SceneTransforms.wgs84ToWindowCoordinates(
viewer.scene,
gisPosition,
windowPosition
);
//组件 LandMarkWindow 宽度
const elWidth = window.document.getElementById("landMarkWindow").offsetWidth;
const elHeight = window.document.getElementById("landMarkBase").offsetHeight;
let showLeft = windowPosition.x - elWidth / 2 + "px";
let showBottom = canvasHeight - windowPosition.y + elHeight + "px";
//使弹窗跟随标点移动
LandMarkWindow.windowPosition.bottom = showBottom;
LandMarkWindow.windowPosition.left = showLeft;
const camerPosition = viewer.camera.position;
let height = viewer.scene.globe.ellipsoid.cartesianToCartographic(camerPosition).height;
height += viewer.scene.globe.ellipsoid.maximumRadius;
if (viewer.camera.positionCartographic.height < 2400) {
LandMarkWindow.buttonText = true;
} else {
LandMarkWindow.buttonText = false;
}
if (viewer.camera.positionCartographic.height > 100000) {
LandMarkWindow.windowShow = false;
}else{
if(!LandMarkWindow.hiddenWindow){
LandMarkWindow.windowShow = true;
}
}
if (viewer.camera.positionCartographic.height > 2400) {
LandMarkShow.boxShow = false;
}
});
handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
handler.setInputAction(function (movement) {
//点击空白处触发
LandMarkWindow.windowShow = false;
LandMarkWindow.hiddenWindow = true;
clearDiv();
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
};
watch(() => LandMarkWindow.flyToLand, (newValue, oldValue) => {
if(LandMarkWindow.flyToLand){
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(
LandMarkWindow.information.landPosition.lng,
LandMarkWindow.information.landPosition.lat,
2000.0
),
});
LandMarkWindow.flyToLand = false;
}
})
const clickPin = () => {
if (props.pintype == "landmark") {
handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
//cesium 监听鼠标事件
handler.setInputAction(function (movement) {
let pick = viewer.scene.pick(movement.position);
//点击标点时触发
if (Cesium.defined(pick) && pick.id.id) {
let id = pick.id.id;
let entiy = viewer.entities.getById(id);
addDynamicLabel(entiy);
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
}
};
</script>

View File

@@ -0,0 +1,74 @@
export const landmarkArr = [
{
landmark:'北京天安门',
position:{
lng:116.391243,
lat:39.907202
},
briefly:`天安门(Tian'anmen),始建于明朝永乐十五年(1417年),设计者为明代御用建筑匠师蒯祥。`,
describes:`天安门(Tian'anmen),坐落在中华人民共和国首都北京市的中心、故宫的南端,与天安门广场以及人民英雄纪念碑、毛主席纪念堂、人民大会堂、中国国家博物馆隔长安街相望,占地面积4800平方米,以杰出的建筑艺术和特殊的政治地位为世人所瞩目。
天安门是明清两代北京皇城的正门,始建于明朝永乐十五年(1417年),最初名“承天门”,寓“承天启运、受命于天”之意。设计者为明代御用建筑匠师蒯祥。清朝顺治八年(1651年)更名为天安门。由城台和城楼两部分组成,有汉白玉石的须弥座,总高34.7米。天安门城楼长66米、宽37米。城台下有券门五阙,中间的券门最大,位于北京市皇城中轴线上,过去只有皇帝才可以由此出入。正中门洞上方悬挂着毛泽东画像,两边分别是“中华人民共和国万岁”和“世界人民大团结万岁”的大幅标语。
1925年10月10日,故宫博物院成立,天安门开始对民众开放。1949年10月1日,在这里举行了中华人民共和国开国大典,由此被设计入国徽,并成为中华人民共和国的象征。1961年,中华人民共和国国务院公布为第一批全国重点文物保护单位之一。`,
imgUrl:'/landmarkImg/TianAnmen/',
imgCount:8
},
{
landmark:'国家体育场',
position:{
lng:116.390502,
lat:39.991396
},
briefly:`国家体育场(National Stadium),又名“鸟巢”(Bird's Nest),位于北京奥林匹克公园中心区南部,为2008年北京奥运会的主体育场。`,
describes:`国家体育场(National Stadium),又名“鸟巢”(Bird's Nest),位于北京奥林匹克公园中心区南部,为2008年北京奥运会的主体育场,举行了2008年夏季奥运会、残奥会开闭幕式、田径比赛及足球比赛决赛,以及2022年冬季奥运会、冬残奥会开闭幕式。
体育场占地20.4万平方米,建筑面积25.8万平方米,可容纳观众9.1万人,其中正式座位8万个,临时座位1.1万个;由雅克·赫尔佐格、德梅隆、艾未未以及李兴钢等设计,由北京城建集团负责施工。体育场的形态如同孕育生命的“巢”和摇篮,寄托着人类对未来的希望。设计者们对这个场馆没有做任何多余的处理,把结构暴露在外,因而自然形成了建筑的外观。
2003年12月24日开工建设,2008年3月完工,总造价22.67亿元。作为国家标志性建筑,2008年奥运会主体育场,国家体育场结构特点十分显著。体育场为特级体育建筑,大型体育场馆。主体结构设计使用年限100年,耐火等级为一级,抗震设防烈度8度,地下工程防水等级1级。2008年奥运会后,国家体育场成为北京市民参与体育活动及享受体育娱乐的大型专业场所,并成为地标性的体育建筑和奥运遗产。`,
imgUrl:'/landmarkImg/BirdsNest/',
imgCount:8
},
{
landmark:'上海东方明珠',
position:{
lng:121.495263,
lat:31.241829
},
briefly:`东方明珠广播电视塔,简称“东方明珠”(Oriental Pearl),位于上海市浦东新区陆家嘴世纪大道1号,地处黄浦江畔,为亚洲第六高塔、世界第九高塔。`,
describes:`东方明珠广播电视塔,简称“东方明珠”(Oriental Pearl),位于上海市浦东新区陆家嘴世纪大道1号,地处黄浦江畔,背拥陆家嘴地区现代化建筑楼群,与隔江的外滩万国建筑博览群交相辉映,1991年7月30日动工建造,1994年10月1日建成投入使用,是集都市观光、时尚餐饮、购物娱乐、历史陈列、浦江游览、会展演出、广播电视发射等多功能于一体的上海市标志性建筑之一。截至2019年,为亚洲第六高塔、世界第九高塔。东方明珠广播电视塔主体为多筒结构,由3根斜撑、3根立柱及广场、塔座、下球体、5个小球体、上球体、太空舱、发射天线桅杆等构成,总高468米,总建筑面积达10万平方米。1995年,东方明珠广播电视塔被评为上海十大新景观之一。1999年,东方明珠广播电视塔获上海市优秀勘察设计一等奖、中国土木工程詹天佑奖。2007年5月8日,东方明珠广播电视塔被中华人民共和国国家旅游局批准为国家AAAAA级旅游景区。`,
imgUrl:'/landmarkImg/OrientalPearl/',
imgCount:8
},
{
landmark:'香港迪士尼',
position:{
lng:114.042287,
lat:22.313002
},
briefly:`香港迪士尼乐园(Hong Kong Disneyland)位于中华人民共和国香港特别行政区新界大屿山,占地126公顷,在2005年9月12日正式开幕。`,
describes:`香港迪士尼乐园(Hong Kong Disneyland)位于中华人民共和国香港特别行政区新界大屿山,占地126公顷,在2005年9月12日正式开幕,由香港特别行政区政府以及华特迪士尼公司联合经营的香港国际主题乐园有限公司建设及营运,是全球第五座、亚洲第二座、中国第一座迪士尼乐园。乐园分为9个主题园区,分别为美国小镇大街、探险世界、幻想世界、明日世界、灰熊山谷、铁甲奇侠总部、反斗奇兵大本营、迷离庄园、魔雪奇缘世界,其中灰熊山谷和迷离庄园为全球独有。园区内设有主题游乐设施、娱乐表演、互动体验、餐饮服务、商品店铺及小食亭。此外,乐园每天晚上会呈献巡游表演节目及烟花汇演。2022年10月,基建咨询服务企业AECOM联合主题娱乐协会TEA发布了《2021全球主题公园和博物馆报告》,香港迪士尼乐园入选全球主题公园Top25排行榜第21名,亚太地区Top 20主题乐园排行榜第10名。`,
imgUrl:'/landmarkImg/HongKongDisneyland/',
imgCount:8
},
{
landmark:'布达拉宫',
position:{
lng:91.117684,
lat:29.656959
},
briefly:`布达拉宫(Potala Palace)位于中国西藏自治区首府拉萨市区西北的玛布日山上,中华人民共和国国务院第一批全国重点文物保护单位之一。是世界文化遗产。`,
describes:`布达拉宫(Potala Palace)位于中国西藏自治区首府拉萨市区西北的玛布日山上,是一座宫堡式建筑群,一说为吐蕃王朝赞普松赞干布为迎娶尺尊公主和文成公主而兴建;另一说为,作为松赞干布迁都拉萨后的王宫而建。于17世纪重建后,成为历代达赖喇嘛的冬宫居所,为西藏政教合一的统治中心。
布达拉宫的主体建筑为白宫和红宫两部分。整座宫殿具有藏式风格,外观13层,实际只有9层。由于它起建于山腰,大面积的石壁又屹立如峭壁,使建筑仿佛与山岗融为一体,气势雄伟。布达拉宫海拔3700米,占地总面积36万平方米,建筑总面积13万平方米,由东部的白宫、中部的红宫组成,主楼高117米。布达拉宫主体建筑的东西两侧分别向下延伸,与高大的宫墙相接。宫墙高6米,底宽4.4米,顶宽2.8米,用夯土砌筑,外包砖石。墙的东、南、西侧各有一座三层的门楼,在东南和西北角还各有一座角楼。宫墙所包围的范围全都属于布达拉宫。
布达拉宫的壁画、木雕及建筑过程中使用的金属冶炼技术均闻名于世,体现了以藏族为主,汉、蒙、满各族能工巧匠高超的技艺。1961年,布达拉宫成为了中华人民共和国国务院第一批全国重点文物保护单位之一。1994年,布达拉宫被列为世界文化遗产。`,
imgUrl:'/landmarkImg/PotalaPalace/',
imgCount:8
},
{
landmark:'西昌卫星发射中心',
position:{
lng:102.026661,
lat:28.245627
},
briefly:`西昌卫星发射中心(英文:Xichang Satellite Launch Center,简称:XSLC,又称“西昌卫星城”),是中国卫星发射基地之一。`,
describes:`西昌卫星发射中心(英文:Xichang Satellite Launch Center,简称:XSLC,又称“西昌卫星城”),是中国卫星发射基地之一。组建于1970年,是中国三大航天发射中心之一,管理使用西昌、文昌两个航天发射场。西昌发射场1982年交付使用,位于四川省凉山彝族自治州冕宁县。西昌发射场地处山区,是全球十大发射场中气候条件最为复杂的发射场之一。`,
imgUrl:'/landmarkImg/XichangSatelliteLaunchCenter/',
imgCount:9
}
]

View File

@@ -0,0 +1,17 @@
import { defineStore } from 'pinia'
export const LandMarkShowStore = defineStore({
id: 'LandMarkShow',
state: () => ({
information: {
landTitle: NaN,
landDescribes: NaN,
landBriefly: NaN,
landImgUrl: NaN,
landPosition: NaN,
landImgCount: NaN
},
boxShow: false,
})
})

View File

@@ -0,0 +1,24 @@
import { defineStore } from 'pinia'
export const LandMarkWindowStore = defineStore({
id: 'LandMarkWindow',
state: () => ({
information: {
landTitle: NaN,
landDescribes: NaN,
landBriefly: NaN,
landImgUrl: NaN,
landPosition: NaN,
landImgCount: NaN
},
windowPosition: {
bottom: NaN,
left: NaN
},
buttonText: false,
windowShow: false,
hiddenWindow: false,
flyToLand: false,
})
})

26
src/stores/flyto.js Normal file
View File

@@ -0,0 +1,26 @@
import { defineStore } from 'pinia'
import { isLnglat } from '/@/api/util'
export const useFlytoStore = defineStore({
id: 'flyto',
state: () => ({
lng: NaN,
lat: NaN,
change:true,
}),
getters: {
value: (state) => { state.lng, state.lat }
},
actions: {
set(flyto) {
if ( !isLnglat(flyto) ) return false
this.lng = flyto.lng
this.lat = flyto.lat
this.change = !this.change
return true
},
},
})

View File

@@ -7,6 +7,7 @@ export const usePositionStore = defineStore({
state: () => ({
lng: NaN,
lat: NaN,
change:true,
}),
getters: {
value: (state) => { state.lng, state.lat }
@@ -17,6 +18,7 @@ export const usePositionStore = defineStore({
this.lng = position.lng
this.lat = position.lat
this.change = !this.change
return true
},

594
yarn.lock
View File

@@ -3,42 +3,54 @@
"@amap/amap-jsapi-loader@^1.0.1":
version "1.0.1"
resolved "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz#9ec4b4d5d2467eac451f6c852e35db69e9f9f0c0"
integrity sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==
"integrity" "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw=="
"resolved" "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz"
"version" "1.0.1"
"@babel/parser@^7.16.4":
version "7.17.8"
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240"
integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==
"integrity" "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ=="
"resolved" "https://registry.npmmirror.com/@babel/parser/-/parser-7.17.8.tgz"
"version" "7.17.8"
"@types/lodash-es@*":
"integrity" "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ=="
"resolved" "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz"
"version" "4.17.12"
dependencies:
"@types/lodash" "*"
"@types/lodash@*":
"integrity" "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA=="
"resolved" "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.7.tgz"
"version" "4.17.7"
"@vitejs/plugin-vue@^2.3.0":
version "2.3.1"
resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-2.3.1.tgz#5f286b8d3515381c6d5c8fa8eee5e6335f727e14"
integrity sha512-YNzBt8+jt6bSwpt7LP890U1UcTOIZZxfpE5WOJ638PNxSEKOqAi0+FSKS0nVeukfdZ0Ai/H7AFd6k3hayfGZqQ==
"integrity" "sha512-YNzBt8+jt6bSwpt7LP890U1UcTOIZZxfpE5WOJ638PNxSEKOqAi0+FSKS0nVeukfdZ0Ai/H7AFd6k3hayfGZqQ=="
"resolved" "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-2.3.1.tgz"
"version" "2.3.1"
"@vue/compiler-core@3.2.31":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.31.tgz#d38f06c2cf845742403b523ab4596a3fda152e89"
integrity sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==
"integrity" "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ=="
"resolved" "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.31.tgz"
"version" "3.2.31"
dependencies:
"@babel/parser" "^7.16.4"
"@vue/shared" "3.2.31"
estree-walker "^2.0.2"
source-map "^0.6.1"
"estree-walker" "^2.0.2"
"source-map" "^0.6.1"
"@vue/compiler-dom@3.2.31":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz#b1b7dfad55c96c8cc2b919cd7eb5fd7e4ddbf00e"
integrity sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==
"integrity" "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg=="
"resolved" "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz"
"version" "3.2.31"
dependencies:
"@vue/compiler-core" "3.2.31"
"@vue/shared" "3.2.31"
"@vue/compiler-sfc@3.2.31":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz#d02b29c3fe34d599a52c5ae1c6937b4d69f11c2f"
integrity sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==
"integrity" "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ=="
"resolved" "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz"
"version" "3.2.31"
dependencies:
"@babel/parser" "^7.16.4"
"@vue/compiler-core" "3.2.31"
@@ -46,399 +58,307 @@
"@vue/compiler-ssr" "3.2.31"
"@vue/reactivity-transform" "3.2.31"
"@vue/shared" "3.2.31"
estree-walker "^2.0.2"
magic-string "^0.25.7"
postcss "^8.1.10"
source-map "^0.6.1"
"estree-walker" "^2.0.2"
"magic-string" "^0.25.7"
"postcss" "^8.1.10"
"source-map" "^0.6.1"
"@vue/compiler-ssr@3.2.31":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz#4fa00f486c9c4580b40a4177871ebbd650ecb99c"
integrity sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==
"integrity" "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw=="
"resolved" "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz"
"version" "3.2.31"
dependencies:
"@vue/compiler-dom" "3.2.31"
"@vue/shared" "3.2.31"
"@vue/devtools-api@^6.1.4":
version "6.1.4"
resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.1.4.tgz#b4aec2f4b4599e11ba774a50c67fa378c9824e53"
integrity sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==
"integrity" "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ=="
"resolved" "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.1.4.tgz"
"version" "6.1.4"
"@vue/reactivity-transform@3.2.31":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz#0f5b25c24e70edab2b613d5305c465b50fc00911"
integrity sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==
"integrity" "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA=="
"resolved" "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz"
"version" "3.2.31"
dependencies:
"@babel/parser" "^7.16.4"
"@vue/compiler-core" "3.2.31"
"@vue/shared" "3.2.31"
estree-walker "^2.0.2"
magic-string "^0.25.7"
"estree-walker" "^2.0.2"
"magic-string" "^0.25.7"
"@vue/reactivity@3.2.31":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.31.tgz#fc90aa2cdf695418b79e534783aca90d63a46bbd"
integrity sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw==
"integrity" "sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw=="
"resolved" "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.31.tgz"
"version" "3.2.31"
dependencies:
"@vue/shared" "3.2.31"
"@vue/runtime-core@3.2.31":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.31.tgz#9d284c382f5f981b7a7b5971052a1dc4ef39ac7a"
integrity sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA==
"integrity" "sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA=="
"resolved" "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.31.tgz"
"version" "3.2.31"
dependencies:
"@vue/reactivity" "3.2.31"
"@vue/shared" "3.2.31"
"@vue/runtime-dom@3.2.31":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.31.tgz#79ce01817cb3caf2c9d923f669b738d2d7953eff"
integrity sha512-N+o0sICVLScUjfLG7u9u5XCjvmsexAiPt17GNnaWHJUfsKed5e85/A3SWgKxzlxx2SW/Hw7RQxzxbXez9PtY3g==
"integrity" "sha512-N+o0sICVLScUjfLG7u9u5XCjvmsexAiPt17GNnaWHJUfsKed5e85/A3SWgKxzlxx2SW/Hw7RQxzxbXez9PtY3g=="
"resolved" "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.31.tgz"
"version" "3.2.31"
dependencies:
"@vue/runtime-core" "3.2.31"
"@vue/shared" "3.2.31"
csstype "^2.6.8"
"csstype" "^2.6.8"
"@vue/server-renderer@3.2.31":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.31.tgz#201e9d6ce735847d5989403af81ef80960da7141"
integrity sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg==
"integrity" "sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg=="
"resolved" "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.31.tgz"
"version" "3.2.31"
dependencies:
"@vue/compiler-ssr" "3.2.31"
"@vue/shared" "3.2.31"
"@vue/shared@3.2.31", "@vue/shared@^3.2.26":
version "3.2.31"
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz#c90de7126d833dcd3a4c7534d534be2fb41faa4e"
integrity sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==
"@vue/shared@^3.2.26", "@vue/shared@3.2.31":
"integrity" "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ=="
"resolved" "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.31.tgz"
"version" "3.2.31"
"@zouyaoji/heatmap.js@^2.0.8":
version "2.0.8"
resolved "https://registry.npmmirror.com/@zouyaoji/heatmap.js/-/heatmap.js-2.0.8.tgz#5f6b285e7635ca07f2ecdb3d83a9dc1d240433d7"
integrity sha512-kBQny/zOUFH2OFoVyu6IdGJEcQMENIAASUsaZhk+OuJ9WexsYf6EU2lCyGURcsFly1kTMZKODlV7nBTCgfvJqg==
"integrity" "sha512-kBQny/zOUFH2OFoVyu6IdGJEcQMENIAASUsaZhk+OuJ9WexsYf6EU2lCyGURcsFly1kTMZKODlV7nBTCgfvJqg=="
"resolved" "https://registry.npmmirror.com/@zouyaoji/heatmap.js/-/heatmap.js-2.0.8.tgz"
"version" "2.0.8"
cesium@^1.92.0:
version "1.92.0"
resolved "https://registry.npmmirror.com/cesium/-/cesium-1.92.0.tgz#d4a736be7f3516830a814c4c99780a385c12a258"
integrity sha512-qU2EIV3M+ru6uF5UQUjUWXeq9UVieMBeq+Q8fzzNbFgeSbLrvnJ7jSJq0vvgaVDPe0PnmN72FZKMDiJdTFpMnQ==
"cesium@^1.92.0":
"integrity" "sha512-qU2EIV3M+ru6uF5UQUjUWXeq9UVieMBeq+Q8fzzNbFgeSbLrvnJ7jSJq0vvgaVDPe0PnmN72FZKMDiJdTFpMnQ=="
"resolved" "https://registry.npmmirror.com/cesium/-/cesium-1.92.0.tgz"
"version" "1.92.0"
csstype@^2.6.8:
version "2.6.20"
resolved "https://registry.npmmirror.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda"
integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==
"csstype@^2.6.8":
"integrity" "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
"resolved" "https://registry.npmmirror.com/csstype/-/csstype-2.6.20.tgz"
"version" "2.6.20"
echarts@^5.2.1:
version "5.3.2"
resolved "https://registry.npmmirror.com/echarts/-/echarts-5.3.2.tgz#0a7b3be8c48a48b2e7cb1b82121df0c208d42d2c"
integrity sha512-LWCt7ohOKdJqyiBJ0OGBmE9szLdfA9sGcsMEi+GGoc6+Xo75C+BkcT/6NNGRHAWtnQl2fNow05AQjznpap28TQ==
"digital-earth@file:":
"resolved" "file:"
"version" "0.0.0"
dependencies:
tslib "2.3.0"
zrender "5.3.1"
"cesium" "^1.92.0"
"digital-earth" "file:"
"pinia" "^2.0.13"
"vue" "^3.2.25"
"vue-cesium" "^3.0.11"
esbuild-android-64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.30.tgz#9efcdb3d826b9c67705a0c518d361ab44ae4cc5b"
integrity sha512-vdJ7t8A8msPfKpYUGUV/KaTQRiZ0vDa2XSTlzXVkGGVHLKPeb85PBUtYJcEgw3htW3IdX5i1t1IMdQCwJJgNAg==
"echarts@^5.2.1":
"integrity" "sha512-LWCt7ohOKdJqyiBJ0OGBmE9szLdfA9sGcsMEi+GGoc6+Xo75C+BkcT/6NNGRHAWtnQl2fNow05AQjznpap28TQ=="
"resolved" "https://registry.npmmirror.com/echarts/-/echarts-5.3.2.tgz"
"version" "5.3.2"
dependencies:
"tslib" "2.3.0"
"zrender" "5.3.1"
esbuild-android-arm64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.30.tgz#7b90fa7578b94da047e0bf3da477cb5775b58664"
integrity sha512-BdgGfxeA5hBQNErLr7BWJUA8xjflEfyaARICy8e0OJYNSAwDbEzOf8LyiKWSrDcgV129mWhi3VpbNQvOIDEHcg==
"esbuild-windows-64@0.14.30":
"integrity" "sha512-DHgITeUhPAnN9I5O6QBa1GVyPOhiYCn4S4TtQr7sO4+X0LNyqnlmA1M0qmGkUdDC1QQfjI8uQ4G/whdWb2pWIQ=="
"resolved" "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.30.tgz"
"version" "0.14.30"
esbuild-darwin-64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.30.tgz#275e40eb100286b868d4cd664e6447b53400f7ff"
integrity sha512-VRaOXMMrsG5n53pl4qFZQdXy2+E0NoLP/QH3aDUI0+bQP+ZHDmbINKcDy2IX7GVFI9kqPS18iJNAs5a6/G2LZg==
esbuild-darwin-arm64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.30.tgz#c2b8fe03fb0dcee1d227b226c9c921de71e4d411"
integrity sha512-qDez+fHMOrO9Oc9qjt/x+sy09RJVh62kik5tVybKRLmezeV4qczM9/sAYY57YN0aWLdHbcCj2YqJUWYJNsgKnw==
esbuild-freebsd-64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.30.tgz#328bb272ce6cfcae202b6e0a06c240036335cc91"
integrity sha512-mec1jENcImVVagddZlGWsdAUwBnzR5cgnhzCxv+9fSMxKbx1uZYLLUAnLPp8m/i934zrumR1xGjJ5VoWdPlI2w==
esbuild-freebsd-arm64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.30.tgz#49ce79fa7d7087a941e27432da46bafb5b35a979"
integrity sha512-cpjbTs6Iok/AfeB0JgTzyUJTMStC1SQULmany5nHx6S4GTkSgaAHuJzZO0GcVWqghI4e0YL/bjXAhN5Mn6feNw==
esbuild-linux-32@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.30.tgz#c473299f5291130f6d4436808603b529ccbfa785"
integrity sha512-liIONVT4F2kZmOMwtwASqZ8WkIjb5HHBR9HUffdHiuotSTF3CyZO+EJf+Og+SYYuuVIvt0qHNSFjBA/iSESteQ==
esbuild-linux-64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.30.tgz#b4be59f0665a44574a7617c9db673943da6061f8"
integrity sha512-LUnpzoMpRqFON5En4qEj6NWiyH6a1K+Y2qYNKrCy5qPTjDoG/EWeqMz69n8Uv7pRuvDKl3FNGJ1dufTrA5i0sw==
esbuild-linux-arm64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.30.tgz#78485a9f49858ea69ced85c3dd0fe58d354f20f8"
integrity sha512-DHZHn6FK5q/KL0fpNT/0jE38Nnyk2rXxKE9WENi95EXtqfOLPgE8tzjTZQNgpr61R95QX4ymQU26ni3IZk8buQ==
esbuild-linux-arm@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.30.tgz#00392bbe04ac687dd6d9849ecee302bc27f984f2"
integrity sha512-97T+bbXnpqf7mfIG49UR7ZSJFGgvc22byn74qw3Kx2GDCBSQoVFjyWuKOHGXp8nXk3XYrdFF+mQ8yQ7aNsgQvg==
esbuild-linux-mips64le@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.30.tgz#cf48a292037c3a9ca3ca84ec0ae4f47bf1247ab4"
integrity sha512-fLUzTFZ7uknC0aPTk7/lM7NmaG/9ZqE3SaHEphcaM009SZK/mDOvZugWi1ss6WGNhk13dUrhkfHcc4FSb9hYhg==
esbuild-linux-ppc64le@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.30.tgz#8e448a54e7040829ee9ecfc68dab0f3a039b1cff"
integrity sha512-2Oudm2WEfj0dNU9bzIl5L/LrsMEmHWsOsYgJJqu8fDyUDgER+J1d33qz3cUdjsJk7gAENayIxDSpsuCszx0w3A==
esbuild-linux-riscv64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.30.tgz#118af007f21adb00c4362d5eda3f004290f4d0ef"
integrity sha512-RPMucPW47rV4t2jlelaE948iCRtbZf5RhifxSwzlpM1Mqdyu99MMNK0w4jFreGTmLN+oGomxIOxD6n+2E/XqHw==
esbuild-linux-s390x@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.30.tgz#e0649e26d8791bf6265685842dcef732de59b49b"
integrity sha512-OZ68r7ok6qO7hdwrwQn2p5jbIRRcUcVaAykB7e0uCA0ODwfeGunILM6phJtq2Oz4dlEEFvd+tSuma3paQKwt+A==
esbuild-netbsd-64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.30.tgz#7653db21ab4379a1b557f338b040e3493ff5006c"
integrity sha512-iyejQUKn0TzpPkufq8pSCxOg9NheycQbMbPCmjefTe9wYuUlBt1TcHvdoJnYbQzsAhAh1BNq+s0ycRsIJFZzaQ==
esbuild-openbsd-64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.30.tgz#3fad1699cb2ca7a060585356e2881df7b3fa5bb1"
integrity sha512-UyK1MTMcy4j5fH260fsE1o6MVgWNhb62eCK2yCKCRazZv8Nqdc2WiP9ygjWidmEdCDS+A6MuVp9ozk9uoQtQpA==
esbuild-sunos-64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.30.tgz#2306a178dc2362cf32fc182327c21b49b78ca1a3"
integrity sha512-aQRtRTNKHB4YuG+xXATe5AoRTNY48IJg5vjE8ElxfmjO9+KdX7MHFkTLhlKevCD6rNANtB3qOlSIeAiXTwHNqw==
esbuild-windows-32@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.30.tgz#ea17b2a9468e346734f926a7edd49de3cc81d12f"
integrity sha512-9/fb1tPtpacMqxAXp3fGHowUDg/l9dVch5hKmCLEZC6PdGljh6h372zMdJwYfH0Bd5CCPT0Wx95uycBLJiqpXA==
esbuild-windows-64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.30.tgz#266147f1f45974ac61dece10ab32bc916050dcc2"
integrity sha512-DHgITeUhPAnN9I5O6QBa1GVyPOhiYCn4S4TtQr7sO4+X0LNyqnlmA1M0qmGkUdDC1QQfjI8uQ4G/whdWb2pWIQ==
esbuild-windows-arm64@0.14.30:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.30.tgz#8e5e9c2455bffaf3e1a387eee4841f5c3797b8a8"
integrity sha512-F1kLyQH7zSgjh5eLxogGZN7C9+KNs9m+s7Q6WZoMmCWT/6j998zlaoECHyM8izJRRfsvw2eZlEa1jO6/IOU1AQ==
esbuild@^0.14.27:
version "0.14.30"
resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.30.tgz#8bf6501a58f71e622e7485aeada79c764c1affe4"
integrity sha512-wCecQSBkIjp2xjuXY+wcXS/PpOQo9rFh4NAKPh4Pm9f3fuLcnxkR0rDzA+mYP88FtXIUcXUyYmaIgfrzRl55jA==
"esbuild@^0.14.27":
"integrity" "sha512-wCecQSBkIjp2xjuXY+wcXS/PpOQo9rFh4NAKPh4Pm9f3fuLcnxkR0rDzA+mYP88FtXIUcXUyYmaIgfrzRl55jA=="
"resolved" "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.30.tgz"
"version" "0.14.30"
optionalDependencies:
esbuild-android-64 "0.14.30"
esbuild-android-arm64 "0.14.30"
esbuild-darwin-64 "0.14.30"
esbuild-darwin-arm64 "0.14.30"
esbuild-freebsd-64 "0.14.30"
esbuild-freebsd-arm64 "0.14.30"
esbuild-linux-32 "0.14.30"
esbuild-linux-64 "0.14.30"
esbuild-linux-arm "0.14.30"
esbuild-linux-arm64 "0.14.30"
esbuild-linux-mips64le "0.14.30"
esbuild-linux-ppc64le "0.14.30"
esbuild-linux-riscv64 "0.14.30"
esbuild-linux-s390x "0.14.30"
esbuild-netbsd-64 "0.14.30"
esbuild-openbsd-64 "0.14.30"
esbuild-sunos-64 "0.14.30"
esbuild-windows-32 "0.14.30"
esbuild-windows-64 "0.14.30"
esbuild-windows-arm64 "0.14.30"
"esbuild-android-64" "0.14.30"
"esbuild-android-arm64" "0.14.30"
"esbuild-darwin-64" "0.14.30"
"esbuild-darwin-arm64" "0.14.30"
"esbuild-freebsd-64" "0.14.30"
"esbuild-freebsd-arm64" "0.14.30"
"esbuild-linux-32" "0.14.30"
"esbuild-linux-64" "0.14.30"
"esbuild-linux-arm" "0.14.30"
"esbuild-linux-arm64" "0.14.30"
"esbuild-linux-mips64le" "0.14.30"
"esbuild-linux-ppc64le" "0.14.30"
"esbuild-linux-riscv64" "0.14.30"
"esbuild-linux-s390x" "0.14.30"
"esbuild-netbsd-64" "0.14.30"
"esbuild-openbsd-64" "0.14.30"
"esbuild-sunos-64" "0.14.30"
"esbuild-windows-32" "0.14.30"
"esbuild-windows-64" "0.14.30"
"esbuild-windows-arm64" "0.14.30"
estree-walker@^2.0.2:
version "2.0.2"
resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
"estree-walker@^2.0.2":
"integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
"resolved" "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz"
"version" "2.0.2"
fsevents@~2.3.2:
version "2.3.2"
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
"function-bind@^1.1.1":
"integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
"resolved" "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz"
"version" "1.1.1"
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
has@^1.0.3:
version "1.0.3"
resolved "https://registry.npmmirror.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
"has@^1.0.3":
"integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
"resolved" "https://registry.npmmirror.com/has/-/has-1.0.3.tgz"
"version" "1.0.3"
dependencies:
function-bind "^1.1.1"
"function-bind" "^1.1.1"
is-core-module@^2.8.1:
version "2.8.1"
resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
"is-core-module@^2.8.1":
"integrity" "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA=="
"resolved" "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz"
"version" "2.8.1"
dependencies:
has "^1.0.3"
"has" "^1.0.3"
lodash-es@^4.17.21:
version "4.17.21"
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
"lodash-es@*", "lodash-es@^4.17.21":
"integrity" "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
"resolved" "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz"
"version" "4.17.21"
lodash-unified@^1.0.1:
version "1.0.2"
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz#bb2694db3533781e5cce984af60cfaea318b83c1"
integrity sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==
"lodash-unified@^1.0.1":
"integrity" "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g=="
"resolved" "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz"
"version" "1.0.2"
lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
"lodash@*", "lodash@^4.17.21":
"integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
"resolved" "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz"
"version" "4.17.21"
magic-string@^0.25.7:
version "0.25.9"
resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
"magic-string@^0.25.7":
"integrity" "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ=="
"resolved" "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz"
"version" "0.25.9"
dependencies:
sourcemap-codec "^1.4.8"
"sourcemap-codec" "^1.4.8"
mgrs@1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/mgrs/-/mgrs-1.0.0.tgz#fb91588e78c90025672395cb40b25f7cd6ad1829"
integrity sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA==
"mgrs@1.0.0":
"integrity" "sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA=="
"resolved" "https://registry.npmmirror.com/mgrs/-/mgrs-1.0.0.tgz"
"version" "1.0.0"
mitt@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/mitt/-/mitt-3.0.0.tgz#69ef9bd5c80ff6f57473e8d89326d01c414be0bd"
integrity sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==
"mitt@^3.0.0":
"integrity" "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
"resolved" "https://registry.npmmirror.com/mitt/-/mitt-3.0.0.tgz"
"version" "3.0.0"
nanoid@^3.3.1:
version "3.3.2"
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557"
integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==
"nanoid@^3.3.1":
"integrity" "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA=="
"resolved" "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.2.tgz"
"version" "3.3.2"
path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
"path-parse@^1.0.7":
"integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
"resolved" "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz"
"version" "1.0.7"
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
"picocolors@^1.0.0":
"integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
"resolved" "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz"
"version" "1.0.0"
pinia@^2.0.13:
version "2.0.13"
resolved "https://registry.npmmirror.com/pinia/-/pinia-2.0.13.tgz#6656fc290dae120a9f0cb2f5c520df400d41b8c5"
integrity sha512-B7rSqm1xNpwcPMnqns8/gVBfbbi7lWTByzS6aPZ4JOXSJD4Y531rZHDCoYWBwLyHY/8hWnXljgiXp6rRyrofcw==
"pinia@^2.0.13":
"integrity" "sha512-B7rSqm1xNpwcPMnqns8/gVBfbbi7lWTByzS6aPZ4JOXSJD4Y531rZHDCoYWBwLyHY/8hWnXljgiXp6rRyrofcw=="
"resolved" "https://registry.npmmirror.com/pinia/-/pinia-2.0.13.tgz"
"version" "2.0.13"
dependencies:
"@vue/devtools-api" "^6.1.4"
vue-demi "*"
"vue-demi" "*"
postcss@^8.1.10, postcss@^8.4.12:
version "8.4.12"
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905"
integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==
"postcss@^8.1.10", "postcss@^8.4.12":
"integrity" "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg=="
"resolved" "https://registry.npmmirror.com/postcss/-/postcss-8.4.12.tgz"
"version" "8.4.12"
dependencies:
nanoid "^3.3.1"
picocolors "^1.0.0"
source-map-js "^1.0.2"
"nanoid" "^3.3.1"
"picocolors" "^1.0.0"
"source-map-js" "^1.0.2"
proj4@^2.7.5:
version "2.8.0"
resolved "https://registry.npmmirror.com/proj4/-/proj4-2.8.0.tgz#b2cb8f3ccd56d4dcc7c3e46155cd02caa804b170"
integrity sha512-baC+YcD4xsSqJ+CpCZljj2gcQDhlKb+J+Zjv/2KSBwWNjk4M0pafgQsE+mWurd84tflMIsP+7j7mtIpFDHzQfQ==
"proj4@^2.7.5":
"integrity" "sha512-baC+YcD4xsSqJ+CpCZljj2gcQDhlKb+J+Zjv/2KSBwWNjk4M0pafgQsE+mWurd84tflMIsP+7j7mtIpFDHzQfQ=="
"resolved" "https://registry.npmmirror.com/proj4/-/proj4-2.8.0.tgz"
"version" "2.8.0"
dependencies:
mgrs "1.0.0"
wkt-parser "^1.3.1"
"mgrs" "1.0.0"
"wkt-parser" "^1.3.1"
resolve@^1.22.0:
version "1.22.0"
resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
"resolve@^1.22.0":
"integrity" "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw=="
"resolved" "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz"
"version" "1.22.0"
dependencies:
is-core-module "^2.8.1"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
"is-core-module" "^2.8.1"
"path-parse" "^1.0.7"
"supports-preserve-symlinks-flag" "^1.0.0"
rollup@^2.59.0:
version "2.70.1"
resolved "https://registry.npmmirror.com/rollup/-/rollup-2.70.1.tgz#824b1f1f879ea396db30b0fc3ae8d2fead93523e"
integrity sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==
"rollup@^2.59.0":
"integrity" "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA=="
"resolved" "https://registry.npmmirror.com/rollup/-/rollup-2.70.1.tgz"
"version" "2.70.1"
optionalDependencies:
fsevents "~2.3.2"
"fsevents" "~2.3.2"
source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
"source-map-js@^1.0.2":
"integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
"resolved" "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz"
"version" "1.0.2"
source-map@^0.6.1:
version "0.6.1"
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
"source-map@^0.6.1":
"integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
"resolved" "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz"
"version" "0.6.1"
sourcemap-codec@^1.4.8:
version "1.4.8"
resolved "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
"sourcemap-codec@^1.4.8":
"integrity" "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
"resolved" "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz"
"version" "1.4.8"
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
"supports-preserve-symlinks-flag@^1.0.0":
"integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
"resolved" "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
"version" "1.0.0"
tslib@2.3.0:
version "2.3.0"
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
"tslib@2.3.0":
"integrity" "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
"resolved" "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz"
"version" "2.3.0"
vite@^2.9.0:
version "2.9.1"
resolved "https://registry.npmmirror.com/vite/-/vite-2.9.1.tgz#84bce95fae210a7beb566a0af06246748066b48f"
integrity sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==
"vite@^2.5.10", "vite@^2.9.0":
"integrity" "sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ=="
"resolved" "https://registry.npmmirror.com/vite/-/vite-2.9.1.tgz"
"version" "2.9.1"
dependencies:
esbuild "^0.14.27"
postcss "^8.4.12"
resolve "^1.22.0"
rollup "^2.59.0"
"esbuild" "^0.14.27"
"postcss" "^8.4.12"
"resolve" "^1.22.0"
"rollup" "^2.59.0"
optionalDependencies:
fsevents "~2.3.2"
"fsevents" "~2.3.2"
vue-cesium@^3.0.11:
version "3.0.11"
resolved "https://registry.npmmirror.com/vue-cesium/-/vue-cesium-3.0.11.tgz#442e45fd85c8bc7e1b095ae66fbeea8f9e141cca"
integrity sha512-8RwRP2S7IhVrJQdjg9rlBE9h/UwjVpTDm6HHez757CXowLqs2zd7fWBW0VxuPeDxTLRZvgy+aVnePYxVxwlQzw==
"vue-cesium@^3.0.11":
"version" "v3.0.11"
dependencies:
"@amap/amap-jsapi-loader" "^1.0.1"
"@vue/shared" "^3.2.26"
"@zouyaoji/heatmap.js" "^2.0.8"
echarts "^5.2.1"
lodash "^4.17.21"
lodash-es "^4.17.21"
lodash-unified "^1.0.1"
mitt "^3.0.0"
proj4 "^2.7.5"
"echarts" "^5.2.1"
"lodash" "^4.17.21"
"lodash-es" "^4.17.21"
"lodash-unified" "^1.0.1"
"mitt" "^3.0.0"
"proj4" "^2.7.5"
vue-demi@*:
version "0.12.5"
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz#8eeed566a7d86eb090209a11723f887d28aeb2d1"
integrity sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==
"vue-demi@*":
"integrity" "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q=="
"resolved" "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz"
"version" "0.12.5"
vue@^3.2.25:
version "3.2.31"
resolved "https://registry.npmmirror.com/vue/-/vue-3.2.31.tgz#e0c49924335e9f188352816788a4cca10f817ce6"
integrity sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw==
"vue@^2.6.14 || ^3.2.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.2.0", "vue@^3.2.25", "vue@3.2.31":
"integrity" "sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw=="
"resolved" "https://registry.npmmirror.com/vue/-/vue-3.2.31.tgz"
"version" "3.2.31"
dependencies:
"@vue/compiler-dom" "3.2.31"
"@vue/compiler-sfc" "3.2.31"
@@ -446,14 +366,14 @@ vue@^3.2.25:
"@vue/server-renderer" "3.2.31"
"@vue/shared" "3.2.31"
wkt-parser@^1.3.1:
version "1.3.2"
resolved "https://registry.npmmirror.com/wkt-parser/-/wkt-parser-1.3.2.tgz#deeff04a21edc5b170a60da418e9ed1d1ab0e219"
integrity sha512-A26BOOo7sHAagyxG7iuRhnKMO7Q3mEOiOT4oGUmohtN/Li5wameeU4S6f8vWw6NADTVKljBs8bzA8JPQgSEMVQ==
"wkt-parser@^1.3.1":
"integrity" "sha512-A26BOOo7sHAagyxG7iuRhnKMO7Q3mEOiOT4oGUmohtN/Li5wameeU4S6f8vWw6NADTVKljBs8bzA8JPQgSEMVQ=="
"resolved" "https://registry.npmmirror.com/wkt-parser/-/wkt-parser-1.3.2.tgz"
"version" "1.3.2"
zrender@5.3.1:
version "5.3.1"
resolved "https://registry.npmmirror.com/zrender/-/zrender-5.3.1.tgz#fa8e63ac7e719cfd563831fe8c42a9756c5af384"
integrity sha512-7olqIjy0gWfznKr6vgfnGBk7y4UtdMvdwFmK92vVQsQeDPyzkHW1OlrLEKg6GHz1W5ePf0FeN1q2vkl/HFqhXw==
"zrender@5.3.1":
"integrity" "sha512-7olqIjy0gWfznKr6vgfnGBk7y4UtdMvdwFmK92vVQsQeDPyzkHW1OlrLEKg6GHz1W5ePf0FeN1q2vkl/HFqhXw=="
"resolved" "https://registry.npmmirror.com/zrender/-/zrender-5.3.1.tgz"
"version" "5.3.1"
dependencies:
tslib "2.3.0"
"tslib" "2.3.0"