src/main/java/com/lf/server/config/InitConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/entity/all/BaseEntity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/entity/all/StaticData.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/helper/GdbHelper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/mapper/all/GeomBaseMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/data/DataLoaderService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/show/DataLibService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/lf/server/config/InitConfig.java
@@ -96,11 +96,11 @@ private void testBatchUpdate() { DlgagnpEntity d1 = new DlgagnpEntity(); d1.setGid(56); d1.setGid(56L); d1.setGb("10"); d1.setName("a01"); DlgagnpEntity d2 = new DlgagnpEntity(); d2.setGid(57); d2.setGid(57L); d2.setGb("20"); d2.setName("a02"); src/main/java/com/lf/server/entity/all/BaseEntity.java
@@ -13,7 +13,7 @@ */ public class BaseEntity implements Serializable { @TableId(type = IdType.AUTO) private Integer gid; private Long gid; private String eventid; @@ -49,11 +49,11 @@ public BaseEntity() { } public Integer getGid() { public Long getGid() { return gid; } public void setGid(Integer gid) { public void setGid(Long gid) { this.gid = gid; } src/main/java/com/lf/server/entity/all/StaticData.java
@@ -92,5 +92,5 @@ /** * GDB排除字段 */ public final static List<String> GDB_EXCLUDE_FIELDS= new ArrayList<>(Arrays.asList("geom", "objectid", "shape_leng", "shape_area")); public final static List<String> GDB_EXCLUDE_FIELDS= new ArrayList<>(Arrays.asList("geom", "objectid", "shape_leng", "shape_area", "serialVersionUID", "dirName", "depName", "verName", "createName", "updateName")); } src/main/java/com/lf/server/helper/GdbHelper.java
@@ -330,12 +330,11 @@ Driver driver = null; DataSource dataSource = null; try { driver = ogr.GetDriverByName("OpenFileGDB"); driver = ogr.GetDriverByName("FileGDB"); if (null == driver) { return; } dataSource = driver.CreateDataSource(filePath); dataSource = driver.CreateDataSource(filePath, null); if (null == dataSource) { return; } @@ -354,12 +353,12 @@ String className = ClassHelper.getClassName(baseMapper); Class clazz = ClassHelper.getEntityClass(className); Field gField = getGeomField(clazz); if (null == gField) { if (null == clazz) { continue; } List<Field> fields = new ArrayList<>(); fields.add(getGeomField(clazz)); getFields(clazz, fields); addLayerField(layer, fields); @@ -454,22 +453,14 @@ * 添加图层字段 */ private static void addLayerField(Layer layer, List<Field> list) { for (int i = 0, c = list.size(); i < c; i++) { for (int i = 1, c = list.size(); i < c; i++) { Field f = list.get(i); FieldDefn fd = getLayerField(f); int fieldType = getFieldType(f); FieldDefn fd = new FieldDefn(f.getName(), fieldType); layer.CreateField(fd, i); } } private static FieldDefn getLayerField(Field f ) { int fieldType = getFieldType(f); FieldDefn fd = new FieldDefn(f.getName(), fieldType); if (fieldType == ogr.OFTString) { // fd.SetWidth(100) } return fd; } /** @@ -505,36 +496,40 @@ Geometry geom = Geometry.CreateFromWkt(geoEntity.getGeom()); f.SetGeometry(geom); for (int i = 0, c = fields.size(); i < c; i++) { for (int i = 1, c = fields.size(); i < c; i++) { Field field = fields.get(i); Object val = field.get(t); if (null == val) { continue; } switch (field.getType().getName()) { case "java.math.BigDecimal": case "java.lang.Double": case "double": Double d = field.getDouble(t); double d = (double) val; f.SetField(i, d); break; case "java.lang.Long": case "long": Long l = field.getLong(t); long l = (long) val; f.SetField(i, l); break; case "java.lang.Integer": case "int": Integer n = field.getInt(t); int n = (int) val; f.SetField(i, n); break; case "java.sql.Timestamp": Timestamp time = null == field.get(t) ? null : (Timestamp) field.get(t); Timestamp time = (Timestamp) field.get(t); setTimestamp(f, i, time); break; default: String str = null == field.get(t) ? null : (String) field.get(t); String str = (String) val; f.SetField(i, str); break; } } layer.CreateFeature(f); } } src/main/java/com/lf/server/mapper/all/GeomBaseMapper.java
@@ -47,5 +47,5 @@ * @return 影响行数 */ @Update("update ${tab} set geom = ST_GeomFromText('${wkt}') where gid = #{gid}") public Integer updateGeom(@Param("tab") String tab, @Param("gid") Integer gid, @Param("wkt") String wkt); public Integer updateGeom(@Param("tab") String tab, @Param("gid") Long gid, @Param("wkt") String wkt); } src/main/java/com/lf/server/service/data/DataLoaderService.java
@@ -423,7 +423,7 @@ double y = (double) yField.get(t); BaseEntity baseEntity = (BaseEntity) t; Integer gid = baseEntity.getGid(); Long gid = baseEntity.getGid(); String wkt = String.format("POINT(%f %f)", x, y); geomBaseMapper.updateGeom(tabName, gid, wkt); @@ -482,7 +482,7 @@ String tabName = BaseQueryService.getTabName(geomBaseMapper); for (T t : list) { BaseEntity baseEntity = (BaseEntity) t; Integer gid = baseEntity.getGid(); Long gid = baseEntity.getGid(); Field gField = t.getClass().getDeclaredField("geom"); gField.setAccessible(true); src/main/java/com/lf/server/service/show/DataLibService.java
@@ -39,9 +39,20 @@ return null; } String tempName = StringHelper.YMDHMS2_FORMAT.format(new Date()); String tempPath = pathHelper.getTempPath(tempName); String filePath = tempPath + File.separator + tempName + ".gdb"; //String tempName = StringHelper.YMDHMS2_FORMAT.format(new Date()); //String tempPath = pathHelper.getTempPath(tempName); //String filePath = tempPath + File.separator + tempName + ".gdb"; String filePath = "D:\\LF\\temp\\20221219202706\\20221219202705.gdb"; File file = new File(filePath); if (!file.exists() || !file.isDirectory()) { file.mkdirs(); } filePath = "D:\\LF\\temp\\20221219202706\\2022.gdb"; if (file.exists() && file.isDirectory()) { FileHelper.deleteDir(filePath); } GdbHelper.createGdb(filePath, map); return null; @@ -81,7 +92,7 @@ */ private QueryWrapper createWrapper(GeomBaseMapper baseMapper, String wkt) { QueryWrapper wrapper = new QueryWrapper(); wrapper.select("ST_AsText(geom) as geom"); wrapper.select("ST_AsText(geom) as geom, *"); Integer srid = baseQueryService.getSrid(baseMapper); wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid));