GeoJson Support

GeoJson Support

Goals

  • Rich support for geojson

  • Filtering via jsonpath-like expressions

  • load geojson natively (i.e. no converter definition, or an empty converter)

  • heterogenous geojson docs in one table

  • multiple 'materialized views' (sfts) per table

Use Case

  •  

Considerations

  • support json-schema

  • efficient/compressed storage

  • variable attributes/flexible schema

  • attribute indices

  • pushdown predicates

  • query syntax and predicates - possibly build off mongodb, jq, solr, postgres jsonb

  • geoserver/simplefeature integration

  • ingest api/services

  • try to avoid parsing json during filtering

  • optimizations - define materialized views up front and/or with m/r jobs instead of compute on the fly (consider using column groups)

  • optimizations - allow for definition of fields up front and replace serialized strings with field ids

  • projects to evaluate for ideas - bson, msgpack, grpc, protocol-bufs, avro, postgres jsonb, solr geo

Design

  • Support native json attributes in SimpleFeatures in AccumuloDataStore

    • serialized as reduced bson

    • support json-path expressions into the serialized json

    • evaluate expressions without reparsing json

  • Materialized views are supported through projections using json-path selectors

  • Scala API wraps geotools datastore and hides implemenation details

    • Accepts geojson features to add

    • Query API is based off mongodb syntax

  • Rest API wraps Scala API as a webservice

Tasks

  • TBD

 

References

http://docs.geotools.org/stable/javadocs/org/geotools/geojson/feature/FeatureJSON.html

https://docs.mongodb.com/manual/reference/geojson/

https://github.com/opendatalab-de/geojson-jackson