IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Intégration de Google Maps avec Zend


Sujet :

Zend Framework PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 39
    Points : 32
    Points
    32
    Par défaut Intégration de Google Maps avec Zend
    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.

  2. #2
    Membre habitué

    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Points : 157
    Points
    157
    Par défaut
    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":

    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 = ...
     
    }
    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
    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&eacute;partement:</td><td valign="top" class="textebv">'.$club["dpt"].'&nbsp;'.$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>
    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.
    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

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Août 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Probleme Classe Google / Zend
    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

Discussions similaires

  1. Pb avec intégration API Google Maps
    Par lelectronique.com dans le forum APIs Réseaux sociaux
    Réponses: 0
    Dernier message: 01/05/2012, 20h56
  2. Intégration de Google Maps dans votre application Android
    Par michel.di dans le forum API standards et tierces
    Réponses: 22
    Dernier message: 07/10/2011, 20h02
  3. [Google Maps] map avec des markeurs
    Par miro1985 dans le forum APIs Google
    Réponses: 1
    Dernier message: 04/09/2009, 14h41
  4. [MySQL] fonction google map avec PHP
    Par hraiwen dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/06/2009, 14h32
  5. intégration de Google map dans un winform
    Par hervino dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/04/2009, 20h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo