Hello GIS / JavaScript人员,
我正在开发一个小型的历史地理信息系统项目,目前正致力于几何运营。我正在使用CoffeeScript / JavaScript进行开发,并使用JSTS库获取帮助。虽然它具有强大的功能,但我正在努力处理文档......
问题在于:我有来自NaturalEarthData的国家几何。我希望能够统一邻国。由于相邻区域并不总是完美的,有时这两个区域之间的这些小条子多边形是统一的,这是相当丑陋的。我想摆脱它们,但只是不知道,如何。
QGIS具有“删除Sliver多边形”的强大功能,我非常希望这样做。有没有人知道如何在JTS / JSTS / GEOS中做到这一点(我猜这些都源于相同的代码库?)
感谢任何帮助。
答案 0 :(得分:2)
经过一段时间的思考,这个问题的答案实际上很明显:你想要的是删除这些条子多边形。它们的大小很容易识别出来:它们的面积非常小,只占世界上最小的梵蒂冈城的一小部分。
统一后,它们是多边形的内环,可以像这样识别和删除:
MIN_AREA_SIZE = 0.0000001
for innerRing, idx in polygon
# the first is technically the outerRing, but that one usually has a larger area
if (new jsts.geom.Polygon(innerRing).getArea() < MIN_AREA_SIZE
polygon.slice(idx,1) # delete inner ring from polygon