Commit Graph

3 Commits

Author SHA1 Message Date
68786787b4 fix(address-map): RTL label rendering + use address_compact
- register MapLibre's RTL text plugin (@mapbox/mapbox-gl-rtl-text) so
  Persian/Arabic map labels render correctly instead of reversed/broken.
  Guarded via getRTLTextPluginStatus so it's set only once.
- reverse geocoding now prefers Map.ir's address_compact (shorter, cleaner
  address) over the full address.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 02:38:34 +03:30
3c7ee5b24c feat(address-map): MapLibre GL + Map.ir vector map & Persian reverse geocoding
Replace the broken-looking Leaflet/OSM address picker with a MapLibre GL
map using Map.ir vector tiles, plus Map.ir reverse geocoding for fast
coordinates -> Persian address.

- InteractiveMap: drop react-leaflet/leaflet; init a MapLibre map (Map.ir
  style via transformRequest x-api-key), a NavigationControl, and a fixed
  center pin — the map moves under the pin and the centre is reverse-
  geocoded on moveend (debounced). Wrapped dir=ltr so the map renders
  correctly inside the RTL page (fixes the scattered-tiles bug). Selected
  address shown in an overlay chip; city select / geolocation fly the map.
- reverse geocoding: Nominatim -> Map.ir (https://map.ir/reverse), which
  returns proper Persian addresses (Nominatim was weak for Iran and its
  TOS forbids production use).
- default map centre fixed to Tehran (matched the "تهران" selector).
- key via VITE_MAPIR_KEY (documented in .env.example; real key in env).
- deps: add maplibre-gl, remove leaflet/react-leaflet/@types/leaflet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 01:20:37 +03:30
0293655fc1 first 2026-04-29 01:44:16 +03:30