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.