# Lou-Ka Maps — intégration Ka Maps **Auteur : Simon-Pierre Boucher — contact@spboucher.ai — Groupe Ka / Ka Maps (intégration Lou-Ka)** Lou-Ka consomme le framework partagé `@groupe-ka/ka-maps` (`file:../../ka-maps`, moteur Mapbox GL, style Standard 3D). Voir `~/Desktop/ka-maps/docs/ka-maps.md` pour l'architecture du framework. ## Fichiers de l'intégration | Fichier | Rôle | |---|---| | `frontend/src/kamaps/theme.ts` | thème Lou-Ka Maps (encre/lime/vert ; pastilles encre-blanc, sélection lime) | | `frontend/src/kamaps/adapter.ts` | `/api/listings.geojson?bbox=…` → `MapProperty` (kind `listing`, type `rent`) | | `frontend/src/kamaps/config.ts` | jeton public Mapbox (surcharge `VITE_MAPBOX_TOKEN`) | | `frontend/src/components/MapView.tsx` | montage : sync liste↔carte, URL caméra, aperçu React, 3D/2D | | `frontend/src/pages/Home.tsx` | sélection/survol des cartes de liste + recherche debouncée | | `louka/web.py` | `/api/listings.geojson` : `bbox`, `limit`, `totalGeocoded`, `totalMatching` | | `louka/db.py` | index `idx_listings_geo(lat,lng)` (+ `PRAGMA optimize` à l'ingestion) | ## Spécificités Lou-Ka - `cluster={{ maxZoom: 15, valueClamp: [250, 8000] }}` : géocodage par immeuble (les logements d'une adresse se superposent) et loyers aberrants (maisons à vendre publiées en location) bornés. - Compat : sans `bbox`, l'endpoint GeoJSON garde son ancien comportement. - « N hors carte » = annonces filtrées sans coordonnées ou hors zone (`totalMatching`) — ~40 % des annonces actives ne sont pas géocodées. - L'app iOS (MapKit) est hors périmètre Ka Maps : elle partage seulement les API. ## Vérifier `npm run build` (typecheck+bundle) ; `python run.py serve 8095` puis `/?view=carte` : grappes → zoom → pastilles → clic → aperçu → pan → « Rechercher dans cette zone » → filtre → compteur.