mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 02:14:01 +00:00
feat(search): Nominatim as the last-resort geocoder (#573)
Supersedes #350 by @sendmebits, ported onto the current component layout with fixes from review. Verified before merge: format, package boundaries, unit suite, build, and the browser tracking suite; a browser harness for the change where one applies; adversarial review applied. Co-authored-by: sendmebits <[email protected]>
This commit is contained in:
1 parent
cca6442997
commit
7fa0cfbb26
15 files changed
+1077
-48
No files matched your search
@@ -3079,6 +3079,17 @@ geocoders instead of being answered from the bundle. Degrees/minutes/seconds and
|
||||
grid references are not parsed. An answer either provider gives is exact, so
|
||||
nearby-landmark recovery stands aside for it — otherwise a typed coordinate
|
||||
could be replaced by whatever Places finds near the current view. The portable `./search` export
|
||||
Google first when configured, Photon/OpenStreetMap as fallback (including Google
|
||||
transport failures or declined requests), and the local `/api/geocode` route
|
||||
over Nominatim as a last resort when neither answers. That route keeps to the
|
||||
public instance's usage policy: an identifying `User-Agent` and `Referer`, at
|
||||
most one request per second shared with the cockpit's reverse lookups, answers
|
||||
cached for five minutes, one upstream call shared between identical searches
|
||||
already in flight, a queue bounded at four waiting searches (a burst past it is
|
||||
refused with 429 and `Retry-After`, never held), and a queued search dropped
|
||||
once its caller has given up rather than spending a slot on an answer nobody
|
||||
will read. A hit whose coordinates or bounding box are missing or out of range
|
||||
is discarded rather than coerced. The portable `./search` export
|
||||
provides the service and adapters; it reads no environment or application state.
|
||||
Existing browser/server key setup is unchanged.
|
||||
|
||||
|
||||
Reference in new issue
Block a user