首页 > 其他分享 >JTS TopologyException 问题

JTS TopologyException 问题

时间:2022-08-26 16:12:25浏览次数:78  
标签:TopologyException java jts 问题 locationtech OverlayOp JTS org operation

计算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

标签:TopologyException,java,jts,问题,locationtech,OverlayOp,JTS,org,operation
From: https://www.cnblogs.com/gradyblog/p/16627857.html

相关文章

  • Ubuntu 下dotnet 6的奇葩问题
    之前好用的,ubutun自动更新之后就出现了dotnet不可用并且purge后重新安装也不性:具体错误如下:dotnet--version-----------------------------------------------------......
  • Unable to create an object of type 'DbContext'问题解决,网上搜来的没一个对的。
    用了很久的EFCore了,第一次遇到这个问题,觉得很奇怪,baidu了一下,都是要提供设计时工厂的答案。很明显这个做法是有问题的,都是DI的年代了,你的DbContext又不是动态生产了一堆......
  • 不修改host,解决github打开速度过慢问题
    1、通过站长工具找出DNS地址站长工具网站的域名解析网址:http://tool.chinaz.com/dns/在A类型的查询中输入github.com找出最快的IP地址2、然后在浏览器输入......
  • Xshell下vim异常问题记录
    问题描述:一直使用xshell作为远程管理服务器的工具,最近在使用vim编辑文档时总是出现异常,进入插入模式总是光标下移两行,回车键后总是出现莫名其妙的内容,在vim左下的状态行也......
  • StreamWriter写txt文本乱码问题
    Encodingcode=Encoding.UTF8;TextWritersw=newStreamWriter(path,true,code);sw.WriteLine(content);以上代码在Windows执行写入文件没有出现乱码问题,但是在......
  • 如何发现问题
    如何发现问题服务端开发实践分享引入过去,我们常常讨论:如何解决问题?往往一个项目上线前,反馈很好,稳定性很高。但是,上线后,卡顿、炸服、宕机,常有的事。问题还是有的,只是......
  • 《八股文》MySQL核心问题总结(一)
      作为SQLBoy,基础部分不会有人不会吧?面试也不怎么问,基础掌握不错的小伙伴可以跳过这一部分。当然,可能会现场写一些SQL语句,SQ语句可以通过牛客、LeetCode、LintCode之......
  • EasyCVR平台界面因浏览器窗口变化出现主导航栏下移变形情况的问题优化
    EasyCVR属于接入协议较为广泛的视频汇聚与融合管理平台,可支持市场标准协议国标GB28181、RTSP/Onvif、RTMP协议外,还支持厂家的私有协议,包括海康/大华SDK、Ehome等。近期我们......
  • 解决Vuex刷新页面数据没缓存的问题
    监听页面是否刷新,如果页面刷新了,将state对象存入到sessionStroage中。页面打开之后,判断sessionStorage中是否存在state对象,如果存在,则说明页面是被刷新过,将sessionStor......
  • 【AGC】【云数据库】云数据库常见问题
    ​1、【问题描述】是否可以添加支持kotlin文件的导出功能?​【解决方案】目前,我们没有这样的开发议程,因为有对Java的支持。 2、【问题描述】咨询一下云数据关联......