【问题标题】:Difference between polygons多边形之间的差异
【发布时间】:2013-06-23 20:13:48
【问题描述】:

我正在寻找一个用于 android 的 java 库或一个可以计算 2 个多边形之间差异的算法描述。我一直在寻找几个小时没有运气。有什么建议吗?

【问题讨论】:

  • “2 个多边形之间的差异”......这意味着......?
  • 两个多边形之间的区别?减法?我认为非常标准的行话......

标签: java android polygons


【解决方案1】:

查看JTS 库。它在 Java GIS 世界中得到大量使用,并且通常可用于解决 Java 中的拓扑问题。 JTS 用 Geometry 基类表示各种拓扑类型(包括多边形)。下面是计算两个几何(包括两个多边形)之间差异的方法:http://tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/geom/Geometry.html#difference%28com.vividsolutions.jts.geom.Geometry%29

您可以从http://sourceforge.net/projects/jts-topo-suite/下载JTS。

【讨论】:

  • 你能在这里给我一个小代码示例吗?我对 JTS 完全不熟悉,直到你提到它才知道 GIS 是什么。
  • 感谢您的帮助。 JTS 库适用于 Android。我唯一的抱怨是计算 2 个多边形的差异的执行时间相当长。
  • 很高兴它对你有用。可以肯定地说,JTS 并未针对移动环境进行优化,尽管它在服务器和桌面环境中运行良好。您可能想尝试 ESRI 的 Android SDK:resources.arcgis.com/en/communities/runtime-android。我没有这方面的经验,但看起来 GeometryEngine 类可用于计算两个多边形之间的差异。
  • 啊,谢谢,我试试。你知道ESRI的Android SDK是否也可以在桌面上运行吗?我想在桌面和安卓客户端之间使用一个库。
  • 我没有使用过任何 ESRI SDK,但我认为它们的 API 更重,更适合桌面使用。仅供参考,关于 JTS 性能,如果您将多边形与包含许多多边形的图层相交(即使给定的多边形仅与图层中的一个多边形相交),您将从 JTS SPatialIndex 中受益。对于少数多边形,空间索引是不值得的。
【解决方案2】:

减法?

查看Area API。它有一个subtract() 方法。

【讨论】:

  • 我不能使用 Area 库作为 java.awt.geom 包的一部分,它在 Android 上不存在。我已经编辑了我的问题,我深表歉意。
猜你喜欢
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
  • 2017-04-21
  • 2012-10-16
  • 1970-01-01
  • 2013-11-16
  • 2011-08-30
  • 2011-03-25
相关资源
最近更新 更多