吉安感知网项目-后端
linwei
2026-06-05 f3104f14213028277c883e19301b820ae724bd70
drone-common/src/main/java/org/sxkj/common/utils/GeomUtils.java
@@ -2,8 +2,10 @@
import org.apache.commons.lang3.StringUtils;
import org.geotools.geometry.jts.JTSFactoryFinder;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.Point;
import org.locationtech.jts.io.ParseException;
import org.locationtech.jts.io.WKTReader;
@@ -50,4 +52,37 @@
         return null;
      }
   }
   /**
    * 从几何数据中提取中心点坐标
    *
    * @param geom WKT格式的几何数据
    * @return 中心点坐标数组,格式为 [经度, 纬度],如果提取失败返回null
    */
   public static double[] extractCenterPoint(String geom) {
      if (StringUtils.isBlank(geom)) {
         return null;
      }
      try {
         // 解析WKT字符串
         Geometry geometry = wktReader.read(geom);
         // 获取几何对象的中心点
         Point centroid = geometry.getCentroid();
         if (centroid == null) {
            return null;
         }
         Coordinate coordinate = centroid.getCoordinate();
         if (coordinate == null) {
            return null;
         }
         // 返回 [经度, 纬度]
         return new double[]{coordinate.x, coordinate.y};
      } catch (ParseException e) {
         return null;
      }
   }
}