Bonjour,
je débute avec Zend, y a t'il quelqu'un ayant déja intégré l'API Google maps avec zend? Existe t'il un bon tuto ou d'autres références quelque part ?
merci.
Bonjour,
je débute avec Zend, y a t'il quelqu'un ayant déja intégré l'API Google maps avec zend? Existe t'il un bon tuto ou d'autres références quelque part ?
merci.
Bjr,
Je me suis posé la même question 1 semaine après toi Et comme je m'en étais déjà servis sans Zend, mais avec la classe GoogleMapAPI , Smarty, et l'aide d'un bon tuto dans le fameux journal PHPsolutions qui devrait paraître toutes les semaines au lieu d'être bi-mensuel, voici ma solution de débutant avec ZendFramework qui vaut ce quelle vaut, mais qui fonctionne:
Dans un controller avec l'action par exemple "carte":
J'avais crée un Layout générique que je change pour ''google_map.phtml', mais c'est pas obligatoire, on peut tous mettre dans la vue : "carte.phtml"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 public function carteAction() { $this->_helper->layout->setLayout('google_map');// change de layout //on inclus le fichier necessaire require('APP/class/GoogleMaps/GoogleMapAPI.class.php'); // on instancie la class: $map = new GoogleMapAPI(); $map->setAPIKey('clef google perso'); $map->setBrowserAlert("Votre navigateur n'est pas compatible avec les cartes de Google !"); $map->setJSAlert("Vous devez activer le Javascript dans votre navigateur pour voir la carte !"); //taille de la map $map->setHeight("500"); $map->setWidth("650"); $map->enableTypeControls(); //Quel est le type de carte par defaut ? (map/satellite/hybrid) $map->setMapType('map'); // default //On déssactive les boutons pour afficher la direction d'un point a l'autre $map->disableDirections(); // Permet de definir le zoom automatiquement afin de voir tous les marqueurs d'un coup. $map->enableZoomEncompass(); //Active la mini map en bas a droite $map->enableOverviewControl(); //affiche l'info quand la souris est sur le point -- A tester $map->setInfoWindowTrigger('mouseover'); $map->setZoomLevel(12); $map->enableScaleControl(); $this->view->map = $map;// on transmet une instance de la classe map // et je transmets les infos adresse, ville, code postal, nom du club, et un logo avec ma méthode perso, mais pour tester on peut mettre un tableau: $this->view->listingClub = ... }
Pour le vieux code HTML contenu dans la variable $html, désolé j'ai pas eu le temps de faire le ménage, mais ça n'empêche pas l'affichage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 <?php // voici les infos que je récup de mon tableau foreach ($this->listingClub as $key => $club) { $adresse = ucfirst(strtolower($club["adresse"])); $cp = $club["dpt"]; $ville = ucfirst(strtolower($club["ville"])); // info bulle $html='<table width="100%" border="0" align="center" cellpadding="2" cellspacing="0" bgcolor="#D3D3BA" class="cadre3"><tr><td><table border=0 cellpadding=2 cellspacing=2 class="cadre1"><tr><td width="10%" valign="top" class="textebr">Club:</td><td width="90%" valign="top" class="textebv">'.$club["club"].'</td><td width="90%" rowspan="8" class="textebv" valign="top"><div align="center">'; if($club["logo"]){ $html.='<img src="http://www.monsite.com/img/img_club/'.$club["logo"].'" border="1"></div></td></tr>'; } $html.='<tr><td valign="top" class="textebr">Adresse:</td><td valign="top" class="textebv">'.$club["adresse"].'</td></tr><tr><td valign="top" class="textebr">Département:</td><td valign="top" class="textebv">'.$club["dpt"].' '.$club["ville"].'</td></tr></table></td></tr></table>'; // la méthode la plus importante pour créer le javascript pour googlemap et ATTENTION, il faut envoyer cela avant tout code HTML !!! $this->map->addMarkerByAddress($adresse.','.$ville.','.$cp,'<h1>Club '.$club["club"].'</h1><br>',$html); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"> <html> <head> <?php $this->map->printHeaderJS(); // ?> <?php $this->map->printMapJS(); // ?> ... </head> <body onload="onLoad()"> <table border=1> <tr> <td> <?php //on affiche la map $this->map->printMap(); ?> </td> <td> <?php //on affiche la barre de nav $this->map->printSidebar(); ?> </td> </tr> </table> </body> </html>
Après on peut surement améliorer tout cela, mais c'était pas le but premier.
Pour moi ça a marché du premier coup sur un nouveau site et sans changer grand chose, alors bonne amusement
JY
Bonjour,
le sujet date un peu mais je tente quand même ma chance !
Je suis actuellement en train d'essayer d'integrer une Google Maps à l'aide de Zend en suivant l'exemple que tu as donné jylac.
Le probleme est que lors de l'appel de l'objet map dans le <head> de la vue afin de générer le javascript, il y'a une erreur me disant en gros que l'objet map (instanciée dans le controleur) n'existe pas.
Quelqu'un pourrait il me dire d'ou vient ce probleme ? Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager