developmentseed / developmentseed/eo-predictor
Explore Gazet-powered natural-language AOI search
- Dominant language
- TypeScript
- Stars
- 22
- Forks
- 2
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 2
Description
## Summary
Explore using [Gazet](https://github.com/developmentseed/gazet) — Development Seed's natural-language geocoding tool with GIS operations over Overture/Natural Earth data — to let users type a query like "50km buffer around Paris" and get back a GeoJSON AOI polygon, feeding directly into the AOI pipeline shipped in #90.
## Why
#90 added AOI loading via GeoJSON file upload. Gazet could offer a second, more casual way to define an AOI — typed natural language instead of a prepared file — for cases where the user doesn't already have a GeoJSON (e.g. "I just want a buffer around a city," not a precise rapid-mapping polygon).
## Proposed approach
- Gazet exposes a FastAPI `/search` endpoint that returns GeoJSON (`FeatureCollection`/`Feature`) for a natural-language query.
- Feed the returned GeoJSON through the existing AOI pipeline rather than building a parallel code path: `loadAoiFromFile`-style normalization → `filterStore.setAoi()` → `map.fitBounds()` (same as `AoiUpload.tsx` / `aoiUtils.ts`).
- Positioned as complementary to file upload, not a replacement — a second entry point into the same AOI state.
## Dependency risk (needs resolving before scoping further)
- Development Seed has a hosted Gazet instance, but it currently appears to be down/unreliable. Need to confirm status, ownership, and uptime expectations before committing to a UI build — no point building a search box against a service that isn't reliably available.
- If the hosted instance isn't viable, this may require deploying/maintaining our own instance (Gazet ships a Dockerfile/docker-compose), which is a bigger lift than the search UI itself.
## Open questions
- Does Gazet support buffer distances natively in the query (e.g. "50km buffer around Paris"), or would we need to parse a distance + place and construct the buffer ourselves (e.g. with Turf, matching the geometry libraries already used in `aoiUtils.ts`)?
- What's the reliability/ownership story for the hosted instance?
- Should this be gated behind a feature flag until Gazet's hosting story is settled?
Contributor guide
No contributing guide indexed for this repository
Research direction
First verify the hosted Gazet /search service's status, ownership, and uptime expectations before scoping implementation. Then read AoiUpload.tsx, aoiUtils.ts, and the AOI pipeline from #90 to understand the existing normalization, filterStore.setAoi(), and map.fitBounds() flow. Done means choosing a viable hosting or feature-flag approach and defining whether Gazet or local geometry handling supports the proposed queries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- fastapi, typescript
- Domain
- api, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100