加载断裂带,同时允许cesium加载EPSG:4490数据
This commit is contained in:
+20
@@ -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);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user