Два дня назад я задал вопрос о порядке внутреннего хранения вершин многоугольника в шейп-файлах ESRI. На этот вопрос был дан ответ ( хранятся ли полигоны по часовой стрелке или против часовой стрелки в шейп-файле? ), И на него также был дан ответ в старом сообщении ( Создание полигона (вращение по часовой стрелке или нет) )
Но теперь мой вопрос носит более общий характер, и я не знаю, есть ли у него уникальный ответ. Порядок по часовой стрелке только для шейп-файлов ESRI или для общих форматов ГИС? А как насчет внутреннего представления программного обеспечения ГИС? Например, если я использую QGIS и читаю * .shp, содержащий многоугольники, я предполагаю, что внутреннее представление внешней границы идет по часовой стрелке, как в исходном шейп-файле, но как насчет всех форматов файлов, поддерживаемых QGIS? А для ArcGIS? И в случае, если существует формат файла с полигонами, хранящимися против часовой стрелки, если эти файлы загружаются в QGIS, ArcGIS и т. Д., Внутренняя ориентация изменяется, поэтому, если я, например, считываю данные с помощью PyQGIS, полигоны располагаются по часовой стрелке упорядоченный?
Моя цель - написать плагин для QGIS, но источником данных могут быть шейп-файлы ESRI или другие форматы. Поскольку мне нужно проверить углы между последовательными сторонами многоугольников, используя их азимуты, мне нужно знать, если порядок по часовой стрелке. Одним из решений является вычисление площади каждого многоугольника, и, если я правильно помню, если он положительный, то порядок по часовой стрелке, а если отрицательный, то порядок против часовой стрелки.
Вычисление площади не является интенсивной задачей, поэтому она не будет сильно замедлять мой плагин. Но в особом случае QGIS кто-нибудь знает, хранит ли он многоугольники по часовой стрелке или против часовой стрелки, независимо от порядка в исходном источнике? К настоящему времени я работаю с шейп-файлами ESRI и координатами в layer.getFeatures (). Geometry (). AsPolygon () хранится по часовой стрелке для внешней границы и против часовой стрелки для отверстий, т.е. как в исходном * .shp.
Polygons are oriented correctly. (Exterior ring boundaries must be oriented counterclockwise, and interior ring boundaries must be oriented clockwise.)
что означает, что Oracle работает против часовой стрелки.