| 1 | = RFC 65: RFC 7946 GeoJSON = |
| 2 | |
| 3 | Authors: Sean Gillies |
| 4 | |
| 5 | Contact: sean at mapbox.com |
| 6 | |
| 7 | Status: Development |
| 8 | |
| 9 | Implementation version: ? |
| 10 | |
| 11 | == Summary == |
| 12 | |
| 13 | GeoJSON has been standardized by the IETF: [https://tools.ietf.org/html/rfc7946 RFC 7946]. Updates to the OGR GeoJSON driver are needed so that it may write RFC 7946 GeoJSON. |
| 14 | |
| 15 | |
| 16 | == Rationale == |
| 17 | |
| 18 | The RFC 7946 standard is backwards compatible with the legacy definition of GeoJSON, but has a few differences (see https://tools.ietf.org/html/rfc7946#appendix-B). For OGR, the most significant are: removal of "crs" (CRS84 only), counter-clockwise winding of polygons, geometry splitting at the antimeridian, and representation of bounding boxes at the antimeridian and poles. |
| 19 | |
| 20 | Consensus on the gdal-dev list is that developers should be able to require RFC 7946 GeoJSON by configuring GDAL with an option or environment variable and that it be an all-or-nothing switch. |
| 21 | |
| 22 | == Changes == |
| 23 | |
| 24 | A configuration option will be added for the GeoJSON driver, e.g., {{{OGR_GEOJSON_RFC7946=TRUE}}}. When "on", OGR will write GeoJSON with CRS84 coordinates (reprojecting as needed) with 7 places of precision by default, polygons wound properly, and geometries split at the antimeridian. |
| 25 | |
| 26 | === Updated drivers === |
| 27 | |
| 28 | GeoJSON |
| 29 | |
| 30 | == SWIG bindings (Python / Java / C# / Perl) changes == |
| 31 | |
| 32 | None |
| 33 | |
| 34 | == Utilities == |
| 35 | |
| 36 | Utilities will implement RFC 7946 by using the configuration option. |
| 37 | |
| 38 | == Documentation == |
| 39 | |
| 40 | Documentation of the new configuration option will reference RFC 7946. |
| 41 | |
| 42 | == Test Suite == |
| 43 | |
| 44 | The tests of the updated drivers test the effect of the new method. |
| 45 | |
| 46 | == Compatibility Issues == |
| 47 | |
| 48 | TODO |
| 49 | |
| 50 | == Related ticket == |
| 51 | |
| 52 | TODO |
| 53 | |
| 54 | == Implementation == |
| 55 | |
| 56 | Implementation will be done by Even Rouault and be sponsored by Mapbox. |
| 57 | |
| 58 | == Voting history |
| 59 | |
| 60 | TODO |