You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(overture): add Overture Maps POI integration (Places, off by default) (#73)
Adds optional Overture Maps Places as a first-party data source fused with OpenStreetMap, for commercial POI search and place-card enrichment. Ships OFF by default — the integrations self-disable when unconfigured and the search orchestrator short-circuits to the byte-identical Overpass-only path, so merging changes nothing about current runtime behavior.
- Conflation backbone in @openmapx/core: tiered union-find matcher with name-independent corroboration (address keys, wikidata, phone/website signals).
- data-manager Overture pipeline: DuckDB-over-S3 extract → PostGIS ingest → H3-blocked conflation → poi_conflation_link, plus monthly changelog deltas, cron, and a data overture-* CLI.
- Two integrations, off by default: poi-overture (search fusion) and knowledge-overture (brand/multilingual-name/opening-hours/wikidata enrichment).
- poi-search orchestrator: Overpass base + Overture augment, merged via the precomputed link table and a query-time union-find pass.
Scope is Places only (CDLA-Permissive). Validated end-to-end on a full Berlin ingest; conflation measured at 0% phone-set contradiction among phone-bearing links.
Add the OSM↔Overture POI conflation toolkit used by the Overture Places integration. Exposes the bipartite `conflate` matcher (`ConflationPoint`/`ConflationThresholds`/`ConflationResult`/`DEFAULT_CONFLATION_THRESHOLDS`), query-time `fusePoiResults`, the Overture category mappings (`overtureCategoryToOpenMapX`, `openMapXCategoryToOverture`, `OVERTURE_COMMERCIAL_CATEGORIES`, `openmapxCategoryToOvertureLeaves`), and the name-independent matching utilities in `geo-server` (`nameSimilarity`, `normalizeName`, `normalizeStreet`, `osmAddressKey`, `overtureAddressKey`, `normalizePhone`, `parsePhones`, `websiteDomain`). Matching corroborates on address keys, wikidata, and phone/website signals beyond fuzzy name similarity.
0 commit comments