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