3

我是 GIS 领域的新手,我需要在 java 中验证 WKT 格式的几何图形,以检查简单多边形是否为闭环,即顶点的起点和终点应该相同。我目前正在使用 oracle 空间(com.oracle.sdoapi)的 jGeometry 类,获取第一个和最后一个顶点并进行比较。另外,我正在使用 getType() 方法来检查它是否是简单的多边形。以下是正在使用的一段代码:

WKT wkt = new WKT();
JGeometry geometry = wkt.toJGeometry(wkt.getBytes());
double[] d1 = geometry.getFirstPoint();
double[] d2 = geometry.getLastPoint();
if(!jGeometry.getType() == jGeometry.GTYPE_POLYGON){
 //error message for other geometries
}

是否有任何简单的方法可以做到这一点,或者是否有任何可用的 API?如果它已经完成并且易于使用,我不想重新发明轮子。谢谢!

4

1 回答 1

2

Java 拓扑套件包含一个适合您的目的的 WKTReader 类。请参阅http://tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/io/WKTReader.html。您可以使用 WKTReader 解析 WKT,并查找指示无效 WKT 的 ParseExceptions。

如果 WKT 解析,则可以使用instanceof运算符或WKTReader.getGeometryType()确定解析的 Geometry 类的类型,并查看它是否是具有封闭壳(如 Polygon 或 Multipolygon)的几何类型(Polygon 或 Multipolygon)之一。

于 2013-09-17T17:37:32.753 回答