Closed pka closed 3 years ago
Writer structs:
gdal::GdalWriter
: GDALgeojson::GeoJsonWriter
: GeoJSONgeos::Geos
: GEOSgeo_types::Geo
: geo-typessvg::SvgWriter
: SVGwkb::WkbWriter
: WKBwkt::WktWriter
: WKTStructs for DB type encoding/decoding:
gpkg::geo::Geometry
: Geopackage / geo-typesgpkg::geos::Geometry
: Geopackage / GEOSpostgis::postgres::geo::Geometry
: PostGIS rust-postgres / geo-typespostgis::postgres::geos::Geometry
: PostGIS rust-postgres / GEOSpostgis::sqlx::geo::Geometry
: PostGIS SQLx / geo-typespostgis::sqlx::geos::Geometry
: PostGIS SQLx / GEOSReader functions:
gdal::process_geom
: GDALgeojson::read_geojson
: GeoJSON feature (incl. geometry)geojson::read_geojson_geom
: GeoJSON geometrygeos::process_geos
: GEOSwkb::process_ewkb_geom
: PostGIS EWKBwkb::process_gpkg_geom
: Geopackage WKBConversion: | Format | GeozeroGeometry |
GeozeroDatasource |
GeomProcessor |
Geometry Conversion |
---|---|---|---|---|---|
geo-types | geo_types::Geometry<f64> |
- | geo_types::GeoWriter |
ToGeo |
|
GeoJSON | GeoJson |
GeoJsonReader , GeoJson |
geojson::GeoJsonWriter |
ToJson |
|
GDAL | gdal::vector::Geometry |
- | gdal::GdalWriter |
ToGdal |
|
GEOS | geos::Geometry |
- | geos::GeosWriter |
ToGeos |
|
SVG | - | - | svg::SvgWriter |
ToSvg |
|
WKB | Wkb , Ewkb , GpkgWkb |
- | wkb::WkbWriter |
ToWkb |
|
WKT | - | - | wkt::WktWriter |
ToWkt |
|
FlatGeobuf | FgbFeature |
FgbReader |
- | - |
Structs for DB type encoding/decoding:
wkb::Geometry<T: GeozeroGeometry>
Reader functions:
gdal::process_geom
: GDALgeojson::read_geojson
: GeoJSON feature (incl. geometry)geojson::read_geojson_geom
: GeoJSON geometrygeos::process_geom
: GEOSwkb::process_ewkb_geom
: PostGIS EWKBwkb::process_gpkg_geom
: Geopackage WKB
The geometry processing API has worked well for different implementations, so there are no short term changes planned. Mid term improvements:
dimensions()
)There is a initial high-level Reader API and Writer API, covering basic file reading/writing. The current core Reader/Writer implementations have the following Structs for writing and functions for reading:
GeoJsonWriter
: GeoJSON writerread_geojson
: Read and process GeoJSON featureread_geojson_geom
: Read and process GeoJSON geometryGeos
: Generator for GEOS geometry typeprocess_geos
: Process GEOS geometryRustGeo
: Generator for georust/geo geometry typeSvgWriter
: SVG writerWkt
: WKT writerflatgeobuf:
Code examples:
These struct/functions should be named more uniformly. Proposal:
FooWriter
: Struct for writing format Foo. (Alternatives:Foo
,FooSink
,FooProducer
,foo::Writer
)FooReader
: Struct for reading format Foo. (Alternatives:FooSource
,FooConsumer
,foo::Reader
)FooReader.process_features
: Read and process all selected featuresfoo::process
: Function for processing (reading) feature of format Foofoo:process_geom
: Function for processing (reading) geometry of format FooCode examples:
Feedback welcome! @georust ?