Poligoni e MultiPoligoni dovrebbero seguire la regola della mano destra


17

http://geojsonlint.com/ Ottengo l'errore

 Polygons and MultiPolygons should follow the right-hand rule

L'ho usato per 3 anni senza alcun problema con il mio vecchio file geojson. Ora geojsonlint applica la regola della mano destra, come risolvere il problema.

Risposte:


7

Da agosto 2016 GeoJSON è ora una specifica IETF formale . E alcune cose sono cambiate rispetto alle vecchie specifiche informali del 2008 . Quindi, per essere validi per le specifiche del 2016, i tuoi poligoni DEVONO essere avvolti a destra.

Vedi https://tools.ietf.org/html/rfc7946#section-3.1.6

L'uso di DEVE indicare un requisito assoluto della specifica. Tuttavia, il linguaggio successivo sul non respingere altri avvolgimenti è strano ed è aperto a qualche argomento - forse i parser dovrebbero accettare e correggere altri avvolgimenti. Credo che questa cosa geojsonlint piombo (da geojsonhint) per usare la parola dovrebbe invece di MUST nel loro messaggio di feedback.

Quindi sono d'accordo con la posizione di geojsonlint.com in quanto posizionano proprio nella parte superiore della loro pagina il link alle specifiche del 2016. I tuoi poligoni sono cattivi per le specifiche del 2016. Ma vanno bene per le specifiche informali del 2008. Quindi, se non desideri cambiare l'avvolgimento dei tuoi poligoni, dovrai assicurarti che qualsiasi linter o parser utilizzi onori le vecchie specifiche del 2008 e che un giorno non migrerai improvvisamente alle nuove specifiche formali.

O forse dovresti considerare di cambiare il tuo avvolgimento poligonale in quanto in questo modo sarai in linea con entrambe le specifiche e posizionato meglio per il futuro quando le specifiche del 2008 svaniranno.

Si noti che per me il più grande cambiamento nelle specifiche del 2016 è stato la caduta del supporto per i sistemi di coordinate. Ho avuto tutto il mio GeoJSON in NAD83 e poi ho dovuto rimuovere tranquillamente quello come ora tutto GeoJSON è WGS84. Fortunatamente per me proveniente da Oracle Spatial tutti i miei poligoni erano già avvolti nella mano destra.


Per me sarebbe positivo se geojsonlint avesse l'opzione di saltare il test di avvolgimento o segnalarlo come un problema separato. Questo è ciò che le specifiche raccomandano in qualche modo anche.
user30184,


4

Per chiunque lo trovi e cerchi uno strumento per risolverli. GDAL ogr2ogr può prendere GeoJSON "2008" spec e scrivere in modalità standard "RFC7946" (con poligoni che seguono la regola della mano destra per l'orientamento).

ogr2ogr -f GeoJSON -lco RFC7946=YES output.json input.json

o per l'uso negli script in cui si desidera inserire e generare GeoJSON come stringa:

echo 'Your GeoJSON' | ogr2ogr -f GeoJSON -lco RFC7946=YES /vsistdout/ /vsistdin/



2

Questo può essere risolto molto facilmente in Python usando geojson-rewind.

from geojson_rewind import rewind

rewoundGeoJSON = rewind(geoJSONString)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.