Afficher une google map dans un pdf

Afficher une google map dans un pdf - PHP - Programmation

Marsh Posté le 11-06-2019 à 12:30:04    

Bonjour,
Dans l'appli GRR (gestion de réservations de ressources), il existe une fonction permettant de générer un pdf contenant une confirmation de sa réservation. Dans mon contexte d'utilisation, j'aurais besoin d'y ajouter une google map. Ce pdf est généré à partir d'une page html qui est ensuite transformée en pdf via la lib html2canvas.
Problème : à la place de ma google map, j'ai un rectangle gris où on voit juste écrit les infos du bas de la map ("L'image peut être protégée par des droits d'auteur   conditions d'utilisation" ).
 
J'ai essayé pleins de techniques différentes : une versions plus récente de html2canvas, phantomjs (mais là, ça pose des soucis de faire un script pour s'authentifier d'abord puis ensuite d'accéder à la page désirée, bref, une vraie galère), quelques variantes de html2canvas. J'ai cherché pleins de trucs sur le web. Y'a bien l'API de Google pour des static maps mais ma clé d'API pour ma google map n'est pas éligible à cette API. J'ai cru comprendre qu'il fallait payer (pas possible dans mon cas).
 
Bref, j'ai cherche via Firefox comment on pouvait déclencher une capture d'écran d'une page web automatiquement, sans succès. J'ai cherché comment transformer en image une div google map, sans succès :(
 
Vous auriez une idée par hasard, svp ?
Merci :jap:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 11-06-2019 à 12:30:04   

Reply

Marsh Posté le 11-06-2019 à 13:43:35    

Tu es obligé d'utiliser le méchant Google? :o Sur https://www.openstreetmap.org il y a une fonction exporter une image (caché sous le nom "share"/partager), il doit exister une API pour ça. En plus c'est sous licence libre.
Sinon il existe https://www.seleniumhq.org/ , peut-être on peut faire une capture d'écran avec, mais cela a l'air très complexe.


Message édité par rat de combat le 11-06-2019 à 13:44:44
Reply

Marsh Posté le 11-06-2019 à 14:11:28    

Pour être précis, j'utilise Google map pour afficher des données Géoportail. L'API de l'IGN est vrai une grosse daube. :/
Après, j'ai utilisé Google map parce que j'ai déjà fait pleins de trucs avec cette API et que devoir apprendre une nouvelle API sur un projet qui est très petit me paraît pas économiquement approprié.
 
J'ai vu qu OpenStreetMap reposait sur Leaflet.js qui est compatible avec Géoportail. Du coup, un de ces 4, ça vaudra le coup que je me penche sur la question, surtout si Google map devenait payant... En attendant, je dois faire avec.
 
Edit : et Selenium, je connais mais ça va être aussi complexe que Phantomjs. Or, ma station de dév est sous Windows (pas le choix) et mon serveur de prod est sous Red Hat (là encore, pas le choix). Du coup, ça m'obligerait à gérer des binaires différents puisque Phantomjs est un exécutable qui exécute des fichiers javascript. Mais comme expliqué, va falloir faire un script d'authentification https, se balader dans les différentes pages, faire la capture d'écran, lancer le script de génération de pdf. Quand je vois l'exemple pour juste se connecter sur Amazon et faire un capture, c'est bien reloud :/ Comme le besoin est du "nice to have", je vais pas me lancer sur une telle solution. L'appli doit fonctionner sans truc à installer côté client (donc pas d'extension Firefox). Donc soit du javascript pour Firefox (et encore, je ne maîtrise pas complètement la version déployée dans les centres), soit un truc côté serveur (et si possible pas trop complexe à installer vu la criticité de l'exigence fonctionnelle ;)).


Message édité par rufo le 11-06-2019 à 14:17:56

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-06-2019 à 14:54:10    

Avoir un n° de CB dans une administration française, c'est chaud. Et je ne vais pas mettre la mienne même si ça coûte presque rien :o J'ai effectivement créé une nouvelle clé mais comme indiqué, pour la valider, il faut des coordonnées bancaires, chose que je n'aurai jamais :( Le contexte n'est pas une activité commerciale. La fonction de confirmation de réservation n'est pas essentielle et elle fonctionne. C'est juste qu'il n'y aura pas la map. C'est pas très grave...
Je voulais juste m'assurer de ne pas être passé à côté d'une solution.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-06-2019 à 15:16:13    

Est ce que tu ne peux pas les préparer en amonts ?
C'est le client en faisant sa vente qui fixes le la localisation ou tu as des "produits" localisé ?
Dans le 2ème cas tu peux peut être avoir un cron qui génère tes images en fonction de tes produits (pas d'image => lien générique vers ton aplli avec Google Map, image carte personnalisé).


---------------
D3
Reply

Marsh Posté le 12-06-2019 à 16:04:47    

J'ai bien précisé qu'il ne s'agissait pas d'une activité commerciale. ;)
 
C'est la personne qui fait la réservation de la ressource et qui indique dans quelle zone elle va l'utiliser (cette zone étant définie par des paramètres métier). Donc pas possible de générer la carte avant :(


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-06-2019 à 19:12:44    

Rat de combat avait proposé openstreetmap qui permet un export de la map en image. Donc si l'exigence d'avoir la map dans le pdf passait de "nice to have" à "il le faut absolument", alors je proposerai de recoder toutes les map de l'appli avec openstreetmap. Au stade où en est l'appli, ça va pas le coup/coût de recoder toutes ces parties "map".
 
Afficher un lien vers la google map dans le pdf peut être un bon compromis. Le hic, c'est que ma map contient des markers et un polygone. Je suis pas sûr que par une url, on puisse passer toutes ces infos :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-06-2019 à 16:34:57    

Mais googlemaps propose aussi une génération en image :  
https://developers.google.com/maps/ [...] atic/intro
 
Donc dans ta génération de PDF, tu dois récupérer l'image googlemaps pour ensuite l'injecter dans ton PDF.

Reply

Marsh Posté le 14-06-2019 à 17:18:48    

Je sais, je l'ai indiqué dans mon 1er post :o Mais cette API est payante et comme expliqué, pas possible pour moi de demander une CB à l'Administration.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-06-2019 à 00:05:44    

rufo a écrit :

Je sais, je l'ai indiqué dans mon 1er post :o Mais cette API est payante et comme expliqué, pas possible pour moi de demander une CB à l'Administration.


Ah bon
Je m'en sers gratuitement et sans CB
Tu dois aller dans Google Cloud Platform, et créer un identifiant
Ensuite, tu ajoute ta ou tes API (maps, static maps, geolocation, etc), et basta :spamafote:


Message édité par skylight le 28-06-2019 à 00:06:12
Reply

Marsh Posté le 28-06-2019 à 00:05:44   

Reply

Marsh Posté le 28-06-2019 à 09:18:44    

Ben c'est ce que j'ai fait. J'ai créé une adresse gmail puis j'ai créé une clé d'API google map mais il me demande de rentrer les coordonnées bancaires pour activer l'API.
Je serais preneur du "chemin" qui permet d'activer l'API sans passer par la saisie de ces coordonnées bancaires.
A noter que lorsque Google a changé son modèle économique de Google map il y a 2-3 ans, j'avais dû créer une clé API et pareil, il me demandais de rentrer des coordonnées bancaires mais j'avais fini par trouver un moyen de créer ma clé d'API sans saisir ces coordonnées. Mais impossible de retrouver comment j'avais fait :(


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-06-2019 à 10:29:16    

Reply

Marsh Posté le 28-06-2019 à 11:29:52    

C'est bien ce que je disais pour l'API map static : sur la page, c'est indiqué en rouge : "Reminder: To use the Maps Static API, you must include an API key with all API requests and you must enable billing on each of your projects. ".
 
Donc, c'est mort pour cette solution. :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-06-2019 à 11:31:53    

À défaut de CB tu mets un RIB;

Reply

Marsh Posté le 28-06-2019 à 12:07:31    

Je ne peux pas non plus. L'Administration va pas me donner ce genre de données.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-06-2019 à 12:44:00    

Donc tu leurs dit que sans ça, ça ne sera pas possible, faut qu'ils soient responsables aussi :o

Reply

Marsh Posté le 28-06-2019 à 16:00:08    

C'est pas un souci : on m'a dit de laisser tomber si les coordonnées bancaires étaient nécessaire et qu'il n'y avait pas d'autre solution technique.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed