WELIFE Docs Swagger Admin Web

WP-ROUTE-GOOGLE-MATCH-01 — So khớp số nhà với Google/Mapbox

Domain: D-ROUTE · Surfaces: API (+ CON gọi /routing/autocomplete) · Status: IMP (rank) · OWNER_REQUIRED (Google key live) · Date: 2026-08-17

Mục tiêu

Gõ 12 Nguyễn Huệ / Số 45/7 Lê Lợi / tên tòa → gợi ý đúng số nhà, không bị POI «Cafe 12» át.

BE đã làm

Bước Hành vi
Google Key GOOGLE_MAPS_API_KEY / GOOGLE_PLACES_API_KEY / EXPO_PUBLIC_GOOGLE_MAPS_API_KEY · Places New → legacy → Geocoding
Chấm điểm scoreAddressAgainstQuery: số nhà và token đường +100; thiếu số nhà khi query có số −40; street_address/premise +22
Mapbox Khi query dạng số+đường: types=address trước · map feature.address → streetNumber · tên 12 Nguyễn Huệ
Nominatim address.house_number + road

Unit: npx jest src/modules/routing/address-query.spec.ts 6/6 PASS.

Live Google (local 2026-08-17)

npm run routing:google:smoke (không in key):

OWNER: tạo key mới trên Google Cloud Console:

  1. Billing bật
  2. Enable Places API (New) + Geocoding API
  3. Application restriction: None hoặc IP máy API/VPS — không khoá Android/iOS-only (Nest gọi server-side)
  4. Paste GOOGLE_MAPS_API_KEY= vào api/.env và VPS nếu CON trỏ prod
  5. Restart Nest · npm run routing:google:smoke → placesNewCount hoặc geocodeCount > 0

Key Maps SDK Android (khoá package) không dùng được cho search REST.

Gõ thử sau restart API

12 Nguyễn Huệ · Số 45 Lê Lợi · Landmark 81 · Chung cư The Sun Avenue