Wie spaltete/schneiden Sie die Multipolygonregion durch mehrere Liniensegmente?Python

Python-Programme
Anonymous
 Wie spaltete/schneiden Sie die Multipolygonregion durch mehrere Liniensegmente?

Post by Anonymous »

Ich habe eine Polygonregion Poly1 und ein weiteres Polygonregion Poly2 (beide sind polygon in formy), dann nehme ich ihren symmetrischen Unterschied, der ein Multipolygon ist. Verbinden Sie die Eckpunkte von Poly1 und Poly2. Ich möchte das Multipolygon teilen, das durch den symmetrischen Differenz durch Liniensegements erhalten wurde (diese Zeilensegmente liegen auf dem Multipolygon selbst).
Der Code, den ich lief />File "/home/runner/Python/.pythonlibs/lib/python3.10/site-packages/shapely/ops.py", line 511, in split
[i for part in geom.geoms for i in SplitOp.split(part, splitter).geoms]
File "/home/runner/Python/.pythonlibs/lib/python3.10/site-packages/shapely/ops.py", line 511, in
[i for part in geom.geoms for i in SplitOp.split(part, splitter).geoms]
File "/home/runner/Python/.pythonlibs/lib/python3.10/site-packages/shapely/ops.py", line 535, in split
raise GeometryTypeError(
shapely.errors.GeometryTypeError: Splitting a Polygon with a MultiLineString is not supported
< /code>
Code-< /p>
from shapely.geometry import MultiPolygon, Polygon, MultiLineString, LineString
from shapely.ops import split

multipolygon = MultiPolygon([
Polygon([(7, 10), (8, 11), (9, 11), (8, 10), (7, 9.5), (7, 10)]),
Polygon([(9.5, 8.5), (10, 9), (10, 10), (11, 9), (9.5, 8.5)])
])
multiline = MultiLineString([
LineString([(7, 10), (8, 10)]),
LineString([(8, 10), (8, 11)]),
LineString([(10, 9), (11, 9 )]),
LineString([(8, 9), (10, 9)])
])

# Divide multipolygon by lines
divided_multipolygon = split(multipolygon, multiline)

print("Divided MultiPolygon:", divided_multipolygon)
< /code>
Wie kann ich meine Aufgabe erreichen? Alle Vorschläge oder Hilfe wären sehr geschätzt!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post