From 19df007763d19dd6fa16ac44048e1dbf368186db Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 18 九月 2024 14:47:32 +0800 Subject: [PATCH] 1 --- src/main/java/com/se/simu/helper/ShpHelper.java | 46 +++++++++++++++++++++++----------------------- 1 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/se/simu/helper/ShpHelper.java b/src/main/java/com/se/simu/helper/ShpHelper.java index 4651b1c..21f7f21 100644 --- a/src/main/java/com/se/simu/helper/ShpHelper.java +++ b/src/main/java/com/se/simu/helper/ShpHelper.java @@ -3,8 +3,8 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; -import com.se.simu.domain.SeField; -import com.se.simu.domain.SeLayer; +import com.se.simu.domain.dto.GeField; +import com.se.simu.domain.dto.GeLayer; import lombok.extern.slf4j.Slf4j; import org.gdal.ogr.*; @@ -33,7 +33,7 @@ return options; } - public static boolean createShp(String filePath, SeLayer seLayer) { + public static boolean createShp(String filePath, GeLayer geLayer) { Driver driver = null; DataSource dataSource = null; Layer layer = null; @@ -44,20 +44,20 @@ dataSource = driver.CreateDataSource(filePath, null); if (null == dataSource) return false; - int geoType = getGeometryType(seLayer.getQueryType()); - layer = dataSource.CreateLayer(FileUtil.getName(filePath), seLayer.getDb().getSpatialReference(), geoType, getOptions()); + int geoType = getGeometryType(geLayer.getQueryType()); + layer = dataSource.CreateLayer(FileUtil.getName(filePath), geLayer.getDb().getSpatialReference(), geoType, getOptions()); if (null == layer) return false; - createLayerFields(layer, seLayer.getFields()); + createLayerFields(layer, geLayer.getFields()); FeatureDefn featureDefn = layer.GetLayerDefn(); - for (int i = 0, c = seLayer.getData().size(); i < c; i++) { + for (int i = 0, c = geLayer.getData().size(); i < c; i++) { Feature f = new Feature(featureDefn); - JSONObject data = seLayer.getData().getJSONObject(i).getJSONObject("properties"); - setFeatureData(f, seLayer.getFields(), data); + JSONObject data = geLayer.getData().getJSONObject(i).getJSONObject("properties"); + setFeatureData(f, geLayer.getFields(), data); - JSONObject geom = seLayer.getData().getJSONObject(i).getJSONObject("geometry"); - Geometry g = createGeometry(seLayer, geom); + JSONObject geom = geLayer.getData().getJSONObject(i).getJSONObject("geometry"); + Geometry g = createGeometry(geLayer, geom); f.SetGeometry(g); layer.CreateFeature(f); @@ -72,26 +72,26 @@ } } - private static void setFeatureData(Feature f, List<SeField> fields, JSONObject data) { + private static void setFeatureData(Feature f, List<GeField> fields, JSONObject data) { for (int i = 0, c = fields.size(); i < c; i++) { - SeField seField = fields.get(i); - switch (seField.getType()) { + GeField geField = fields.get(i); + switch (geField.getType()) { case "int": - f.SetField(i, data.getInt(seField.getName())); + f.SetField(i, data.getInt(geField.getName())); break; case "long": - f.SetField(i, data.getLong(seField.getName())); + f.SetField(i, data.getLong(geField.getName())); break; case "double": - f.SetField(i, data.getDouble(seField.getName())); + f.SetField(i, data.getDouble(geField.getName())); break; case "datetime": - long date = data.getLong(seField.getName()); + long date = data.getLong(geField.getName()); Timestamp time = new Timestamp(date); setTimestamp(f, i, time); break; default: - f.SetField(i, data.getStr(seField.getName())); + f.SetField(i, data.getStr(geField.getName())); break; } } @@ -107,7 +107,7 @@ /** * 鍒涘缓Geometry瀵硅薄 */ - private static Geometry createGeometry(SeLayer seLayer, JSONObject geom) { + private static Geometry createGeometry(GeLayer geLayer, JSONObject geom) { String type = geom.getStr("type"); JSONArray cs = geom.getJSONArray("coordinates"); @@ -163,16 +163,16 @@ } } - private static void createLayerFields(Layer layer, List<SeField> fields) { + private static void createLayerFields(Layer layer, List<GeField> fields) { for (int i = 0, c = fields.size(); i < c; i++) { - SeField f = fields.get(i); + GeField f = fields.get(i); FieldDefn fd = new FieldDefn(f.getName(), getFieldType(f)); layer.CreateField(fd, i); } } - private static Integer getFieldType(SeField f) { + private static Integer getFieldType(GeField f) { switch (f.getType()) { case "int": return ogr.OFTInteger; -- Gitblit v1.9.3