【问题标题】:Check if polygon is completely filled by other polygons检查多边形是否被其他多边形完全填充
【发布时间】:2019-12-16 09:14:34
【问题描述】:

我目前正在 Openlayers 中为需要验证在另一个多边形(基本区域)内绘制多边形的客户创建地图。通过使用 JSTS 和 Openlayers 本机方法,我能够验证所有形状都绘制在多边形内,并且不与多边形内的其他形状相交。这包括标记和多边形。

另一个要求是检查基础区域是否完全被其他多边形填充,并具有预定义的边距。我还没有想到任何方法来做到这一点。有什么好的方法可以做到这一点?

编辑:

我用来检查多边形是否包含其他多边形的方法:

const geoJSONFormat = new GeoJSON();
const jstsGeoJSONReader = new jsts.io.GeoJSONReader();`

polygon1 = jstsGeoJSONReader.read(geoJSONFormat.writeFeatureObject(feature1)).geometry;

polygon2 = jstsGeoJSONReader.read(geoJSONFormat.writeFeatureObject(feature2)).geometry;


polygon1ContainsPolygon2= polygon1.contains(polygon2); `

首先,我将给定的特征传递给从 OL 导入的 geoJSONFormat.writeFeatureObject。然后使用 JSTS GeoJSON-reader 将其分配给一个变量。

来自 JSTS 的contains-method 将返回一个布尔值,指示多边形 2 是否包含在多边形 1 中

【问题讨论】:

  • 预定义边距是什么意思?
  • 我很想知道您是如何验证多边形在另一个多边形内的。也许,分享一个代码 sn-p 可以帮助像我这样的人。
  • @JamshaidKamran 很高兴。我已经用这些信息更新了帖子。希望对您有所帮助。

标签: geometry openlayers


【解决方案1】:

由于您已经验证了多边形位于基础区域内并且它们没有重叠。要检查底面积是否完全填充,只需检查多边形的面积之和是否等于底面积。

我不完全确定您所说的边距是什么意思,但您可以检查多边形面积的总和至少是基区面积的 x%,以提供一些“摆动”空间。

【讨论】:

  • 我将继续并接受这个作为答案,因为它似乎是要走的路。完成此操作后,我将发布带有分辨率代码的附加答案。谢谢瑞恩。
  • @Koronag - 不客气,可能有更好的本地方式来实现这一点,但我以前从未使用过 OpenLayers
猜你喜欢
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
  • 1970-01-01
  • 2011-08-07
  • 2011-08-18
相关资源
最近更新 更多