加载断裂带,同时允许cesium加载EPSG:4490数据

This commit is contained in:
wzy-warehouse
2026-04-16 09:32:33 +08:00
parent b3ba81dfe2
commit 360ea7ad2e
7 changed files with 131539 additions and 1 deletions
+20
View File
@@ -5,6 +5,8 @@ import App from './App.vue';
import router from './router';
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
import 'element-plus/dist/index.css';
import proj4 from 'proj4';
import { Cartesian3, GeoJsonDataSource } from 'cesium';
const app = createApp(App);
@@ -16,3 +18,21 @@ app.use(createPinia());
app.use(router);
app.mount('#app');
// 定义 EPSG:4490 (CGCS2000)
proj4.defs('EPSG:4490', '+proj=longlat +ellps=GRS80 +no_defs +type=crs');
// 定义 EPSG:4326 (WGS84)
proj4.defs('EPSG:4326', '+proj=longlat +datum=WGS84 +no_defs +type=crs');
// 坐标转换函数
const transformFunc = proj4('EPSG:4490', 'EPSG:4326').forward;
// 将坐标转换函数注册给Cesium,让它能自动处理所有标记为EPSG:4490的坐标数据
GeoJsonDataSource.crsNames['EPSG:4490'] = function (coordinates: number[]) {
const [x, y] = coordinates;
// 使用 proj4 进行坐标转换
const [lon, lat] = transformFunc([x, y]);
// 返回 Cesium 能识别的笛卡尔坐标
return Cartesian3.fromDegrees(lon, lat);
};