From 3e0b038b5c61aa26a5be2fffada678e9dad58aa2 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 14 九月 2024 10:17:51 +0800
Subject: [PATCH] 1

---
 src/main/java/com/se/simu/helper/ShpHelper.java |   43 +++++++++++++++++++++----------------------
 1 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/se/simu/helper/ShpHelper.java b/src/main/java/com/se/simu/helper/ShpHelper.java
index d8705c2..61ee8c0 100644
--- a/src/main/java/com/se/simu/helper/ShpHelper.java
+++ b/src/main/java/com/se/simu/helper/ShpHelper.java
@@ -1,5 +1,6 @@
 package com.se.simu.helper;
 
+import cn.hutool.core.io.FileUtil;
 import com.se.simu.domain.SeLayer;
 import lombok.extern.slf4j.Slf4j;
 import org.gdal.ogr.*;
@@ -21,28 +22,20 @@
 @Slf4j
 @SuppressWarnings("ALL")
 public class ShpHelper {
-    public static boolean createShp(String path, SeLayer seLayer) {
+    public static boolean createShp(String filePath, SeLayer seLayer) {
         Driver driver = null;
         DataSource dataSource = null;
         Layer layer = null;
         try {
-//            driver = ogr.GetDriverByName("ESRI shapefile");
-//            if (null == driver) {
-//                return null;
-//            }
-//
-//            String filePath = path + File.separator + type.toLowerCase() + ".shp";
-//            // DataSource ds = driver.Open(filePath, 0)
-//            dataSource = driver.CreateDataSource(filePath, null);
-//            if (null == dataSource) {
-//                return null;
-//            }
-//
-//            int geoType = getGeometryType(type);
-//            layer = dataSource.CreateLayer(type.toLowerCase(), GeoHelper.sr104903, geoType);
-//            if (null == layer) {
-//                return null;
-//            }
+            driver = ogr.GetDriverByName("ESRI shapefile");
+            if (null == driver) return false;
+
+            dataSource = driver.CreateDataSource(filePath, null);
+            if (null == dataSource) return false;
+
+            int geoType = getGeometryType(seLayer.getQueryType());
+            layer = dataSource.CreateLayer(FileUtil.getName(filePath), null, geoType);
+            if (null == layer) return false;
 //
 //            List<Field> fields = new ArrayList<>();
 //            GdbHelper.getFields(MarkJsonEntity.class, fields, StaticData.MARK_EXCLUDE_FIELDS);
@@ -68,17 +61,23 @@
         }
     }
 
+    public static void ss(){
+
+
+    }
+
     /**
      * 鑾峰彇鍥惧舰绫诲瀷
      */
     private static int getGeometryType(String type) {
         switch (type) {
-            case "POINT":
+            case "point":
                 return ogr.wkbPoint;
-            case "LINESTRING":
+            case "polyline":
                 return ogr.wkbLineString;
-            case "POLYGON":
-                return ogr.wkbPolygon;
+            case "polygon":
+                // return ogr.wkbPolygon
+                return ogr.wkbMultiPolygon;
             default:
                 return ogr.wkbUnknown;
         }

--
Gitblit v1.9.3