From c738483367653c6485ddc9a6dcdea019ad08cc63 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期四, 31 十月 2024 17:44:02 +0800 Subject: [PATCH] 根据坐标查询积水深度 --- src/main/java/com/se/simu/helper/GdalHelper.java | 41 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/se/simu/helper/GdalHelper.java b/src/main/java/com/se/simu/helper/GdalHelper.java index 1601ea1..3d996ff 100644 --- a/src/main/java/com/se/simu/helper/GdalHelper.java +++ b/src/main/java/com/se/simu/helper/GdalHelper.java @@ -6,6 +6,7 @@ import org.gdal.gdal.gdal; import org.gdal.gdalconst.gdalconst; import org.gdal.ogr.*; +import org.gdal.osr.CoordinateTransformation; import org.gdal.osr.SpatialReference; import org.gdal.osr.osr; @@ -199,4 +200,44 @@ return point; } + + /** + * 杞崲涓篧GS84鍧愭爣 + */ + public static Geometry toWgs84(SpatialReference sr, double x, double y) { + Geometry point = new Geometry(ogr.wkbPoint); + point.AssignSpatialReference(sr); + point.AddPoint(x, y); + + point.TransformTo(GdalHelper.SR4326); + //point.SwapXY(); + + return point; + } + + /** + * WGS84杞崲涓虹洰鏍囧潗鏍� + */ + public static double[] fromWgs84(SpatialReference sr, double x, double y) { + // https://blog.csdn.net/weixin_34910922/article/details/129208661 + CoordinateTransformation ct = new CoordinateTransformation(GdalHelper.SR4326, sr); + if (sr.IsProjected() != 1) { + sr.SetAxisMappingStrategy(osr.OAMS_TRADITIONAL_GIS_ORDER); + } + + return ct.TransformPoint(x, y); + } + + /** + * WGS84杞崲涓虹洰鏍囧潗鏍� + */ + public static int fromWgs84(SpatialReference sr, Geometry point) { + // https://blog.csdn.net/weixin_34910922/article/details/129208661 + CoordinateTransformation ct = new CoordinateTransformation(GdalHelper.SR4326, sr); + if (sr.IsProjected() != 1) { + sr.SetAxisMappingStrategy(osr.OAMS_TRADITIONAL_GIS_ORDER); + } + + return point.TransformTo(sr); + } } -- Gitblit v1.9.3