[EDIT: giải pháp cho vấn đề này chỉ đơn giản là sử dụng OGR để đọc shapefiles. Xem ví dụ của geographika.]
Trong một shapefile ESRI, không có sự phân biệt giữa Đa giác và MultiPolygons. Hơn nữa, không có sự phân biệt rõ ràng giữa các lỗ bên trong và các vòng bên ngoài (bên cạnh "độ thuận tay" của một đa giác nhất định).
Vì vậy, sau khi đọc một shapefile, tôi có một danh sách các chuỗi tọa độ mô tả các vòng, nhưng không có quá trình xử lý chuyên sâu hơn, tôi không thể phân biệt được những vòng này là vòng ngoài, lỗ bên trong hay đa giác bổ sung.
Dường như để quyến rũ 's Polygon và MultiPolygon nhà thầu, thì phải có một sự phân biệt rõ ràng giữa bên ngoài và nhẫn nội thất, vậy làm thế nào tôi nên chuyển từ một danh sách rõ ràng của chiếc nhẫn để một bộ thứ tự các đa giác tách ra, với nội thất được chỉ định rõ ràng và nhẫn bên ngoài ?
Tóm lại: nếu tôi có một danh sách các vòng đa giác, nhưng tôi không biết vòng nào là lỗ trong nội thất hoặc là đa giác riêng biệt, làm thế nào tốt nhất tôi nên phân loại chúng thành các đa giác riêng biệt với các lỗ bên trong được chỉ định?
Tôi đang tìm kiếm một giải pháp thuật toán đơn giản mà tôi có thể thực hiện trên python, có thể được sử dụng để xử lý hàng trăm đa giác trong ~ một phút hoặc ít hơn và tôi đang làm điều này để thực hiện một số lượng lớn các giao lộ.