feat(search): coordinates and bundled presets resolve keyless (#572)

Supersedes #388 by @KuraPiee, 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: KuraPiee <[email protected]>
This commit is contained in:
Bilawal SidhuandKuraPiee authored and GitHub committed 2026-09-14 21:18:07 -05:00
1 parent d9fac6d88e
commit cca6442997
13 files changed
+672 -14

No files matched your search

+13 -7
View File
@@ -793,13 +793,19 @@ export async function searchAndFlyTo(viewer, query, options = {}) {
let types = result?.types || [];
let viewport = result?.viewport || null;
// Nearby landmark recovery retains precedence over a fallback geocoder hit.
const recovered = await (options.recoverNearView || placesNearViewRecovery)(
viewer,
query,
result && !outcome.fallbackUsed ? { lat, lon: lng } : null,
signal,
);
// Nearby landmark recovery retains precedence over a fallback geocoder hit,
// but never over an exact answer. Recovery exists to rescue a name that a
// geocoder read too broadly; a typed coordinate or a bundled name has no
// ambiguity to rescue, and letting a nearby Places hit win would send an
// operator who typed "43.1731, -79.0384" to whatever is closest instead.
const recovered = result?.exact
? null
: await (options.recoverNearView || placesNearViewRecovery)(
viewer,
query,
result && !outcome.fallbackUsed ? { lat, lon: lng } : null,
signal,
);
signal?.throwIfAborted();
if (recovered) {
lat = recovered.lat;