【问题标题】:Validation of a geometry in WKT format验证 WKT 格式的几何图形
【发布时间】:2013-09-11 20:55:57
【问题描述】:

我是 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?如果它已经完成并且易于使用,我不想重新发明轮子。谢谢!

【问题讨论】:

    标签: java geospatial geotools jts wkt


    【解决方案1】:

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

    如果 WKT 解析,您可以使用 instanceof 运算符或 WKTReader.getGeometryType() 来确定解析的 Geometry 类的类型,并查看它是否是具有封闭壳(如 Polygon 或多面体。

    【讨论】:

    • 谢谢。实际上,我尝试使用它,但由于一些许可问题,后来有人建议我不要使用 JTS。我使用自定义代码创建了一个大地测量点类,将几何图形转换为大地测量点,并比较了第一个点和最后一个点。
    猜你喜欢
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 2021-12-28
    • 2022-01-18
    • 2023-02-23
    相关资源
    最近更新 更多