管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-11-21 2e2063d36f232f6b3e24947ea33787999586b109
1
已添加2个文件
已修改2个文件
129 ■■■■ 文件已修改
src/main/java/com/lf/server/helper/GdalHelper.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/GdbHelper.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/MdbHelper.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/DataLoaderService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | 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));
            }
        }
    }