Aller au contenu

Vérification d'éligibilité

La vérification d’éligibilité détermine si un utilisateur à une adresse donnée peut participer à l’autoconsommation collective depuis une centrale photovoltaïque à proximité. Les règles sont basées sur :

  1. Proximité géographique — distance entre l’adresse de l’utilisateur et la centrale
  2. Densité de population — la classification de densité communale INSEE détermine la distance maximale autorisée

La distance d’éligibilité dépend du champ dens7 de la grille de densité INSEE :

Valeur dens7ClassificationDistance maximale
1Très peu dense (rural)2 km
2Peu dense2 km
3Densité intermédiaire basse10 km
4Densité intermédiaire haute10 km
5Dense20 km
6Très dense20 km
7Extrêmement dense (urban)20 km
Browser (JS) REST API Density DB
│ │ │
├── User types address ──> BAN API (direct from browser) │
│<── Geocode result (lat, lng, citycode) │
│ │ │
├── checkEligibility() ────────> │ │
│ │ │
├── fetch /density/{citycode} ──> │ ───── SELECT ──────────> │
│<── dens7 value ─────────────── response <── density row ── │
│ │ │
├── findNearbyPlants() │ │
│ (Haversine within 20km) │ │
│ │ │
├── For each plant: │ │
│ isPlantEligible() │ │
│ ├── dens7 <= 2: max 2km │ │
│ ├── dens7 3-4: max 10km │ │
│ └── dens7 >= 5: max 20km │ │
│ │ │
├── highlightEligiblePlants() │ │
├── addUserAddressMarker() │ │
└── updatePlantList(filtered) │ │
  1. Géocodage de l’adresse — L’utilisateur saisit une adresse. L’API BAN (Base Adresse Nationale) retourne les coordonnées (lat, lng) et un citycode INSEE.

  2. Recherche de densité — Le frontend appelle GET /density/{citycode} pour récupérer la valeur dens7 de la commune depuis la table de densité.

  3. Recherche de centrales à proximitéfindNearbyPlants() utilise la formule de Haversine pour trouver toutes les centrales dans un rayon de 20 km autour des coordonnées de l’utilisateur.

  4. Éligibilité par centraleisPlantEligible() applique le seuil du niveau de densité :

    • Si dens7 <= 2 → la centrale doit être à moins de 2 km
    • Si dens7 vaut 3 ou 4 → la centrale doit être à moins de 10 km
    • Si dens7 >= 5 → la centrale doit être à moins de 20 km
  5. Retour visuel — Les centrales éligibles sont mises en surbrillance sur la carte, un marqueur est placé à l’adresse de l’utilisateur, et la liste latérale est filtrée pour n’afficher que les centrales éligibles.

Les données de densité sont stockées dans la table personnalisée {prefix}irisolaris_density, importées depuis les fichiers de classification communale INSEE (voir Import de densité).

Champs clés pour l’éligibilité :

  • codgeo — Code commune INSEE (clé primaire, correspond au citycode de l’API BAN)
  • dens7 — Classification de densité à 7 niveaux (indexée pour des recherches rapides)
  • libdens7 — Libellé de densité lisible
OptionPar défautDescription
irisolaris_map_max_distance2 (km)Distance maximale d’éligibilité par défaut

Les règles par niveaux de densité (2/10/20 km) sont définies à la fois dans le JS frontend et dans Plugin.php.