http://geojsonlint.com/ I get error
Polygons and MultiPolygons should follow the right-hand rule
I used it for past 3 years without any problem with my old geojson file. Now geojsonlint enforce the right hand rule, how to fix the problem.
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It only takes a minute to sign up.Sign up to join this community
The use of MUST indicates an absolute requirement of the specification. However then the subsequent language about not rejecting other windings is weird and is open to some argument - perhaps parsers should accept and correct other windings. I think this what lead geojsonlint (from geojsonhint) to use the word should instead of MUST in their feedback message.
So I agree with the position of geojsonlint.com as they place right at the top of their page the link to the 2016 spec. Your polygons are bad per the 2016 spec. But yet they are fine per the informal 2008 spec. So if you do not wish to change the winding of your polygons, you will need to make certain any linters or parsers you use honor the old 2008 spec and do not one day suddenly migrate to the new formal spec.
Or perhaps you should consider changing your polygon winding as doing so will get you in line with both specs and better positioned for the future as the 2008 spec fades away.
Note that for me the largest change in the 2016 spec was the dropping utterly of the support for coordinate systems. I had all my GeoJSON in NAD83 and then had to quietly remove that as now all GeoJSON is WGS84. Fortunately for me coming from Oracle Spatial all my polygons were already right-hand wound.
For anyone finding this and looking for a tool to fix them. GDALs ogr2ogr can take "2008" spec GeoJSON and write out in "RFC7946" standard mode (with polygons following the right-hand rule for orientation).
ogr2ogr -f GeoJSON -lco RFC7946=YES output.json input.json
or for use in scripts where you want to input and output the GeoJSON as a string:
echo 'Your GeoJSON' | ogr2ogr -f GeoJSON -lco RFC7946=YES /vsistdout/ /vsistdin/
This can be fixed very easily in Python using
from geojson_rewind import rewind rewoundGeoJSON = rewind(geoJSONString)