-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Milestone
Description
Need:
Previously there was a workflow that would subdivide vector data using PostGIS subdivision, use bundle-features to publish the data with an index (custom), and VectorDataSource to quickly fetch vector data using the index, given a bounding box and optionally merge the subdivided polygon back into a larger one. fetched results would be cached client-side to avoid extra re-fetches.
The previous solution:
- existed before Flatgeobuf and Cloud-optimized geotiff's with built-in index existed and were stable.
- only worked for polygon data, and not all polygons (were still some error cases)
- had a lot of manual scripted steps to manage it
- has suffered from bit rot, the bundle-features code no longer works, particularly the Slonik Postgres interface.
The problem:
- global datasets like political boundaries and shoreline have too large of polygons to be efficiently fetched for a lot of countries.
Immediate vector workaround solution:
- Subdivide dataset manually using whatever makes sense, doesn't have to be PostGIS, perhaps https://github.com/jvail/spl.js/
- publish subdivided flatgeobuf as normal (import:data/publish:data) and use
getFeaturesto fetch - union result using Turf (likely much slower than VectorDataSource which can stitch back together subdivided quickly). Can we repurpose old union code?
Full replacement solution would:
- support both vector and raster
- JS client - build on top of or into Geoblaze and Flatgeobuf clients.
- client-side cache - will need to cache using a unique way to identify the range of data fetched (byte range? for flatgeobuf). And a way to read it back out client-side. Support reuse of cache across lambda invocations via shared global memory
- provide client-side caching
- Union - previous implementation could do this very quickly. Consider options - Turf could certainly do it.
References:
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels