| | |
| | | |
| | | 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; |
| | | |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |