目录
一.GeoTools介绍
GeoTools是一套操作和显示地图的开源Java 代码库,提供了一系列符合规范的操作地理空间数据的方法,GeoTools被许多项目使用,在地理信息领域有着广泛的应用。
二.背景
本文介绍的是如何使用GeoTools判定wkt坐标是否为加带号的投影坐标,因为wkt是用于前后端进行几何数据信息交换的常用格式,有时候我们需要判定wkt坐标串是否为加带号的投影坐标,便于后续的数据坐标系统一。
三.实现代码
这里编写了一个getCentroid()方法和isGK_Zone()方法,每次使用只需要先调用getCentroid()方法,再调用isGK_Zone()方法,即可判定wkt坐标是否为投影坐标。
/** * 获取wkt的几何质心 * * @param wkt * @return */ public static Point getCentroid(String wkt) { if (StringUtil.isEmpty(wkt)) { return creatPoint_empty(); } try { WKTReader reader = new WKTReader(); Geometry geometry = reader.read(wkt); if (geometry == null || geometry.isEmpty()) { return creatPoint_empty(); } return geometry.getCentroid(); } catch (Exception e) { e.printStackTrace(); } return creatPoint_empty(); }
/** * 判定几何质点是否为加带号的投影坐标 * * @param point 几何质点 * @return */ public static boolean isGK_Zone(Point point) { if (point == null || point.isEmpty()) { return false; } if (Integer.toString(new BigDecimal(Double.toString(point.getX())).intValue()).length() == 8) { return true; } return false; }