From 816a5af2b1e33493b9e5f64b9032c4f93d868956 Mon Sep 17 00:00:00 2001 From: Tamo Date: Wed, 17 Sep 2025 18:01:21 +0200 Subject: [PATCH] densify the shapes before storing them --- crates/milli/src/update/new/extract/geo/cellulite.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/milli/src/update/new/extract/geo/cellulite.rs b/crates/milli/src/update/new/extract/geo/cellulite.rs index 58bc57a1a..1781ce230 100644 --- a/crates/milli/src/update/new/extract/geo/cellulite.rs +++ b/crates/milli/src/update/new/extract/geo/cellulite.rs @@ -205,7 +205,10 @@ impl<'extractor> Extractor<'extractor> for GeoJsonExtractor { if let Some(geojson) = updated_geo { let geojson = GeoJson::from_str(geojson.get()).map_err(UserError::from)?; - let geometry = Geometry::try_from(geojson).map_err(UserError::from)?; + let mut geometry = + Geometry::try_from(geojson).map_err(UserError::from)?; + cellulite::densify_geom(&mut geometry); + let buf = ZerometryCodec::bytes_encode(&geometry).unwrap(); match &mut data_ref.spilled_inserted { @@ -230,7 +233,8 @@ impl<'extractor> Extractor<'extractor> for GeoJsonExtractor { if let Some(geojson) = inserted_geo { let geojson = GeoJson::from_str(geojson.get()).map_err(UserError::from)?; - let geometry = Geometry::try_from(geojson).map_err(UserError::from)?; + let mut geometry = Geometry::try_from(geojson).map_err(UserError::from)?; + cellulite::densify_geom(&mut geometry); let mut bytes = Vec::new(); Zerometry::write_from_geometry(&mut bytes, &geometry)?;