Há dois dias, fiz uma pergunta sobre a ordem interna de armazenamento dos vértices de um polígono nos shapefiles da ESRI. Essa pergunta foi respondida (os polígonos são armazenados no sentido horário ou anti-horário em um shapefile? ) E também foi respondida em um post antigo ( criação de polígono (rotação no sentido horário ou não) )
Mas agora minha pergunta é mais geral e não sei se ela tem uma resposta única. A ordem dos ponteiros do relógio é apenas para shapefiles da ESRI ou para formatos GIS gerais? E a representação interna de um software GIS? Por exemplo, se eu usar o QGIS e ler um * .shp contendo polígonos, suponho que a representação interna do limite externo esteja no sentido horário como no shapefile original, mas e para todos os formatos de arquivo suportados pelo QGIS? E para ArcGIS? E, no caso de existir um formato de arquivo com polígonos armazenados no sentido anti-horário, se esses arquivos forem carregados no QGIS, ArcGIS etc., a orientação será alterada internamente; portanto, se eu ler os dados usando PyQGIS, por exemplo, os polígonos serão no sentido horário ordenou?
Meu objetivo é escrever um plugin para o QGIS, mas a fonte de dados pode ser shapefiles da ESRI ou outros formatos. Como preciso verificar os ângulos entre lados consecutivos dos polígonos usando seus azimutes, preciso saber se a ordem é no sentido horário. Uma solução é calcular a área de cada polígono e, se bem me lembro, se for positivo, o pedido será no sentido horário e, se negativo, o pedido será no sentido anti-horário.
O cálculo da área não é uma tarefa intensiva, por isso não diminuirá tanto o meu plug-in. Mas, no caso especial do QGIS, alguém sabe se ele armazena os polígonos no sentido horário ou anti-horário, independentemente da ordem na fonte original? No momento, estou trabalhando com os shapefiles da ESRI e as coordenadas em layer.getFeatures (). Geometry (). AsPolygon () são armazenadas no sentido horário para a borda externa e no sentido anti-horário para os furos, ou seja, no * .shp original.
Polygons are oriented correctly. (Exterior ring boundaries must be oriented counterclockwise, and interior ring boundaries must be oriented clockwise.)
que significa que o Oracle é anti-horário.