Hai ngày trước tôi đã hỏi một câu hỏi về thứ tự lưu trữ nội bộ cho các đỉnh của một đa giác trong các hình dạng ESRI. Câu hỏi đó đã được trả lời ( Các đa giác được lưu trữ theo chiều kim đồng hồ hay ngược chiều kim đồng hồ trong một shapefile? ) Và nó cũng đã được trả lời trong một bài cũ ( Tạo đa giác (Xoay theo chiều kim đồng hồ hay không) )
Nhưng bây giờ câu hỏi của tôi đã chung chung hơn và tôi không biết nó có câu trả lời duy nhất không. Là thứ tự theo chiều kim đồng hồ chỉ dành cho các shapefile ESRI hoặc cho các định dạng GIS chung? Và những gì về đại diện nội bộ cho một phần mềm GIS? Ví dụ: nếu tôi sử dụng QGIS và tôi đọc một * .shp chứa đa giác, tôi cho rằng biểu diễn bên trong của giới hạn ngoài theo chiều kim đồng hồ như trong shapefile ban đầu, nhưng đối với tất cả các định dạng tệp được hỗ trợ bởi QGIS thì sao? Và đối với ArcGIS? Và trong trường hợp tồn tại một định dạng tệp có đa giác được lưu trữ ngược chiều kim đồng hồ, nếu các tệp này được tải trong QGIS, ArcGIS, v.v., là hướng thay đổi bên trong, vì vậy, nếu tôi đọc dữ liệu bằng PyQGIS, ví dụ, đa giác theo chiều kim đồng hồ Ra lệnh?
Mục đích của tôi là viết một plugin cho QGIS, nhưng nguồn dữ liệu có thể là các tệp định dạng ESRI hoặc các định dạng khác. Vì tôi cần kiểm tra các góc giữa các đa giác liên tiếp bằng các góc phương vị của chúng, tôi cần biết nếu thứ tự là theo chiều kim đồng hồ. Một giải pháp là tính toán diện tích của mỗi đa giác và, nếu tôi nhớ chính xác, nếu nó dương thì thứ tự là theo chiều kim đồng hồ và nếu âm thì thứ tự ngược chiều kim đồng hồ.
Tính toán khu vực không phải là một nhiệm vụ chuyên sâu, vì vậy nó sẽ không làm chậm plugin của tôi rất nhiều. Nhưng trong trường hợp đặc biệt của QGIS, có ai biết nếu nó lưu trữ các đa giác theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ, bất kể thứ tự trong nguồn ban đầu không? Đến bây giờ tôi đang làm việc với các shapefile ESRI và tọa độ trong layer.getFeatures (). Hình học (). AsPolygon () được lưu trữ theo chiều kim đồng hồ cho đường viền bên ngoài và ngược chiều kim đồng hồ cho các lỗ, tức là như trong * .shp ban đầu.
Polygons are oriented correctly. (Exterior ring boundaries must be oriented counterclockwise, and interior ring boundaries must be oriented clockwise.)
điều đó có nghĩa là Oracle ngược chiều kim đồng hồ.