src/main/java/com/lf/server/helper/GdalHelper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/helper/GdbHelper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/helper/MdbHelper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/data/DataLoaderService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/lf/server/helper/GdalHelper.java
@@ -28,20 +28,20 @@ public class GdalHelper { private final static Log log = LogFactory.getLog(GdalHelper.class); public static void init() { // æ³¨åææçé©±å¨ gdal.AllRegister(); public static void init() { // æ³¨åææçé©±å¨ gdal.AllRegister(); // ä¸ºäºæ¯æä¸æè·¯å¾ï¼è¯·æ·»å ä¸é¢è¿å¥ä»£ç gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES"); // ä¸ºäºæ¯æä¸æè·¯å¾ï¼è¯·æ·»å ä¸é¢è¿å¥ä»£ç gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES"); // é ç½®GDAL_DATAè·¯å¾ï¼gdalæ ¹ç®å½ä¸çbin\gdal-dataï¼ // gdal.SetConfigOption("GDAL_DATA", "E:\\terrait\\TianJin\\Zip\\release-1928-x64-dev\\release-1928-x64\\bin\\gdal-data"); // gdal.SetConfigOption("PROJ_LIB", "E:\\terrait\\TianJin\\Zip\\release-1928-x64-dev\\release-1928-x64\\bin\\proj7\\share"); // é ç½®GDAL_DATAè·¯å¾ï¼gdalæ ¹ç®å½ä¸çbin\gdal-dataï¼ // gdal.SetConfigOption("GDAL_DATA", "E:\\terrait\\TianJin\\Zip\\release-1928-x64-dev\\release-1928-x64\\bin\\gdal-data"); // gdal.SetConfigOption("PROJ_LIB", "E:\\terrait\\TianJin\\Zip\\release-1928-x64-dev\\release-1928-x64\\bin\\proj7\\share"); // 为äºä½¿å±æ§è¡¨åæ®µæ¯æä¸æï¼è¯·æ·»å ä¸é¢è¿å¥ï¼CP936 gdal.SetConfigOption("SHAPE_ENCODING", ""); } // 为äºä½¿å±æ§è¡¨åæ®µæ¯æä¸æï¼è¯·æ·»å ä¸é¢è¿å¥ï¼CP936 gdal.SetConfigOption("SHAPE_ENCODING", ""); } /** * 读åtifæä»¶ @@ -238,7 +238,7 @@ } while (true); } } catch (Exception ex) { ex.printStackTrace(); log.error(ex.getMessage(), ex); } } src/main/java/com/lf/server/helper/GdbHelper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,42 @@ package com.lf.server.helper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.gdal.ogr.DataSource; import org.gdal.ogr.Layer; import org.gdal.ogr.ogr; import java.util.ArrayList; import java.util.List; /** * GDB帮å©ç±» * @author WWW */ public class GdbHelper { private final static Log log = LogFactory.getLog(GdbHelper.class); /** * è·å表å */ public static List<String> getTabNames(String filePath) { List<String> list = new ArrayList<>(); try { org.gdal.ogr.Driver driver = ogr.GetDriverByName("OpenFileGDB"); if (driver == null) { return list; } DataSource dataSource = driver.Open(filePath, 0); for (int i = 0, count = dataSource.GetLayerCount(); i < count; i++) { Layer layer = dataSource.GetLayer(i); list.add(layer.GetName()); } } catch (Exception ex) { log.error(ex.getMessage(), ex); } return list; } } src/main/java/com/lf/server/helper/MdbHelper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,42 @@ package com.lf.server.helper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.gdal.ogr.DataSource; import org.gdal.ogr.Layer; import org.gdal.ogr.ogr; import java.util.ArrayList; import java.util.List; /** * MDB帮å©ç±» * @author WWW */ public class MdbHelper { private final static Log log = LogFactory.getLog(MdbHelper.class); /** * è·å表å */ public static List<String> getTabNames(String filePath) { List<String> list = new ArrayList<>(); try { org.gdal.ogr.Driver driver = ogr.GetDriverByName("PGeo"); if (driver == null) { return list; } DataSource dataSource = driver.Open(filePath, 0); for (int i = 0, count = dataSource.GetLayerCount(); i < count; i++) { Layer layer = dataSource.GetLayer(i); list.add(layer.GetName()); } } catch (Exception ex) { log.error(ex.getMessage(), ex); } return list; } } src/main/java/com/lf/server/service/data/DataLoaderService.java
@@ -5,10 +5,7 @@ import com.lf.server.entity.ctrl.TabMapperEntity; import com.lf.server.entity.data.MetaEntity; import com.lf.server.entity.data.MetaFileEntity; import com.lf.server.helper.ClassHelper; import com.lf.server.helper.ExcelHelper; import com.lf.server.helper.FileHelper; import com.lf.server.helper.ZipHelper; import com.lf.server.helper.*; import com.lf.server.mapper.all.GeomBaseMapper; import com.lf.server.service.all.BaseQueryService; import com.lf.server.service.all.BaseUploadService; @@ -80,7 +77,11 @@ continue; } if (fileName.contains(MDB)) { list.add(new TabMapperEntity(fileName, "mdb", fileName)); //list.add(new TabMapperEntity(fileName, "mdb", fileName)); List<String> tabs = GdbHelper.getTabNames(f.getPath()); for (String tab : tabs) { list.add(new TabMapperEntity(fileName, "mdb", tab, fileName)); } continue; } if (fileName.contains(SHP_ZIP)) { @@ -95,7 +96,7 @@ getGdbFiles(f.getName(), subPath, list); continue; } if (!fileName.contains(ZIP)){ if (!fileName.contains(ZIP)) { // } } @@ -144,15 +145,17 @@ /** * è·åGdbæä»¶ */ private void getGdbFiles(String sourceName, String subPath, List<TabMapperEntity> list){ private void getGdbFiles(String sourceName, String subPath, List<TabMapperEntity> list) { List<String> files = new ArrayList<>(); getGdbFiles(subPath, files); String root = subPath.substring(0, subPath.lastIndexOf(File.separator) + 1); for (String file : files) { String name = FileHelper.getFileName(file); String path = file.replace(root, ""); list.add(new TabMapperEntity(sourceName, "shp", name, path)); List<String> tabs = GdbHelper.getTabNames(file); for (String tab : tabs) { list.add(new TabMapperEntity(sourceName, "gdb", tab, path)); } } }