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