vue3+ts+vite+cesium 加载天地图影像、标注等多服务器随机加载切换版本
在Vue 3, TypeScript, 和 Vite 环境中,使用Cesium加载天地图影像和标注,并随机切换不同版本的服务器,可以通过以下步骤实现:
- 安装并设置Cesium。
- 配置不同的服务器URL。
- 使用Cesium的
ImageryLayer
来加载天地图影像。 - 使用
Entity
和Viewer
来添加标注。 - 使用随机数来随机选择服务器版本。
以下是示例代码:
<template>
<div id="cesiumContainer" style="width: 100%; height: 100vh;"></div>
</template>
<script lang="ts">
import { defineComponent, onMounted, ref } from 'vue';
import Cesium from 'cesium';
const TILE_SERVERS = [
'http://t0.tianditu.gov.cn/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles',
'http://t1.tianditu.gov.cn/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles',
// ... 其他服务器URL
];
export default defineComponent({
setup() {
let viewer: Cesium.Viewer;
const randomServerIndex = Math.floor(Math.random() * TILE_SERVERS.length);
const tileServerUrl = TILE_SERVERS[randomServerIndex];
onMounted(() => {
viewer = new Cesium.Viewer('cesiumContainer', {
imageryProvider: new Cesium.WebMapTileServiceImageryProvider({
url: tileServerUrl,
layer: 'tdtImgBasicLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
}),
});
// 添加标注
const position = Cesium.Cartesian3.fromDegrees(116.4076943200, 39.8994345413);
viewer.entities.add({
position: position,
point: {
pixelSize: 10,
color: Cesium.Color.RED,
},
});
});
return {};
},
});
</script>
<style>
/* 你的CSS样式 */
</style>
在这个例子中,我们首先定义了一个服务器URL数组TILE_SERVERS
。在onMounted
钩子中,我们随机选择一个服务器URL,并使用它来创建Cesium的WebMapTileServiceImageryProvider
,然后将其作为影像图层添加到Cesium的Viewer中。同时,我们添加了一个红色的标注点到地图上指定的位置。
请确保你已经安装了Cesium依赖,并且正确配置了Cesium的资源路径。此外,服务器URL应该是可以访问的,并且与天地图的服务兼容。
评论已关闭