From fe50dd9614060ad8639a3567b0197fe55842afbd Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 28 八月 2023 16:25:34 +0800
Subject: [PATCH] 修改坐标转换功能

---
 src/main/java/com/moon/server/entity/all/StaticData.java                   |   16 +++++--
 src/main/java/com/moon/server/service/data/UploadService.java              |    4 --
 src/main/java/com/moon/server/controller/show/ComprehensiveController.java |    2 
 src/main/java/com/moon/server/service/data/RasterService.java              |   64 +++++++++++++++----------------
 src/main/java/com/moon/server/service/sys/ProxyService.java                |    2 
 src/main/java/com/moon/server/controller/show/InquiryController.java       |    2 
 src/main/java/com/moon/server/helper/HttpHelper.java                       |    2 
 src/main/resources/mapper/data/MetaMapper.xml                              |    8 ++--
 8 files changed, 50 insertions(+), 50 deletions(-)

diff --git a/src/main/java/com/moon/server/controller/show/ComprehensiveController.java b/src/main/java/com/moon/server/controller/show/ComprehensiveController.java
index eb91ed1..e620347 100644
--- a/src/main/java/com/moon/server/controller/show/ComprehensiveController.java
+++ b/src/main/java/com/moon/server/controller/show/ComprehensiveController.java
@@ -141,7 +141,7 @@
             }
 
             List<MetaFileEntity> meList = baseUploadService.uploadData(null, null, false, req, res);
-            if (meList == null || meList.size() < StaticData.FOUR) {
+            if (meList == null || meList.size() < StaticData.I4) {
                 return fail("娌℃湁鎵惧埌宸蹭笂浼犵殑鏁版嵁鎴栦笉瀹屾暣", null);
             }
 
diff --git a/src/main/java/com/moon/server/controller/show/InquiryController.java b/src/main/java/com/moon/server/controller/show/InquiryController.java
index 67113bd..fe3c001 100644
--- a/src/main/java/com/moon/server/controller/show/InquiryController.java
+++ b/src/main/java/com/moon/server/controller/show/InquiryController.java
@@ -63,7 +63,7 @@
             }
 
             List<MetaFileEntity> list = baseUploadService.uploadData(null, null, false, req, res);
-            if (list == null || list.size() < StaticData.FOUR) {
+            if (list == null || list.size() < StaticData.I4) {
                 return fail("娌℃湁鎵惧埌宸蹭笂浼犵殑鏁版嵁鎴栦笉瀹屾暣", null);
             }
 
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 d563382..0ef5fb3 100644
--- a/src/main/java/com/moon/server/entity/all/StaticData.java
+++ b/src/main/java/com/moon/server/entity/all/StaticData.java
@@ -16,11 +16,17 @@
      */
     public static String[] EXCLUDE_PATH = new String[]{"/sign/", "/perms/", "/floatserver/", "/proxy/", "/swagger", "/error"};
 
-    public final static int TWO = 2;
+    public final static int I0 = 0;
 
-    public final static int THREE = 3;
+    public final static int I1 = 1;
 
-    public final static int FOUR = 4;
+    public final static int I2 = 2;
+
+    public final static int I3 = 3;
+
+    public final static int I4 = 4;
+
+    public final static int I5 = 5;
 
     public final static int NINE = 9;
 
@@ -205,7 +211,7 @@
     /**
      * 鏍呮牸鏁版嵁鎵╁睍鍚�
      */
-    public final static List<String> RASTER_EXT = new ArrayList<>(Arrays.asList(".img", ".tif", ".tiff", "jpg", "jp2"));
+    public final static List<String> RASTER_EXT = new ArrayList<>(Arrays.asList(".img", ".tif", ".tiff", ".jpg", ".jp2"));
 
     /**
      * MPT鏂囦欢鎵╁睍鍚�
@@ -245,7 +251,7 @@
     /**
      * Mapper鎺掗櫎鎵╁睍鍚�
      */
-    public final static List<String> MAPPER_EXCLUDE_EXT = new ArrayList<>(Arrays.asList(".jpg.aux.xml", ".jpg.xml", ".jp2.aux.xml", ".jp2.xml", ".jp2.html", ".jp2.txt", ".img.aux.xml", ".img.xml", ".tif.aux.xml", ".tif.xml", ".tiff.aux.xml", ".tiff.xml", ".shp.xml"));
+    public final static List<String> MAPPER_EXCLUDE_EXT = new ArrayList<>(Arrays.asList(".jpg.aux.xml", ".jpg.xml", ".jp2.aux.xml", ".jp2.xml", ".jp2.html", ".jp2.txt", ".img.aux.xml", ".img.xml", ".tif.aux.xml", ".tif.xml", ".tiff.aux.xml", ".tiff.xml", ".shp.xml", ".ecw.xml", "ecw.aux.xml"));
 
     /**
      * 鎵�鏈夋枃浠舵墿灞曞悕
diff --git a/src/main/java/com/moon/server/helper/HttpHelper.java b/src/main/java/com/moon/server/helper/HttpHelper.java
index 68f9d87..aef4376 100644
--- a/src/main/java/com/moon/server/helper/HttpHelper.java
+++ b/src/main/java/com/moon/server/helper/HttpHelper.java
@@ -304,7 +304,7 @@
                         .replace("?" + res.getArgs() + "&amp;", "?").replace("&amp;" + res.getArgs() + "&amp;", "&amp;");
             }
 
-            if (StaticData.THREE == res.getCategory() && str.contains(StaticData.REST_LAYER)) {
+            if (StaticData.I3 == res.getCategory() && str.contains(StaticData.REST_LAYER)) {
                 str = str.replace(res.getUrl().replace("/v6/wmts/", StaticData.REST_LAYER), proxyUrl.replace("/proxy/", "/proxy/rest/"));
             }
         }
diff --git a/src/main/java/com/moon/server/service/data/RasterService.java b/src/main/java/com/moon/server/service/data/RasterService.java
index b82a7a1..e16e9ff 100644
--- a/src/main/java/com/moon/server/service/data/RasterService.java
+++ b/src/main/java/com/moon/server/service/data/RasterService.java
@@ -58,22 +58,20 @@
             }
 
             ds = gdal.Open(file, gdalconst.GA_ReadOnly);
-            if (null == ds || ds.getRasterCount() == 0) {
+            if (null == ds || ds.getRasterCount() == 0 || null == ds.GetSpatialRef()) {
                 return;
             }
 
             SpatialReference sr = ds.GetSpatialRef();
-            if (sr != null) {
-                // 鍧愭爣绯荤粺
-                mf.setCoorSys(sr.GetName());
-                if (StaticData.MOON200.equals(mf.getCoorSys())) {
-                    // EPSG缂栫爜
-                    mf.setEpsg("ESRI:" + StaticData.I104903);
-                } else {
-                    String code = sr.GetAuthorityCode(null);
-                    // EPSG缂栫爜
-                    mf.setEpsg(StringHelper.isEmpty(code) ? null : "EPSG:" + code);
-                }
+            // 鍧愭爣绯荤粺
+            mf.setCoorSys(sr.GetName());
+            if (StaticData.MOON200.equals(mf.getCoorSys())) {
+                // EPSG缂栫爜
+                mf.setEpsg("ESRI:" + StaticData.I104903);
+            } else {
+                // EPSG缂栫爜锛歅ROJCS銆丟EOGCS銆丟EOGCS|UNIT 鎴� NULL
+                String code = sr.GetAuthorityCode(null);
+                mf.setEpsg(StringHelper.isEmpty(code) ? null : "EPSG:" + code);
             }
 
             // 琛屽垪鏁�
@@ -90,11 +88,11 @@
             mf.sethDatum(null);
 
             // 鍒嗚鲸鐜�
-            double[] transform = new double[6];
-            ds.GetGeoTransform(transform);
-            mf.setResolution(String.format("%f,%f", transform[1], transform[5]));
+            double[] tr = new double[6];
+            ds.GetGeoTransform(tr);
+            mf.setResolution(String.format("%f,%f", tr[1], tr[5]));
 
-            if (!StaticData.EPSGS.contains(mf.getEpsg())) {
+            if (tr[StaticData.I0] == 0.0 && tr[StaticData.I1] == 1.0 && tr[StaticData.I2] == 0.0 && tr[StaticData.I3] == 0.0 && tr[StaticData.I4] == 0.0 && tr[StaticData.I5] == 1.0) {
                 return;
             }
             Geometry minPoint = getMinPoint(ds);
@@ -164,58 +162,58 @@
         double[] transform = new double[6];
         ds.GetGeoTransform(transform);
 
-        String epsg = ds.GetSpatialRef().GetAuthorityCode(null);
         double xMin = transform[0];
         double yMin = transform[3] - ds.getRasterYSize() * transform[1];
 
         Geometry point = new Geometry(ogr.wkbPoint);
         point.AddPoint(xMin, yMin, 0);
 
-        return transform(ds, point, epsg);
+        return transform(ds, point);
     }
 
     /**
      * 鑾峰彇Dataset鐨勬渶澶х偣
      */
     private Geometry getMaxPoint(Dataset ds) {
+        /**
+         * transform[0] 宸︿笂瑙抶鍧愭爣
+         * transform[1] 涓滆タ鏂瑰悜鍒嗚鲸鐜�
+         * transform[2] 鏃嬭浆瑙掑害, 0琛ㄧず鍥惧儚 "鍖楁柟鏈濅笂"
+         *
+         * transform[3] 宸︿笂瑙抷鍧愭爣
+         * transform[4] 鏃嬭浆瑙掑害, 0琛ㄧず鍥惧儚 "鍖楁柟鏈濅笂"
+         * transform[5] 鍗楀寳鏂瑰悜鍒嗚鲸鐜�
+         */
         double[] transform = new double[6];
         ds.GetGeoTransform(transform);
 
-        String epsg = ds.GetSpatialRef().GetAuthorityCode(null);
         double xMax = transform[0] + (ds.getRasterXSize() * transform[1]);
         double yMax = transform[3];
 
         Geometry point = new Geometry(ogr.wkbPoint);
         point.AddPoint(xMax, yMax, 0);
 
-        return transform(ds, point, epsg);
+        return transform(ds, point);
     }
 
     /**
      * 鍧愭爣杞崲
      */
-    private Geometry transform(Dataset ds, Geometry point, String epsg) {
+    private Geometry transform(Dataset ds, Geometry point) {
         this.initSpatialReference();
 
-        if (StringHelper.isEmpty(epsg)) {
-            point.AssignSpatialReference(sr104903);
-            return point;
-        }
-        if (String.valueOf(StaticData.I4326).equals(epsg)) {
-            point.AssignSpatialReference(sr4326);
-            return point;
-        }
-        if (String.valueOf(StaticData.I4490).equals(epsg)) {
-            point.AssignSpatialReference(sr4490);
+        point.AssignSpatialReference(ds.GetSpatialRef());
+        if (ds.GetSpatialRef().IsGeographic() > 0) {
             return point;
         }
 
-        point.AssignSpatialReference(ds.GetSpatialRef());
-        if (ds.GetSpatialRef().GetName().contains(StaticData.CGCS2000)) {
+        String srsName = ds.GetSpatialRef().GetName();
+        if (srsName.contains(StaticData.CGCS2000)) {
             point.TransformTo(sr4490);
         } else {
             point.TransformTo(sr4326);
         }
+        point.SwapXY();
 
         return point;
     }
diff --git a/src/main/java/com/moon/server/service/data/UploadService.java b/src/main/java/com/moon/server/service/data/UploadService.java
index 9f95e0e..95c8c17 100644
--- a/src/main/java/com/moon/server/service/data/UploadService.java
+++ b/src/main/java/com/moon/server/service/data/UploadService.java
@@ -73,13 +73,9 @@
     public void insertFiles(UserEntity ue, List<MetaFileEntity> list, HttpServletRequest req) {
         checkMetaFiles(ue, list);
         readRasterInfo(list);
-        List<MetaFileEntity> xlsList = getExcelFiles(list);
         loadData(list);
         copyFiles(list);
         insertMetas(list);
-        if (xlsList.size() > 0) {
-            String guid = excelLoader(xlsList, req);
-        }
     }
 
     /**
diff --git a/src/main/java/com/moon/server/service/sys/ProxyService.java b/src/main/java/com/moon/server/service/sys/ProxyService.java
index 454dcbe..3168113 100644
--- a/src/main/java/com/moon/server/service/sys/ProxyService.java
+++ b/src/main/java/com/moon/server/service/sys/ProxyService.java
@@ -56,7 +56,7 @@
 
         // 9.鑾峰彇璧勬簮瀹炰綋
         ResEntity entity = getResEntity(ue, resId);
-        if (null == entity || StaticData.TWO != entity.getStatus() || StringHelper.isNull(entity.getProxy()) || StringHelper.isNull(entity.getUrl())) {
+        if (null == entity || StaticData.I2 != entity.getStatus() || StringHelper.isNull(entity.getProxy()) || StringHelper.isNull(entity.getUrl())) {
             WebHelper.writeStr2Page(res, ILLEGAL_RESOURCE);
             return;
         }
diff --git a/src/main/resources/mapper/data/MetaMapper.xml b/src/main/resources/mapper/data/MetaMapper.xml
index d483060..5e89121 100644
--- a/src/main/resources/mapper/data/MetaMapper.xml
+++ b/src/main/resources/mapper/data/MetaMapper.xml
@@ -213,7 +213,7 @@
         insert into lf.sys_meta
         (eventid,metaid,verid,name,type,guid,path,sizes,tab,rows,create_user,create_time,bak,geom,layer,depcode,dircode,ismeta,sensortype,acq_time,resolution,gridsize,coor_sys,epsg,h_datum,mata_type,bands,band_type,ct)
         values
-        (#{eventid},#{metaid},#{verid},#{name},#{type},#{guid},#{path},#{sizes},#{tab},#{rows},#{createUser},now(),#{bak},${geom},#{layer},#{depcode},#{dircode},#{ismeta},#{sensortype},now(),#{resolution},#{gridsize},#{coorSys},#{epsg},#{hDatum},#{mataType},#{bands},#{bandType},#{ct})
+        (#{eventid},#{metaid},#{verid},#{name},#{type},#{guid},#{path},#{sizes},#{tab},#{rows},#{createUser},now(),#{bak},${geom},#{layer},#{depcode},#{dircode},#{ismeta},#{sensortype},#{acqTime},#{resolution},#{gridsize},#{coorSys},#{epsg},#{hDatum},#{mataType},#{bands},#{bandType},#{ct})
     </insert>
 
     <insert id="inserts">
@@ -221,7 +221,7 @@
         (eventid,metaid,verid,name,type,guid,path,sizes,tab,rows,create_user,create_time,bak,geom,layer,depcode,dircode,ismeta,sensortype,acq_time,resolution,gridsize,coor_sys,epsg,h_datum,mata_type,bands,band_type,ct)
         values
         <foreach collection="list" item="item" index="index" separator=",">
-            (#{item.eventid},#{item.metaid},#{item.verid},#{item.name},#{item.type},#{item.guid},#{item.path},#{item.sizes},#{item.tab},#{item.rows},#{item.createUser},now(),#{item.bak},${item.geom},#{item.layer},#{item.depcode},#{item.dircode},#{item.ismeta},#{item.sensortype},now(),#{item.resolution},#{item.gridsize},#{item.coorSys},#{item.epsg},#{item.hDatum},#{item.mataType},#{item.bands},#{item.bandType},#{item.ct})
+            (#{item.eventid},#{item.metaid},#{item.verid},#{item.name},#{item.type},#{item.guid},#{item.path},#{item.sizes},#{item.tab},#{item.rows},#{item.createUser},now(),#{item.bak},${item.geom},#{item.layer},#{item.depcode},#{item.dircode},#{item.ismeta},#{item.sensortype},#{item.acqTime},#{item.resolution},#{item.gridsize},#{item.coorSys},#{item.epsg},#{item.hDatum},#{item.mataType},#{item.bands},#{item.bandType},#{item.ct})
         </foreach>
     </insert>
 
@@ -241,14 +241,14 @@
 
     <update id="update">
         update lf.sys_meta
-        set eventid=#{eventid},metaid=#{metaid},verid=#{verid},name=#{name},type=#{type},guid=#{guid},path=#{path},sizes=#{sizes},tab=#{tab},rows=#{rows},update_user=#{updateUser},update_time=now(),bak=#{bak},geom=${geom},layer=#{layer},depcode=#{depcode},dircode=#{dircode},ismeta=#{ismeta},sensortype=#{sensortype},acq_time=now(),resolution=#{resolution},gridsize=#{gridsize},coor_sys=#{coorSys},epsg=#{epsg},h_datum=#{hDatum},mata_type=#{mataType},bands=#{bands},band_type=#{bandType},ct=#{ct}
+        set eventid=#{eventid},metaid=#{metaid},verid=#{verid},name=#{name},type=#{type},guid=#{guid},path=#{path},sizes=#{sizes},tab=#{tab},rows=#{rows},update_user=#{updateUser},update_time=now(),bak=#{bak},geom=${geom},layer=#{layer},depcode=#{depcode},dircode=#{dircode},ismeta=#{ismeta},sensortype=#{sensortype},acq_time=#{acqTime},resolution=#{resolution},gridsize=#{gridsize},coor_sys=#{coorSys},epsg=#{epsg},h_datum=#{hDatum},mata_type=#{mataType},bands=#{bands},band_type=#{bandType},ct=#{ct}
         where id=#{id}
     </update>
 
     <update id="updates">
         <foreach collection="list" item="item" index="index" separator=";">
             update lf.sys_meta
-            set eventid=#{item.eventid},metaid=#{item.metaid},verid=#{item.verid},name=#{item.name},type=#{item.type},guid=#{item.guid},path=#{item.path},sizes=#{item.sizes},tab=#{item.tab},rows=#{item.rows},update_user=#{item.updateUser},update_time=now(),bak=#{item.bak},geom=${item.geom},layer=#{item.layer},depcode=#{item.depcode},dircode=#{item.dircode},ismeta=#{item.ismeta},sensortype=#{item.sensortype},acq_time=now(),resolution=#{item.resolution},gridsize=#{item.gridsize},coor_sys=#{item.coorSys},epsg=#{item.epsg},h_datum=#{item.hDatum},mata_type=#{item.mataType},bands=#{item.bands},band_type=#{item.bandType},ct=#{item.ct}
+            set eventid=#{item.eventid},metaid=#{item.metaid},verid=#{item.verid},name=#{item.name},type=#{item.type},guid=#{item.guid},path=#{item.path},sizes=#{item.sizes},tab=#{item.tab},rows=#{item.rows},update_user=#{item.updateUser},update_time=now(),bak=#{item.bak},geom=${item.geom},layer=#{item.layer},depcode=#{item.depcode},dircode=#{item.dircode},ismeta=#{item.ismeta},sensortype=#{item.sensortype},acq_time=#{item.acqTime},resolution=#{item.resolution},gridsize=#{item.gridsize},coor_sys=#{item.coorSys},epsg=#{item.epsg},h_datum=#{item.hDatum},mata_type=#{item.mataType},bands=#{item.bands},band_type=#{item.bandType},ct=#{item.ct}
             where id = #{item.id}
         </foreach>
     </update>

--
Gitblit v1.9.3