En python, tengo un polígono simple "exterior" y una lista de polígonos "interiores". Quiero hacer agujeros en mi polígono usando esta lista.
from shapely.geometry import Polygon # polygon with 1 hole in the middle p = Polygon(((0,0),(10,0),(10,10),(0,10)), (((4,4),(4,6),(6,6),(6,4)), )) print p.wkt # POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (4 4, 4 6, 6 6, 6 4, 4 4)) # other constructor, does not work (no hole) : outer = Polygon(((0,0),(10,0),(10,10),(0,10),(0,0))) inners = (Polygon(((4,4),(4,6),(6,6),(6,4),(4,4))), ) p = Polygon(outer, inners) print p.wkt # POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0))¿Cómo construir p dado exterior e interior?
Lo siento, acabo de encontrar una solución, dado outer como un polígono simple y el inners como una lista de polígonos simples (cada uno de ellos contenido en outer ):
p = Polygon(outer.exterior.coords, [inner.exterior.coords for inner in inners])El constructor de polígonos solo funciona con coordenadas como entrada, no con otros polígonos como:
p = Polygon(outer, inners)