From d692b45b22f985aff4635a5bb8b8958ae9bcd6dd Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 21 十月 2022 17:50:09 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/helper/GdalHelper.java | 36 +++++++++++++++++++++++++++++++++++- 1 files changed, 35 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/lf/server/helper/GdalHelper.java b/src/main/java/com/lf/server/helper/GdalHelper.java index d8df6fe..c4e7e46 100644 --- a/src/main/java/com/lf/server/helper/GdalHelper.java +++ b/src/main/java/com/lf/server/helper/GdalHelper.java @@ -1,5 +1,6 @@ package com.lf.server.helper; +import com.lf.server.entity.ctrl.ShpRecordEntity; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.gdal.gdal.Band; @@ -41,6 +42,39 @@ // 涓轰簡浣垮睘鎬ц〃瀛楁鏀寔涓枃锛岃娣诲姞涓嬮潰杩欏彞锛欳P936 gdal.SetConfigOption("SHAPE_ENCODING", ""); + } + + /** + * 鑾峰彇Shp绗竴鏉¤褰曠殑WKT + */ + public static ShpRecordEntity readShpFirstRecord(String filePath) { + try { + org.gdal.ogr.Driver driver = ogr.GetDriverByName("ESRI shapefile"); + if (driver == null) { + return null; + } + + DataSource dataSource = driver.Open(filePath); + Layer layer = dataSource.GetLayer(0); + if (layer.GetFeatureCount() < 1) { + return null; + } + + SpatialReference spatialReference = layer.GetSpatialRef(); + String csid = spatialReference.GetAttrValue("AUTHORITY", 1); + + Feature feature = layer.GetFeature(0); + String wkt = feature.GetGeometryRef().ExportToWkt(); + + layer.delete(); + dataSource.delete(); + driver.delete(); + + return new ShpRecordEntity(wkt, csid); + } catch (Exception ex) { + ex.printStackTrace(); + return null; + } } /** @@ -275,7 +309,7 @@ return propertyGetter.get(feature, index); } catch (Exception ex) { // ex.printStackTrace() - log.error(ex.getMessage() + ex.getStackTrace() + "\n"); + log.error(ex.getMessage(), ex); return null; } -- Gitblit v1.9.3