| | |
| | | this.fileName = fileName; |
| | | this.type = type; |
| | | this.tab = tab; |
| | | |
| | | } |
| | | |
| | | public TabMapperEntity(String fileName, String type, String tab, String subPath) { |
| | |
| | | /** |
| | | * 读取数据 |
| | | */ |
| | | public static <T> List<T> readData(Class clazz, String filePath) { |
| | | public static <T> List<T> readData(Class clazz, String filePath, String layerName) { |
| | | List<T> 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); |
| | | |
| | | if (layer.GetName().equals(layerName)) { |
| | | GdbHelper.readLayer(clazz, layer, list); |
| | | break; |
| | | } |
| | | |
| | | layer.delete(); |
| | | } |
| | | |
| | | driver.delete(); |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage(), ex); |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 读取图层 |
| | | */ |
| | | public static <T> void readLayer(Class clazz, Layer layer, List<T> list) { |
| | | try { |
| | | // |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage(), ex); |
| | | } finally { |
| | | if (null != layer) { |
| | | layer.delete(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | /** |
| | | * 读取数据 |
| | | */ |
| | | public static <T> List<T> readData(Class clazz, String filePath) { |
| | | public static <T> List<T> readData(Class clazz, String filePath, String layerName) { |
| | | List<T> 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); |
| | | |
| | | if (layer.GetName().equals(layerName)){ |
| | | GdbHelper.readLayer(clazz, layer, list); |
| | | break; |
| | | } |
| | | |
| | | layer.delete(); |
| | | } |
| | | |
| | | driver.delete(); |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage(), ex); |
| | | } |
| | |
| | | public static <T> List<T> readData(Class clazz, String filePath) { |
| | | List<T> list = new ArrayList<>(); |
| | | try { |
| | | org.gdal.ogr.Driver driver = ogr.GetDriverByName("ESRI shapefile"); |
| | | if (driver == null) { |
| | | return list; |
| | | } |
| | | |
| | | DataSource dataSource = driver.Open(filePath); |
| | | Layer layer = dataSource.GetLayer(0); |
| | | |
| | | GdbHelper.readLayer(clazz, layer, list); |
| | | |
| | | driver.delete(); |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage(), ex); |
| | | } |
| | |
| | | list = ShpHelper.readData(clazz, root + File.separator + tab.getSubPath()); |
| | | break; |
| | | case "gdb": |
| | | list = GdbHelper.readData(clazz, root + File.separator + tab.getSubPath()); |
| | | list = GdbHelper.readData(clazz, root + File.separator + tab.getSubPath(), tab.getTab()); |
| | | break; |
| | | case "mdb": |
| | | list = MdbHelper.readData(clazz, root + File.separator + tab.getSubPath()); |
| | | list = MdbHelper.readData(clazz, root + File.separator + tab.getSubPath(), tab.getTab()); |
| | | break; |
| | | default: |
| | | break; |