| | |
| | | package com.se.simu.helper; |
| | | |
| | | import cn.hutool.core.io.FileUtil; |
| | | import com.se.simu.domain.SeLayer; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.gdal.ogr.*; |
| | |
| | | @Slf4j |
| | | @SuppressWarnings("ALL") |
| | | public class ShpHelper { |
| | | public static boolean createShp(String path, SeLayer seLayer) { |
| | | public static boolean createShp(String filePath, SeLayer seLayer) { |
| | | Driver driver = null; |
| | | DataSource dataSource = null; |
| | | Layer layer = null; |
| | | try { |
| | | // driver = ogr.GetDriverByName("ESRI shapefile"); |
| | | // if (null == driver) { |
| | | // return null; |
| | | // } |
| | | // |
| | | // String filePath = path + File.separator + type.toLowerCase() + ".shp"; |
| | | // // DataSource ds = driver.Open(filePath, 0) |
| | | // dataSource = driver.CreateDataSource(filePath, null); |
| | | // if (null == dataSource) { |
| | | // return null; |
| | | // } |
| | | // |
| | | // int geoType = getGeometryType(type); |
| | | // layer = dataSource.CreateLayer(type.toLowerCase(), GeoHelper.sr104903, geoType); |
| | | // if (null == layer) { |
| | | // return null; |
| | | // } |
| | | driver = ogr.GetDriverByName("ESRI shapefile"); |
| | | if (null == driver) return false; |
| | | |
| | | dataSource = driver.CreateDataSource(filePath, null); |
| | | if (null == dataSource) return false; |
| | | |
| | | int geoType = getGeometryType(seLayer.getQueryType()); |
| | | layer = dataSource.CreateLayer(FileUtil.getName(filePath), null, geoType); |
| | | if (null == layer) return false; |
| | | // |
| | | // List<Field> fields = new ArrayList<>(); |
| | | // GdbHelper.getFields(MarkJsonEntity.class, fields, StaticData.MARK_EXCLUDE_FIELDS); |
| | |
| | | } |
| | | } |
| | | |
| | | public static void ss(){ |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 获取图形类型 |
| | | */ |
| | | private static int getGeometryType(String type) { |
| | | switch (type) { |
| | | case "POINT": |
| | | case "point": |
| | | return ogr.wkbPoint; |
| | | case "LINESTRING": |
| | | case "polyline": |
| | | return ogr.wkbLineString; |
| | | case "POLYGON": |
| | | return ogr.wkbPolygon; |
| | | case "polygon": |
| | | // return ogr.wkbPolygon |
| | | return ogr.wkbMultiPolygon; |
| | | default: |
| | | return ogr.wkbUnknown; |
| | | } |