Insérer une google map dans un pdf [Résolu]

Signaler
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011
-
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011
-
Bonjour,
Sur mon site web j'ai une carte google map que l'utilisateur peut modifier à ca guise(ajouter markers, polylines, polygones,...). J'aimerais qu'apres toutes les modifications apportées, il puisse l'exporter en PDF.
J'ai déjà pensé à static map mais la ce n'est pas légal, c'est stipulé dans les termes d'utilisation.
J'ai pensé à imagegrabscreen() une fonction php qui capture la page courante mais la pas possible car mon serveur est sur linux.
Sachant que je souhaite que ce site soit totalement compatible avec firefox quelqu'un pourrait m'apporter son aide?

19 réponses

Messages postés
56
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
12 août 2010

Je vais te contredire c'est possible,

voici la preuve sur serveur linux

http://mediasteak.free.fr/testGMap/

source http://mediasteak.free.fr/testGMap/testGmap.zip

______oOOO________OOOo________

RaftY, du code C commode!
Messages postés
56
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
12 août 2010

Bonjour,
Je ne suis pas un spécialiste de googlemap cependant il existe les staticmap qui retourne des images, une fois récupérée elle peuvent être intégrée dans un PDF.

voir http://geotribu.net/node/29

______oOOO________OOOo________

RaftY, du code C commode!
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

Oui je me suis déjà intéressé à cette solution, mais je ne peux afficher une carte static que dans une balise image. Je ne peux pas l'intégrer dans un pdf. Google permet d'afficher ce genre de carte que si c'est le navigateur qui fait la requête et non avec du code php.
Messages postés
56
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
12 août 2010

Normalement avec

$handle = fopen("url", "r");
$contents = stream_get_contents($handle);
fclose($handle);

if (!$handle = fopen($filename, 'a')) {
         echo "Impossible d'ouvrir le fichier ($filename)";
         exit;
    }

    // Ecrivons quelque chose dans notre fichier.
    if (fwrite($handle, $contents) === FALSE) {
        echo "Impossible d'écrire dans le fichier ($filename)";
        exit;
    }

    echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";

    fclose($handle);


{code non testé}

Tu récupères ton image sur ton serveur, puis tu l'inclus dans ton PDF.

Attention allow_url_open doit être actif




______oOOO________OOOo________

RaftY, du code C commode!
Messages postés
56
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
12 août 2010

Oups désolé j'ai été un peu vite dans le code:

je le remet:

<?php
$url="ton_url_staticmap";
$filename="./files/mamap.gif";
if (!$handle = fopen($url, 'a')) {
         echo "Impossible d'ouvrir le fichier ($filename)";
         exit;
    }

    // Ecrivons quelque chose dans notre fichier.
    if (fwrite($handle, $contents) === FALSE) {
        echo "Impossible d'écrire dans le fichier ($filename)";
        exit;
    }

    echo "L'écriture de ($contents) dans le fichier ($filename) a réussi";

    fclose($handle);

?>




______oOOO________OOOo________

RaftY, du code C commode!
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

okay j'essaie ça je te tiens au courant.
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

impossible d'ouvrir le .gif
Messages postés
56
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
12 août 2010

oups normal, j'ai ouvert le fichier mais je l'ai pas lu

<?php
$url="ton_url_staticmap";
$filename="./files/mamap.gif";
if (!$handle = fopen($url, 'a')) {
         echo "Impossible d'ouvrir le fichier ($filename)";
         exit;
    }
//la ligne qui manque
$contents = stream_get_contents($handle);

    // Ecrivons quelque chose dans notre fichier.
    if (fwrite($handle, $contents) === FALSE) {
        echo "Impossible d'écrire dans le fichier ($filename)";
        exit;
    }

    echo "Ecriture dans le fichier ($filename) a réussi";

    fclose($handle);

?>



______oOOO________OOOo________

RaftY, du code C commode!
Messages postés
56
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
12 août 2010

J'ai pris quelques minutes pour tester, mon code. 1 ou 2 petit aménagements. ET voilà cela fonctionne.


<?php
$url="http://maps.google.com/staticmap?center=43.57691664771851,1.402451992034912&zoom=15&size=400x400&
markers=43.57691664771851,1.402451992034912,bluem&key=clé";

$filename="./files/mamap.gif";
if (!$handle = fopen($url, 'r')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}


$contents = stream_get_contents($handle);
fclose($handle);

$handle2=fopen($filename, 'w');
// Ecrivons quelque chose dans notre fichier.
if (fwrite($handle2, $contents) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}

echo "L'écriture de () dans le fichier ($filename) a réussi";

fclose($handle2);

print("")

?>


{code testé}

______oOOO________OOOo________

RaftY, du code C commode!
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

bah pas chez moi... Tjs impossible d'ouvrir le mamap.gif!

voila mon code
include_once("class.Bf_Download.php");

$url="http://maps.google.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=14&size=512x512&maptype=roadmap
&markers=color:blue|label:S|40.702147,-74.015794&markers=color:green|label:G|40.711614,-74.012318
&markers=color:red|color:red|label:C|40.718217,-73.998284&sensor=false";
echo '';

$filename="mamap.gif";
if (!$handle = fopen($url, 'r')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}


$contents = stream_get_contents($handle);
fclose($handle);

$handle2=fopen($filename, 'w');
// Ecrivons quelque chose dans notre fichier.
if (fwrite($handle2, $contents) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}

echo "L'écriture de () dans le fichier ($filename) a réussi";

fclose($handle2);



$fichier = new Bf_Download($filename);              
$fichier->download_file();
?>
Messages postés
56
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
12 août 2010

Ok j'ai compris, en fait l'image de ton URL est du PNG, mais du PNG 8 bits.

La solution est d'ajouter &format= png32 au bout de ton url, et de changer $filename="mamap.png"

donc pour ton code cela donne:

<?php
include_once("class.Bf_Download.php");

$url ="http://maps.google.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=14&size=512x512&maptype=roadmap
&markers=color:blue|label:S|40.702147,-74.015794&markers=color:green|label:G|40.711614,-74.012318
&markers=color:red|color:red|label:C|40.718217,-73.998284&sensor=false&format=png32";
echo '';

$filename="mamap.png";
if (!$handle = fopen($url, 'r')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}


$contents = stream_get_contents($handle);
fclose($handle);

$handle2=fopen($filename, 'w');
// Ecrivons quelque chose dans notre fichier.
if (fwrite($handle2, $contents) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}

echo "L'écriture de () dans le fichier ($filename) a réussi";

fclose($handle2);



$fichier = new Bf_Download($filename);              
$fichier->download_file();
?>


______oOOO________OOOo________

RaftY, du code C commode!
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

Eh bah tjs pas lol... Mais je pense pas que ce ne soit pas possible de le faire comme ça. J'ai essayer avec fpdf et google ne retourne rien alors que la carte est affichée...
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

a oui bien vu. Je suis pas chez moi, j'essaie demain... Mais en tout cas. BRAVO
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

merci ça marche impec.
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

en fait que je le fais tourner sur easy php ca marche. Lorsque je le mets sur mon serveur. Ça donne

Warning: fopen(http://maps.google.com/maps/api/staticmap?center=nancy,france&zoom=14&size=900x500&maptype=terrain&sensor=false&format=png): failed to open stream: Connexion refusée

Ça peut venir de quoi???
Messages postés
56
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
12 août 2010

Il faut que la constante allow_url_fopen soit activée sur ton serveur. (dans le Php.ini ou directive de lancement php)
______oOOO________OOOo________

RaftY, du code C commode!
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

allow_url_fopen => On => On
Elle y est!
Messages postés
56
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
12 août 2010

Soit t uas des proxy avec authentif (certificat ou login pass)
soit, il y a un blocage chez ton hébergeur ou ton FAI.

Je sais que chez Ovh par exemple, n'autorisait (à une époque) que les fopen_url uniquement sur le leur réseau mais pas en externe.

Le FAI peux aussi mettre des restrictions.

______oOOO________OOOo________

RaftY, du code C commode!
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

ok bah je vais chercher de ce côté là. En tout cas merci pour toute ton aide.