Expand description
The “feature” — one row in a spatial dataset.
§Shape
A Feature is the trio you’d expect from anything geospatial:
fid— optional row identifier (FileGDB OBJECTID, Shapefile record number, GeoJSON’s free-formid).Nonefor formats that don’t track one (raw GeoJSON FeatureCollections, Arrow record batches).geometry— optionalGeometry.Nonefor attribute-only tables (GDB system tables, DBF-only Shapefiles, theLayerfor a non-spatial PostGIS view).attributes—Vec<Value>inSchema::fieldsorder. Length must equal the schema’sfields.len(); readers / writers enforce this contract at row build time.
§Why a Vec and not a HashMap<String, Value>
Format readers/writers care about field order: DBF stores columns in a
fixed sequence, Arrow batches map column index to field, FileGDB rows
emit nullable bitmap bits in declared order. A HashMap would lose this
and double the per-row allocation cost. Name lookup is available via
Schema::field_index(name).