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