Project

General

Profile

Development #22639

Carto : gestion des fonds de carte

Added by Frédéric Péters about 2 years ago. Updated about 1 month ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
20 Mar 2018
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

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), 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").

Ensuite, 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.

0004-maps-default-tiles-layer-22639.patch View (4.95 KB) Lauréline Guerin, 11 Feb 2020 03:16 PM

0005-maps-define-tiles-layers-with-opacity-22639.patch View (18.7 KB) Lauréline Guerin, 11 Feb 2020 03:16 PM

0003-maps-add-tiles-layer-22639.patch View (24.8 KB) Lauréline Guerin, 11 Feb 2020 03:16 PM

0002-maps-new-MapLayerOptions-model-22639.patch View (27.7 KB) Lauréline Guerin, 11 Feb 2020 03:16 PM

0001-maps-add-missing-migrations.patch View (2.99 KB) Lauréline Guerin, 11 Feb 2020 03:16 PM

0004-maps-default-tiles-layer-22639.patch View (4.95 KB) Lauréline Guerin, 18 Feb 2020 02:32 PM

0005-maps-define-tiles-layers-with-opacity-22639.patch View (19 KB) Lauréline Guerin, 18 Feb 2020 02:32 PM

0003-maps-add-tiles-layer-22639.patch View (25 KB) Lauréline Guerin, 18 Feb 2020 02:32 PM

0002-maps-new-MapLayerOptions-model-22639.patch View (28 KB) Lauréline Guerin, 18 Feb 2020 02:32 PM

0001-maps-add-missing-migrations.patch View (2.99 KB) Lauréline Guerin, 18 Feb 2020 02:32 PM

0004-maps-default-tiles-layer-22639.patch View (4.95 KB) Lauréline Guerin, 19 Feb 2020 09:28 AM

0005-maps-define-tiles-layers-with-opacity-22639.patch View (19.2 KB) Lauréline Guerin, 19 Feb 2020 09:28 AM

0003-maps-add-tiles-layer-22639.patch View (25 KB) Lauréline Guerin, 19 Feb 2020 09:28 AM

0002-maps-new-MapLayerOptions-model-22639.patch View (28 KB) Lauréline Guerin, 19 Feb 2020 09:28 AM

0001-maps-add-missing-migrations.patch View (2.99 KB) Lauréline Guerin, 19 Feb 2020 09:28 AM

Associated revisions

Revision 34e627b0 (diff)
Added by Lauréline Guérin about 1 month ago

maps: new MapLayerOptions model (#22639)

Revision 7b186a3d (diff)
Added by Lauréline Guérin about 1 month ago

maps: add tiles layer (#22639)

Revision 98813316 (diff)
Added by Lauréline Guérin about 1 month ago

maps: default tiles layer (#22639)

Revision 9a087781 (diff)
Added by Lauréline Guérin about 1 month ago

maps: define tiles layers with opacity (#22639)

History

#2 Updated by Lauréline Guerin about 2 months ago

  • Assignee set to Lauréline Guerin

#3 Updated by Lauréline Guerin about 2 months ago

  • Assignee deleted (Lauréline Guerin)

#4 Updated by Lauréline Guerin about 2 months ago

  • Assignee set to Lauréline Guerin

#5 Updated by Frédéric Péters about 2 months ago

  • Description updated (diff)

#7 Updated by Frédéric Péters about 1 month ago

Nickel, juste mini-détails :

  • je n'incluerais pas "(GeoJSON)" derrière les couches GeoJSON (sur l'idée que ça va principalement être ça et qu'aujourd'hui ça fait une longue liste de "(GeoJSON)" répétés, pas jolis.
  • j'ajouterais un help_text à opacity, pour dire que c'est entre 0 et 1. (j'ai tapé 0.5 et il n'a pas voulu parce qu'il attendait une virgule mais je n'ai pas pigé tout de suite et j'ai alors tapé 50 et il m'a dit que ça devait être inférieur à 1). (si ça se fait sans trop de galères tu peux ajouter step="0.1" et min="0" et max="1" sur l'<input type=number>).
  • PageSnapshot.take(self.cell.page, request=self.request, comment=_('changed cell "%s"') % self.cell); je n'y ai pas pensé pour les liens mais je me dis que tant qu'à être dans du code spécifique autant taper un message spécifique, genre _('added layer "%s" to cell "%s").

#9 Updated by Frédéric Péters about 1 month ago

Décalage de parenthèse lors du rebasage, dans :

cell = list(serializers.deserialize('json', json.dumps([cell_data], ignorenonexistent=True)))[0]

Et je pense que j'ajouterais quand même le help_text à opacity (même avec les attributs supplémentaires posés sur l'<input>).

#11 Updated by Frédéric Péters about 1 month ago

  • Status changed from Solution proposée to Solution validée

#12 Updated by Lauréline Guerin about 1 month ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 9a08778110b4be927b7ffc6aa72beb7eda0c37d9
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Tue Feb 11 14:58:00 2020 +0100

    maps: define tiles layers with opacity (#22639)

commit 9881331665314ca85ebb50771ca89449db4f83e7
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Mon Feb 10 16:42:08 2020 +0100

    maps: default tiles layer (#22639)

commit 7b186a3dfb565b7e15aae6d14540da3de0050556
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Mon Feb 10 16:02:44 2020 +0100

    maps: add tiles layer (#22639)

commit 34e627b0d855d13187879c87f244d45c37df88c2
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Thu Feb 6 11:41:52 2020 +0100

    maps: new MapLayerOptions model (#22639)

#13 Updated by Frédéric Péters about 1 month ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF