WKT格式几何体的验证

3

我是GIS领域的新手,需要在Java中验证WKT格式的几何图形,以检查简单多边形是否为闭合环,即顶点的起始点和终止点应该相同。目前我正在使用oracle spatial(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?如果已经完成并且易于使用,我不想重复造轮子。谢谢!

1个回答

2

Java Topology Suite 包含一个 WKTReader 类,可以满足你的需求。请参见 http://tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/io/WKTReader.html。您可以使用 WKTReader 解析 WKT,并查找 ParseExceptions,这表示无效的 WKT。

如果 WKT 被解析,您可以使用 instanceof 运算符或 WKTReader.getGeometryType() 来确定已解析几何类的类型,并查看它是否是具有封闭壳体(如多边形或多重多边形)的几何类型之一(多边形或多重多边形)。


谢谢。实际上,我尝试使用它,但由于一些许可问题,后来被建议不要使用JTS。我已经使用自定义代码创建了一个大地测量点类,将几何图形转换为大地测量点并比较了第一个和最后一个点。 - kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接