Due giorni fa ho posto una domanda sull'ordine di memorizzazione interno per i vertici di un poligono nei file di forma ESRI. A quella domanda è stata data risposta ( I poligoni sono memorizzati in senso orario o antiorario in un file di forma? ) Ed è stata anche data risposta in un vecchio post ( Creazione di poligoni (rotazione in senso orario o no) )
Ma ora la mia domanda è più generale e non so se abbia una risposta unica. L'ordine in senso orario è solo per gli shapefile ESRI o per i formati GIS generali? E la rappresentazione interna di un software GIS? Ad esempio, se uso QGIS e leggo un * .shp contenente poligoni, suppongo che la rappresentazione interna del limite esterno sia in senso orario come nel file di forma originale, ma per quanto riguarda tutti i formati di file supportati da QGIS? E per ArcGIS? E nel caso esista un formato file con poligoni memorizzati in senso antiorario, se questi file sono caricati in QGIS, ArcGIS, ecc., L'orientamento è cambiato internamente, quindi se leggo i dati usando PyQGIS, ad esempio, i poligoni sono in senso orario ordinato?
Il mio scopo è scrivere un plugin per QGIS, ma la fonte dei dati può essere lo shapefile ESRI o altri formati. Dato che devo controllare gli angoli tra i lati consecutivi dei poligoni usando i loro azimut, devo sapere se l'ordine è in senso orario. Una soluzione è calcolare l'area di ciascun poligono e, se ricordo bene, se è positivo l'ordine è orario e se negativo l'ordine è antiorario.
Il calcolo delle aree non è un compito intenso, quindi non rallenterà molto il mio plugin. Ma nel caso speciale di QGIS, qualcuno sa se memorizza i poligoni in senso orario o antiorario, indipendentemente dall'ordine nella fonte originale? Ormai sto lavorando con gli shapefile ESRI e le coordinate in layer.getFeatures (). Geometry (). AsPolygon () sono memorizzati in senso orario per il bordo esterno e in senso antiorario per i fori, cioè come nell'originale * .shp.
Polygons are oriented correctly. (Exterior ring boundaries must be oriented counterclockwise, and interior ring boundaries must be oriented clockwise.)
che significa che Oracle è in senso antiorario.