feat(outlines): restore voice outlines without public Overpass

use bundled place boundaries and shared OpenFreeMap tiles before a guarded Nominatim fallback

preserve multipart shapes, holes and cancellation,
and keep pending annotations visible while ground sampling finishes across frames

keep non-Latin name distinctions when selecting provider results,
and retain an outline anchor only when it lies in filled geometry
This commit is contained in:
manjunath committed 2026-10-27 13:24:02 +00:00
commit d4434aa6d7
1489 files changed
+196442 -12353

No files matched your search

+4 -2
View File
@@ -75,7 +75,7 @@ export function nominatimLongitude(value) {
export function typesFromNominatim(hit) {
const addresstype = String(hit?.addresstype || '').toLowerCase();
const osmType = String(hit?.type || '').toLowerCase();
const osmClass = String(hit?.class || '').toLowerCase();
const osmClass = String(hit?.category || hit?.class || '').toLowerCase();
const mapped =
ADDRESS_TYPE_MAP[addresstype] ||
ADDRESS_TYPE_MAP[osmType] ||
@@ -166,6 +166,8 @@ export function nominatimViewboxFromBounds(bounds) {
const neLat = nominatimLatitude(match[3]);
const neLng = nominatimLongitude(match[4]);
if ([swLat, swLng, neLat, neLng].some((value) => value === null)) return null;
if (swLat >= neLat) return null;
// One Nominatim viewbox cannot express a wrapped interval. Omit this soft
// preference rather than biasing the search toward the opposite hemisphere.
if (swLat >= neLat || swLng > neLng) return null;
return `${swLng},${neLat},${neLng},${swLat}`;
}