计算2个几何相交结果时候,报错了:
val geometry = polygon.intersection(lineString)
日志如下
org.locationtech.jts.geom.TopologyException: found non-noded intersection between LINESTRING ( 1.352237191719381E7 3623890.160213779, 1.3522371711949987E7 3623889.580561515 ) and LINESTRING ( 1.3522371378318693E7 3623889.936883858, 1.3522376536017932E7 3623888.3707740055 ) [ (1.3522371793480815E7, 3623889.810821934, NaN) ]
at org.locationtech.jts.noding.FastNodingValidator.checkValid(FastNodingValidator.java:140)
at org.locationtech.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:81)
at org.locationtech.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:46)
at org.locationtech.jts.operation.overlay.OverlayOp.computeOverlay(OverlayOp.java:231)
at org.locationtech.jts.operation.overlay.OverlayOp.getResultGeometry(OverlayOp.java:183)
at org.locationtech.jts.operation.overlay.OverlayOp.overlayOp(OverlayOp.java:86)
at org.locationtech.jts.operation.overlay.snap.SnapIfNeededOverlayOp.getResultGeometry(SnapIfNeededOverlayOp.java:75)
at org.locationtech.jts.operation.overlay.snap.SnapIfNeededOverlayOp.overlayOp(SnapIfNeededOverlayOp.java:37)
at org.locationtech.jts.geom.Geometry.intersection(Geometry.java:1354)
......

原因是: polygon (或者 lineString 【另一个图形】)有自相交的情况, 即 invalid

解决办法
        if (!poly.isValid) {
poly.buffer(0.1)
}
参考: https://github.com/locationtech/jts/issues/657

JTS TopologyException 问题的更多相关文章

  1. JTS Geometry关系判断和分析

    关系判断 Geometry之间的关系有如下几种: 相等(Equals): 几何形状拓扑上相等. 脱节(Disjoint): 几何形状没有共有的点. 相交(Intersects): 几何形状至少有一个共 ...

  2. Java Topology Suite (JTS)与空间数据模型

    JTS是Java的处理地理数据的API,它提供以下功能: 实现了OGC关于简单要素SQL查询规范定义的空间数据模型 一个完整的.一致的.基本的二维空间算法的实现,包括二元运算(例如touch和over ...

  3. Java JTS & 空间数据模型

    空间数据模型 判断两个几何图形是否存在指定的空间关系.包括: 相等(equals).分离(disjoint).相交(intersect).相接(touches).交叉(crosses).包含于(wit ...

  4. JTS相关资料和示例

    示例 JTS基本概念和使用 JTS Geometry之间的关系 JTS algorithm package

  5. JTS基本概念和使用

    简介 JTS是加拿大的 Vivid Solutions公司做的一套开放源码的 Java API.它提供了一套空间数据操作的核心算法.为在兼容OGC标准的空间对象模型中进行基础的几何操作提供2D空间谓词 ...

  6. JTS

    在这个系列的 第 1 部分,我们讨论了事务并研究了它们的基本属性 ― 原子性(atomicity).一致性(consistency).孤立性(isolation)和持久性(durability).事务 ...

  7. JTS(Geometry)(转)

    原文链接:http://blog.csdn.net/cdl2008sky/article/details/7268577 空间数据模型(1).JTS Geometry model (2).ISO Ge ...

  8. 通过JTS源码分析Rtree(未完待续)

    前言 R树在数据库等领域做出的功绩是非常显著的.它很好的解决了在高维空间搜索等问题.它把B树的思想很好的扩展到了多维空间,采用了B树分割空间的思想,并在添加.删除操作时采用合并.分解结点的方法,保证树 ...

  9. JTS空间分析工具包(GIS开源)学习 JAVA

    JST空间分析工具包是一套JAVA API,提供一系列的空间数据分析操作.最近开发项目刚好需要用到,上网搜资料也少,就自己写下来记录一下.C++版本的拓扑分析开源工具叫:geos:.NET版本的拓扑分 ...

随机推荐

  1. tableSizeFor

    HashMap tableSizeFor() /** Returns a power of two size for the given target capacity. 1.(不考虑大于最大容量的情 ...

  2. 【RPA之家BluePrism手把手教程】2.3 多重计算

    2.3.1 添加除法运算计算框 2.3.2 设置除法运算计算属性 2.3.3 程序运行前初始值 2.3.4 程序运行后结果 使用多重计算框实现以上操作 2.3.5 添加多重选择框 2.3.6 设置多重 ...

  3. uipath 如何利用函数split切割换行符?

    uipath 如何利用函数split切割换行符? 答案在这 https://rpazj.com/thread-178-1-1.html

  4. python——进行年龄和性别检测

    年龄和性别检测 使用Python编程语言带你完成使用机器学习进行年龄和性别检测的任务. 首先需要编写用于检测人脸的代码,因为如果没有人脸检测,我们将无法进一步完成年龄和性别预测的任务. 下一步是预测图 ...

  5. windows下docker部署报错

    报错信息:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8848 -> 0.0.0 ...

  6. NC14247 Xorto

    NC14247 Xorto 题目 题目描述 给定一个长度为 \(n\) 的整数数组,问有多少对互不重叠的非空区间,使得两个区间内的数的异或和为 \(0\) . 输入描述 第一行一个数 \(n\) 表示 ...

  7. SLSA 框架与软件供应链安全防护

    随着软件供应链攻击浪潮愈演愈烈,Google 发布了一系列指南来确保软件包的完整性,旨在防止影响软件供应链的未经授权的代码修改.新的 Google SLSA 框架(Supply-chain Level ...

  8. 共享手机中的VXN流量给其他设备使用

    此篇博文讲的什么 不想看废话的,直接看这里就行了: 手机端(IOS,已越狱)装的传统的VXN,没法直接共享流量给其他设备用,可以在手机端开放个socketsserver,我现在用的ssh,它也能提供这 ...

  9. APISpace 让你快速获取名言警句

    名言警句,是指一些名人说的.写的.历史纪录的.经过实践所得出的结论或建议.警示的比较有名的言语.名言警句易于留传.   名言警句API,涵盖人生.励志等多个方面.   APISpace 有很多免费通用 ...

  10. P4289 【一本通提高篇广搜的优化技巧】[HAOI2008]移动玩具

    [HAOI2008]移动玩具 题目描述 在一个 4 × 4 4\times4 4×4 的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动时只能将玩具向上下左右四个方 ...