Projet

Général

Profil

Development #22639

Mis à jour par Frédéric Péters il y a environ 4 ans

On définit un fond de carte de base dans la config, genre :

COMBO_MAP_TILE_URLTEMPLATE = "https://carton.entrouvert.org/hydda-tiles/{z}/{x}/{y}{r}.png"

Mais on souhaiterait pouvoir y superposer d'autres fonds de carte, pour par exemple avoir en transparence l'heatmap de la qualité de l'air. (cf #22323)

Du coup j'imagine un nouveau modèle définissant un fond de carte (genre MapTilesLayer), carte, avec la possibilité de définir qu'il s'agit du fond de carte par défaut (et en son absence, fallback sur COMBO_MAP_TILE_URLTEMPLATE).

Dans le modèle il y aurait slug, URL (compatible leaflet, ex: 'http://somedomain.com/blabla/{z}/{x}/{y}{r}.png') et une chaine pour l'attribution (ex: "contributeurs OpenStreetMap"). l'attribution.

Ensuite, Et dans la config d'une carte on pourrait paramétrer les fonds souhaités (que je verrais stockés sous forme de liste de dictionnaires, avec comme clé slug et opacity (pour commencer)).

Ou alors, pour faire models.ManyToManyField comme pour les couches, mettre opacity dans les attributs du modèle MapTilesLayer.

De là je me demande aussi s'il y aurait intérêt à faire un seul modèle (MapLayer), y ajouter un attribut "kind" (tuiles ou geojson) et y combiner tous les attributs. Je me dis que ça a comme avantage de ne pour ainsi dire rien demander du côté de la cellule et certaines évolutions communes seront facilitées (j'imagine par exemple qu'on puisse avoir en front un menu pour afficher ou pas certaines couches). Côté UI dans la gestion des couches, j'imagine cependant que ça resterait des vues séparées, une vue "Ajouter une couche GeoJSON" et une vue "Ajouter une couche de tuiles" (et pareil pour l'édition, pour présenter des champs différents).

Pour tester, https://b.tiles.atmo-aura.fr/indices_j/{z}/{x}/{y}.png a les tuiles "qualité de l'air" de la région de Lyon.

Retour