pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/controller/data/PublishController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/data/RasterService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -254,6 +254,12 @@ <artifactId>sqlite-jdbc</artifactId> <version>3.36.0.3</version> </dependency> <!--proj4j--> <dependency> <groupId>org.osgeo</groupId> <artifactId>proj4j</artifactId> <version>0.1.0</version> </dependency> </dependencies> <build> src/main/java/com/lf/server/controller/data/PublishController.java
@@ -303,7 +303,7 @@ @GetMapping(value = "/selectCsTransform") public Object selectCsTransform(double x, double y, int epsg) { try { return rasterService.csTransform(x, y, epsg); return rasterService.transformByProj4j(x, y, epsg); } catch (Exception ex) { return null; } src/main/java/com/lf/server/service/data/RasterService.java
@@ -10,6 +10,7 @@ import org.gdal.ogr.Geometry; import org.gdal.ogr.ogr; import org.gdal.osr.SpatialReference; import org.osgeo.proj4j.*; import org.springframework.stereotype.Service; import java.io.File; @@ -79,7 +80,7 @@ } /** * 查询坐标转换 * 坐标转换 */ public Object csTransform(double x, double y, int epsg) { this.initSr(); @@ -100,4 +101,22 @@ return new double[]{point.GetX(), point.GetY()}; } /** * 坐标转换-使用Proj4j库 */ public String transformByProj4j(double x, double y, int epsg) { CRSFactory crsFactory = new CRSFactory(); CoordinateReferenceSystem fromCrs = crsFactory.createFromName("EPSG:" + epsg); CoordinateReferenceSystem toCrs = crsFactory.createFromName("EPSG:4326"); CoordinateTransformFactory ctf = new CoordinateTransformFactory(); CoordinateTransform transform = ctf.createTransform(fromCrs, toCrs); ProjCoordinate fromCoord = new ProjCoordinate(x, y); ProjCoordinate toCoord = new ProjCoordinate(); transform.transform(fromCoord, toCoord); return String.format("%f,%f", toCoord.x, toCoord.y); } }