Les polygones et multi-polygones doivent suivre la règle de droite


17

http://geojsonlint.com/ J'obtiens une erreur

 Polygons and MultiPolygons should follow the right-hand rule

Je l'ai utilisé depuis 3 ans sans aucun problème avec mon ancien fichier geojson. Maintenant, geojsonlint applique la règle de la main droite, comment résoudre le problème.

Réponses:


7

Depuis août 2016, GeoJSON est désormais une spécification IETF formelle . Et certaines choses ont changé par rapport à l' ancienne spécification informelle de 2008 . Donc, pour être valide pour la spécification 2016, vos polygones DOIVENT être enroulés à droite.

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

L'utilisation de MUST indique une exigence absolue de la spécification. Cependant, le libellé suivant sur le fait de ne pas rejeter d'autres enroulements est étrange et est ouvert à certains arguments - peut-être que les analyseurs devraient accepter et corriger d'autres enroulements. Je pense que c'est ce qui a conduit geojsonlint (de geojsonhint) à utiliser le mot devrait au lieu de MUST dans leur message de rétroaction.

Je suis donc d'accord avec la position de geojsonlint.com car ils placent juste en haut de leur page le lien vers les spécifications de 2016. Vos polygones sont mauvais selon les spécifications de 2016. Mais pourtant, ils vont bien selon les spécifications informelles de 2008. Donc, si vous ne souhaitez pas modifier l'enroulement de vos polygones, vous devrez vous assurer que tous les linters ou analyseurs que vous utilisez respectent l'ancienne spécification de 2008 et ne migrent pas soudainement un jour vers la nouvelle spécification formelle.

Ou peut-être devriez-vous envisager de changer votre enroulement polygonal, car cela vous mettra en conformité avec les deux spécifications et sera mieux positionné pour l'avenir à mesure que les spécifications de 2008 disparaîtront.

Notez que pour moi, le plus grand changement dans la spécification de 2016 a été l'abandon total du support des systèmes de coordonnées. J'avais tout mon GeoJSON dans NAD83 et j'ai ensuite dû le retirer tranquillement car maintenant tout GeoJSON est WGS84. Heureusement pour moi venant d'Oracle Spatial tous mes polygones étaient déjà enroulés à droite.


Pour moi, ce serait bien si geojsonlint avait la possibilité de sauter le test de bobinage ou de le signaler comme un problème distinct. C'est ce que la spécification recommande également.
user30184


4

Pour tous ceux qui trouvent cela et recherchent un outil pour les corriger. Les GDAL ogr2ogr peuvent prendre GeoJSON de spécification "2008" et écrire en mode standard "RFC7946" (avec des polygones suivant la règle de droite pour l'orientation).

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

ou pour une utilisation dans des scripts où vous souhaitez entrer et sortir le GeoJSON sous forme de chaîne:

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



2

Cela peut être corrigé très facilement en Python avec geojson-rewind.

from geojson_rewind import rewind

rewoundGeoJSON = rewind(geoJSONString)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.