PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
99 stars 101 forks source link

Carte: ajouter une librairie d'export en image #1116

Closed FlorentRICHARD44 closed 1 year ago

FlorentRICHARD44 commented 3 years ago

Je souhaite ajouter une librairie permettant d'exporter la carte Leaflet en image. Le but dans mon cas est de générer un PDF contenant la carte avec toutes les positions d'un individu (CMR). Mais cela pourrait être utile à d'autres pour des fichiers PDF mais aussi télécharger l'image (sans avoir à faire d'impression d'écran ou d'utiliser un autre outil de capture).

J'ai commencé à tester avec "leaflet-image" fait par mapbox [1],[2] qui est proposé par Leaflet dans ses plugins [3] [1] https://github.com/mapbox/leaflet-image, [2] https://www.npmjs.com/package/leaflet-image [3] https://leafletjs.com/plugins.html#printexport

Cela a l'air de plutôt bien fonctionner (testé avec fond OSM et des 'circlemarker'. image

Avez-vous déjà envisagé cette solution ou une autre?

camillemonchicourt commented 3 years ago

OK dans un autre projet on avait utilisé https://github.com/Flexberry/Leaflet.Export A voir celui qui semble le plus robuste, maintenu et perenne ?

camillemonchicourt commented 3 years ago

Tu génères tes PDF côté client ? Car pour le module Métadonnées, on a ajouté WeasyPrint pour générer des PDF des fiches côté serveur.

FlorentRICHARD44 commented 3 years ago

Merci pour le lien avec Leaflet.Export. il fait "print" également ça peut être un plus. Je vais comparer les 2 du coup.

Je génère le PDF côté serveur avec weasyprint. je me suis inspiré du module métadonnées en effet.

Quand l'utilisateur clique sur le bouton "Télécharger", je récupère l'image côté client, je l'envoie au server en dataURL dans mon service de génération du PDF, qui l'inclue en tant qu'image dans le template HTML et génère le PDF.

FlorentRICHARD44 commented 3 years ago

Au final je suis resté sur leaflet-image:

camillemonchicourt commented 3 years ago

OK en effet il faut privilégier la stabilité.