mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-06 11:24:00 +00:00
fix(voice): resolve areas per view, without accents and per natural place
From review:
- An answer the view picked ("Springfield" over Illinois) is reused or
shared only within the same ~2° view cell, so asking again elsewhere no
longer gets the first state's area.
- Admin names compare with accents folded on Latin letters only: "Quebec"
matches "Québec" and "Cordoba" asks between Argentina and Spain, while a
Thai or Devanagari mark still tells names apart.
- A Natural Earth name used by several features is one place with every
part when they touch (the Great Rift Valley, the Lau Group across 180°)
and a question when they are far apart (Flores); natural places can now
be candidates.
- The AREAS rule and the area tool descriptions are tighter, leaving a
~270-character margin under the 55,500 prompt ceiling, and resolve_area
no longer names osm_query when that tool is not offered.
This commit is contained in:
1 parent
fb74354d30
commit
207373389a
12 files changed
+328
-22
No files matched your search
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
|
||||
import { createAreaStore, summarizeArea } from '../data/areaStore.js';
|
||||
import { createAreaResolver } from '../data/areaResolver.js';
|
||||
import { createAreaResolver, foldLatinMarks } from '../data/areaResolver.js';
|
||||
import { circleRing, displayParts } from '../data/areaGeometry.js';
|
||||
import { findNaturalRegion } from '../data/naturalEarthRegions.js';
|
||||
import { findAdminCandidates as findBundledAdminCandidates } from '../data/adminBoundaries.js';
|
||||
@@ -91,7 +91,10 @@ function administrativeIdentity(value) {
|
||||
/\b(country|nation|province|state|region|zone|oblast|prefecture|canton|governorate|county|district|department)$/,
|
||||
);
|
||||
return {
|
||||
name: match ? normalized.slice(0, -match[0].length).trim() : normalized,
|
||||
// Compared, never shown: "Quebec" as spoken names "Québec".
|
||||
name: foldLatinMarks(
|
||||
match ? normalized.slice(0, -match[0].length).trim() : normalized,
|
||||
),
|
||||
level: match ? ADMIN_IDENTITY_LEVEL[match[1]] || null : null,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user