【发布时间】:2021-07-02 16:02:22
【问题描述】:
我正在尝试解决将多边形与其他多边形进行比较的特殊情况。我有 五个 多边形分布,如下图所示。黑色多边形是面积最大的多边形。
可能还有其他类似的情况,主要规则是删除所有具有一个或多个共同边部分的多边形中最小的多边形。
本案例的数据在 GeoJson 文件中如下:
{"type":"FeatureCollection","features":[
{"type":"Feature","properties":{"id":1},"geometry":{"type":"Polygon","coordinates":[[[3.4545135498046875,45.533288879467456],[3.4960556030273433,45.533288879467456],[3.4960556030273433,45.57055337226086],[3.4545135498046875,45.57055337226086],[3.4545135498046875,45.533288879467456]]]}},
{"type":"Feature","properties":{"id":2},"geometry":{"type":"Polygon","coordinates":[[[3.4545135498046875,45.52917023833511],[3.4960556030273433,45.52917023833511],[3.4960556030273433,45.53891018749409],[3.4545135498046875,45.53891018749409],[3.4545135498046875,45.52917023833511]]]}},
{"type":"Feature","properties":{"id":3},"geometry":{"type":"Polygon","coordinates":[[[3.4845542907714844,45.5298015824607],[3.5159683227539062,45.5298015824607],[3.5159683227539062,45.543388795387294],[3.4845542907714844,45.543388795387294],[3.4845542907714844,45.5298015824607]]]}},
{"type":"Feature","properties":{"id":4},"geometry":{"type":"Polygon","coordinates":[[[3.465328216552734,45.542667432984864],[3.4735679626464844,45.542667432984864],[3.4735679626464844,45.5478369923404],[3.465328216552734,45.5478369923404],[3.465328216552734,45.542667432984864]]]}},
{"type":"Feature","properties":{"id":5},"geometry":{"type":"Polygon","coordinates":[[[3.4545138850808144,45.56799974017372],[3.4588050842285156,45.56799974017372],[3.4588050842285156,45.57055290285386],[3.4545138850808144,45.57055290285386],[3.4545138850808144,45.56799974017372]]]}}]}
是否有解决方案可以仅删除两个 蓝色 多边形(id 2 和 5)?在python中。
通过将 Polygons 转换为 LineString 可以查看 Linestring 是否是另一个 Linestring 的一部分?但我不知道该怎么做。或者也许想看看黑色和蓝色多边形的 LineString 是否有两个以上的共同点?但是我们不能将 LineString 转换为两个以上的点。
【问题讨论】:
-
您可以使用具有 x 或 y 坐标和区间之一作为值的字典。查找相交区间。
-
“间隔作为值”是什么意思?