A year and a half ago, I blogged about the publication of RFC 8142 and some of
the small complications using
sequences of GeoJSON texts delimited by ASCII record separators (RS, or
\x1e
). At the time there weren't any implementations other than Fiona, Tippecanoe, jq, and GNU parallel.
The situation is dramatically better this week, largely due to a blog post
about non-standard GeoJSON sequences. Even Rouault has added
a GeoJSONSeq driver for GDAL 2.4.
This makes RFC 8142 a real thing for the open source GIS community. Once this
version gets deployed widely, gigantic and unweildly GeoJSON feature collection
blobs will be passé.
I've also written a new Python decoder and encoder for JSON text sequences
based on my experiences in developing this feature for the Fiona library:
https://pypi.org/project/jsonseq. I'm using language features only available in
Python 3.5 or newer, type annotations in particular. It's been refreshing to
not even think about Python 2 compatibility. If you wanted to use these classes
in an older Python application, please vendor it. It's only a few lines of code
and is pretty much complete. I learned a little more about the Python standard
library's JSON decoder and encoder, too.
I tweeted a link to this post, which makes me feel like a tool, but it's
a small price to pay towards burying multi-GB GeoJSON file sharing.