Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1644 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Afficher une google map dans un pdf

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher une google map dans un pdf

n°2334915
rufo
Pas me confondre avec Lycos!
Posté le 11-06-2019 à 12:30:04  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
mood
Publicité
Posté le 11-06-2019 à 12:30:04  profilanswer
 

n°2334918
rat de com​bat
attention rongeur méchant!
Posté le 11-06-2019 à 13:43:35  profilanswer
 

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
n°2334919
rufo
Pas me confondre avec Lycos!
Posté le 11-06-2019 à 14:11:28  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2334957
B4X
kebab-case
Posté le 12-06-2019 à 12:38:25  profilanswer
 

Avec Selenium/PhantomJS tu vas te faire chier à mort et ça va être incroyablement pénible à maintenir. Sans compter que ça va être lent. Oublie ça.
Sauf erreur de ma part, l'API Google Maps et tous les modules qui lui sont rattachés est restée gratuite dans la limite d'un certain quota mensuel qui, de mémoire, est assez permissif. Il faudrait estimer ton volume de requêtes et aviser. Tu dois en revanche effectivement communiquer un RIB et un numéro de CB (sur lequel ils vont prelever un montant entre 0,01€ et 0,05€ et que tu dois saisir dans un formulaire de vérification pour confirmer que t'es legit. C'est même remboursé si mes souvenirs sont bons :D ).
Amha, il faut que tu reconsidère l'idée de travailler avec le module Static Maps. Normalement tu peux activer/désactiver des modules à la volée dans leur panel API si tu as déjà une clé. Et tu dois certainement pouvoir contrôler ta limite de fonds pour au final ne jamais avoir rien à débourser. Et qu'est-ce qui t'empêche de crėer une nouvelle clé si celle que tu possède n'y est pas "éligible" (j'ai pas compris en quoi Google Maps te refuserai d'y souscrire).
Je connais pas exactement ton contexte d'utilisation donc je comprends pas tout à fait ta réticence. Tu parle de "confirmation de reservation" donc on est probablement dans le cadre d'un client qui a payé (ou s'y apprête) donc tu dois pouvoir sans problème amortir le coût (très négligeable) que pourrait représenter cette API


---------------
In vanitas veritas.
n°2334969
rufo
Pas me confondre avec Lycos!
Posté le 12-06-2019 à 14:54:10  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2334977
mechkurt
Posté le 12-06-2019 à 15:16:13  profilanswer
 

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
n°2334989
rufo
Pas me confondre avec Lycos!
Posté le 12-06-2019 à 16:04:47  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2335016
B4X
kebab-case
Posté le 12-06-2019 à 18:32:24  profilanswer
 

Ton appli profite nécessairement à qqn dans cette administration, elle doit peut-être pouvoir faire l'effort de te communiquer un numéro de CB.
Je comprends qu'il est difficile de composer avec ces contraintes, mais clairement je m'embarquerais pas dans de la simulation JS. Personnellement je me contenterais de coller un lien hypertexte dans le pdf vers maps.google.com/?longitude=XXXXXX&latitude=YYYYYY
Le client ne pourra pas visualiser la carte offline mais c'est mieux que rien. Tu pourra pas faire des miracles avec les cartes que t'as en main.
Autre suggestion: tu as des sites plus modestes que Google, du genre snapito.com, qui proposent ce genre d'API. Tu dois certainement pouvoir te rapprocher du webmaster et négocier un truc (si projet open-source ou de bienfaisance), ou régler en bitcoin ou que sais-je.


---------------
In vanitas veritas.
n°2335021
rufo
Pas me confondre avec Lycos!
Posté le 12-06-2019 à 19:12:44  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2335218
gatsu35
Posté le 14-06-2019 à 16:34:57  profilanswer
 

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.

mood
Publicité
Posté le 14-06-2019 à 16:34:57  profilanswer
 

n°2335222
rufo
Pas me confondre avec Lycos!
Posté le 14-06-2019 à 17:18:48  profilanswer
 

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 Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2335223
B4X
kebab-case
Posté le 14-06-2019 à 17:19:59  profilanswer
 

gatsu35 a écrit :

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.


 [:le depotoir de gary:5]


---------------
In vanitas veritas.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Afficher une google map dans un pdf

 

Sujets relatifs
Afficher le contenu d'un fichier log dans une page HTMLRester invisible sur Google
Afficher les noms de villes avec Googlemap/géoportail[ACCESS] Afficher une valeur selon une autre
Afficher des valeurs d'une colonne à l'autre selon conditionafficher un mot si champ rempli
code HTML d'un bouton bas / haut de page dans Google siteafficher le résultat d'une recherche ajax pour POST
Afficher le compteur Google Analytics sur un siteReferencement : comment afficher ceci dans google?
Plus de sujets relatifs à : Afficher une google map dans un pdf


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR