Skip to content

Latest commit

 

History

History
55 lines (49 loc) · 2.32 KB

todo.md

File metadata and controls

55 lines (49 loc) · 2.32 KB

TODOs

Features

  • map via geojson.io
  • Preserve features on existing GJ features
  • Point geohash (echo 12,34 | geoq gh point 4 => abcd)
  • Geojson geom printing
  • Geojson feature printing
  • Geojson feature collection aggregation
  • Add wkt writing -- perhaps borrow from https://github.com/CanalTP/rust-wkt/tree/write-wkt ?
  • Map large JSON with embedded copy of geojson.io web page
  • filter intersects
  • filter within
  • gh children
  • gh neighbors
  • gh covering <level>
  • wkt geomcollection
  • wkt multi (linestring/poly/point? figure out how to decide)
  • area - investigate geodesic area implementations?

Improvements

  • Try assert cli for testing CLI "type" command https://github.com/assert-rs/assert_cli
  • Add rust-geohash and generate point geohashes
  • test reader matching functions
  • Refactor reading interface to produce an iter (i.e. let reader methods return errors)
  • Migrate Geojson and WKT output formats to trait
  • Add strings in error messages so, e.g. bad inputs can be printed with error
  • Investigate parallel iterator processing (rayon?)
  • Try streaming serde for feature collections: serde-rs/json#345
  • Make error types support string messages (or just make them strings? add a lookup table?)
  • Geohash require valid precision level (1 - 12)
  • Print invalid geometries to stderr (or exit program?)
  • Make "exit on invalid" configurable
  • figure out streaming geojson feature collection output
  • cross-platform open command for geojson map
  • Migrate back to official rust-wkt crate
  • crates.io release
  • Homebrew formula
  • Readme Docs + Install Instructions
  • Iterator-based covering GH implementation (don't hold whole list in memory as a vector)
  • Move individual command handlers to separate namespaces
  • Limit geojson.io output length
  • Remove Input::Unknown -- make these give errors

Entity refactoring problem: currently conversion methods take ownership -- getting geometry or geojson rep consumes original input Alternative: turn entities to structs with lazily-populated fields (or even eager...maybe perf doesnt matter) Entity

  • raw / original
  • properties map
  • geometry

...then other operations can borrow these fields