From 7096e584c755d996bbb2f5b88ac7a43d10e3d6fa Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 22 八月 2023 13:42:15 +0800 Subject: [PATCH] 修改空间数据的打包下载以支持月球2000坐标系 --- src/main/java/com/moon/server/entity/all/StaticData.java | 14 ++++++++++++++ src/main/java/com/moon/server/helper/GdbHelper.java | 10 ++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/moon/server/entity/all/StaticData.java b/src/main/java/com/moon/server/entity/all/StaticData.java index 44fa25d..3d9b005 100644 --- a/src/main/java/com/moon/server/entity/all/StaticData.java +++ b/src/main/java/com/moon/server/entity/all/StaticData.java @@ -219,6 +219,20 @@ public static final String NO_FILE = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.NOT_FOUND, "鏂囦欢鎵句笉鍒�")); /** + * 鏈堢悆2000鍧愭爣绯荤殑WKT + */ + public static final String MOON_2000_WKT = "GEOGCS[\"GCS_Moon_2000\",\r\n" + + " DATUM[\"D_Moon_2000\",\r\n" + + " SPHEROID[\"Moon_2000_IAU_IAG\",1737400,0,\r\n" + + " AUTHORITY[\"ESRI\",\"107903\"]],\r\n" + + " AUTHORITY[\"ESRI\",\"106903\"]],\r\n" + + " PRIMEM[\"Reference_Meridian\",0,\r\n" + + " AUTHORITY[\"ESRI\",\"108900\"]],\r\n" + + " UNIT[\"degree\",0.0174532925199433,\r\n" + + " AUTHORITY[\"EPSG\",\"9122\"]],\r\n" + + " AUTHORITY[\"ESRI\",\"104903\"]]"; + + /** * 16杩涘埗 */ public static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; diff --git a/src/main/java/com/moon/server/helper/GdbHelper.java b/src/main/java/com/moon/server/helper/GdbHelper.java index 11a2f31..e816903 100644 --- a/src/main/java/com/moon/server/helper/GdbHelper.java +++ b/src/main/java/com/moon/server/helper/GdbHelper.java @@ -475,8 +475,14 @@ srid = geomMapper.selectSrid(tab); } - SpatialReference sr = new SpatialReference(); - sr.ImportFromEPSG(null == srid ? StaticData.I104903 : srid); + // SpatialReference sr = new SpatialReference(); sr.ImportFromEPSG(null == srid || 0 == srid ? StaticData.I104903 : srid) + SpatialReference sr; + if (null == srid || 0 == srid) { + sr = new SpatialReference(StaticData.MOON_2000_WKT); + } else { + sr = new SpatialReference(); + sr.ImportFromEPSG(srid); + } return dataSource.CreateLayer(tab.replace(".", "_"), sr, getGeomType(geomType), null); } -- Gitblit v1.9.3