From d692b45b22f985aff4635a5bb8b8958ae9bcd6dd Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 21 十月 2022 17:50:09 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/helper/GdalHelper.java |   36 +++++++++++++++++++++++++++++++++++-
 1 files changed, 35 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/lf/server/helper/GdalHelper.java b/src/main/java/com/lf/server/helper/GdalHelper.java
index d8df6fe..c4e7e46 100644
--- a/src/main/java/com/lf/server/helper/GdalHelper.java
+++ b/src/main/java/com/lf/server/helper/GdalHelper.java
@@ -1,5 +1,6 @@
 package com.lf.server.helper;
 
+import com.lf.server.entity.ctrl.ShpRecordEntity;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.gdal.gdal.Band;
@@ -41,6 +42,39 @@
 
         // 涓轰簡浣垮睘鎬ц〃瀛楁鏀寔涓枃锛岃娣诲姞涓嬮潰杩欏彞锛欳P936
         gdal.SetConfigOption("SHAPE_ENCODING", "");
+    }
+
+    /**
+     * 鑾峰彇Shp绗竴鏉¤褰曠殑WKT
+     */
+    public static ShpRecordEntity readShpFirstRecord(String filePath) {
+        try {
+            org.gdal.ogr.Driver driver = ogr.GetDriverByName("ESRI shapefile");
+            if (driver == null) {
+                return null;
+            }
+
+            DataSource dataSource = driver.Open(filePath);
+            Layer layer = dataSource.GetLayer(0);
+            if (layer.GetFeatureCount() < 1) {
+                return null;
+            }
+
+            SpatialReference spatialReference = layer.GetSpatialRef();
+            String csid = spatialReference.GetAttrValue("AUTHORITY", 1);
+
+            Feature feature = layer.GetFeature(0);
+            String wkt = feature.GetGeometryRef().ExportToWkt();
+
+            layer.delete();
+            dataSource.delete();
+            driver.delete();
+
+            return new ShpRecordEntity(wkt, csid);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            return null;
+        }
     }
 
     /**
@@ -275,7 +309,7 @@
             return propertyGetter.get(feature, index);
         } catch (Exception ex) {
             // ex.printStackTrace()
-            log.error(ex.getMessage() + ex.getStackTrace() + "\n");
+            log.error(ex.getMessage(), ex);
 
             return null;
         }

--
Gitblit v1.9.3