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

APIs Google Discussion :

Script pour plusieurs marqueurs [Google Maps]


Sujet :

APIs Google

  1. #21
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    pourtant cette fonction marche dans le fichier php plus haut mais pas dans le script !?
    LJ

  2. #22
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 271
    Par défaut
    Je n'avais pas fait attention mais c'est la même erreur que celle en fin de code de ton post #11.

    Tu as donc un problème d'intégration de ton PHP dans ta page.

  3. #23
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Tu as donc un problème d'intégration de ton PHP dans ta page.
    Oups !!??

  4. #24
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    a priori cette écriture résoud le problème de la fonction setQuery
    mais rien ne s'affiche sur la map
    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
    	<script type="text/javascript">
    	function initCarte()
    	{ 
    	  <?php //appel tableau de données de la requête 
                        $bdd->setQuery( $query );
                        $tresult = array() ;
                        $res = $bdd->loadObjectList();
                                foreach ( $tresult as $marker ) 
                                {
                                    $tResult[] = $marker->lat ;
                                    $tResult[] = $marker->lng ; 
                                    $tResult[] = $marker->name ;  
                                } 
                        echo "var dataMarker=", json_encode( $tResult), ";\n"; 
              ?>
     
    		  var oMap, oMarker, oInfo;
    		  var i, nb = dataMarker.length;
    		  // création de la carte
    		  oMap = new google.maps.Map( document.getElementById( 'div_carte'),{
    		    'center' : new google.maps.LatLng( 46.80, 1.70),
    		    'zoom' : 6,
    		    'mapTypeId' : google.maps.MapTypeId.ROADMAP
    		  });
    		  // création infobulle
    		  oInfo = new google.maps.InfoWindow();
    		  // création des markers dans une boucle
    		  for( i = 0; i < nb; i++){
    		    oMarker = new google.maps.Marker({
    		      'position' : new google.maps.LatLng( dataMarker[i].lat, dataMarker[i].lng,
    		      'map' : oMap,
    		      'title' : dataMarker[i].name
    		    });
    		    // événement clic sur le marker
    		    google.maps.event.addListener( oMarker, 'click', function( data){
    		      // affichage position du marker
    		      oInfo.setContent( 'position :<br>' +data.latLng.toUrlValue(5));
    		      oInfo.open( oMap, oMarker);
    		    });
    		  }
    		}
    	// init lorsque la page est chargée
    	google.maps.event.addDomListener(window, 'load', initCarte);
    </script>

  5. #25
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 271
    Par défaut
    ATTENTION si tu changes la façon de récupérer tes données de ta Base, il te faut changer la façon de les lire dans le javascript, là tu récupères un Array
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach ( $tresult as $marker ) 
    {
        $tResult[] = $marker->lat ;
        $tResult[] = $marker->lng ; 
        $tResult[] = $marker->name ;  
    }

  6. #26
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    effectivement maintenant mes données arrivent bien dans le script (je les vois dans le code source) sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var dataMarker=[["45.99618399602106","1.428955078125","Le bourg"],["45.169812807708205","1.451171875","Chambon"],["45.95581508086375","1.2015625834465027","Le Malpas"],["45.75242326188913","1.7303466796875","Escoubaniers"],["45.44494795612681","2.208740234375","Vergnolles"]];
    mais ne s'affiche pas c'est cette partie d'affichage que je dois modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new google.maps.LatLng( dataMarker[i].[0].lat, dataMarker[i].[1].lng,

  7. #27
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 271
    Par défaut
    Tu n'en es pas loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new google.maps.LatLng( dataMarker[i][0], dataMarker[i][1],
    sans les points entre les crochets et sans la clé qui n'existe plus, c'est simplement un tableau de tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var dataMarker = [
      ["45.99618399602106", "1.428955078125", "Le bourg"],
      ["45.169812807708205", "1.451171875", "Chambon"],
      ["45.95581508086375", "1.2015625834465027", "Le Malpas"],
      ["45.75242326188913", "1.7303466796875", "Escoubaniers"],
      ["45.44494795612681", "2.208740234375", "Vergnolles"]
    ];

  8. #28
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    a ouii je récupère les données sous cette forme après ma requête

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $result = array(); 
        foreach ($data as $marker) { 
            // si le tableau est unidimensionnel 
     
             // Si tableau bidimensionnel décommenter ce bloc 
            $result[] = array( $marker->lat, $marker->lng, $marker->name ); 
     
        } 
        $tResult = 'var tMarker=' . json_encode($result) .";\n" ;

  9. #29
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    j'avais essayé cette écriture grâce à ma lecture sur els tableaux array d'hier mais j'avais laissé le point effectivement cela marche maintenant
    qu'elle fin d'année ...
    je posterais un commentaire final avant résolu

  10. #30
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 271
    Par défaut
    Ne pas oublier le bouton
    Bonne année !

  11. #31
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    voici donc l'intégrale de mon code qui je le rappelle pour la requête, est sur un site Joomla, la base du script est pris dans la FAQ API Google Maps de ce site

    merci à No SMAUG de ce voyage attendu !

    LJ

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    <?php  
    defined('_JEXEC') or die('Restricted access');    
     
    $user = JFactory::getUser();  
    $userid = $user->id;  
     
    $bdd = JFactory::getDBO();  
    $query = "SELECT name, lat, lng   
        FROM #__batenergie_batenergieep  
        WHERE author='$userid'";  
        $bdd->setQuery ( $query );  
        $data = $bdd->loadObjectList();  
        $result = array(); 
        foreach ($data as $marker) { 
            // si le tableau est unidimensionnel 
            /*$result[] = $marker->lat ;  
            $result[] = $marker->lng ;   
            $result[] = $marker->name ; */
             
             // Si tableau bidimensionnel décommenter ce bloc 
            $result[] = array( $marker->lat, $marker->lng, $marker->name ); 
            
        } 
        $tResult = 'var tMarker=' . json_encode($result) .";\n" ;          
    ?>  
     
    <style type="text/css">  
    html, body {  
      height : 100%;  
      width:100%;  
      margin : 0;  
      padding : 0;  
    }  
     
    #div_main {  
      margin : auto;  
      width : auto;  
    }  
    #div_carte {  
      margin : auto;  
      width : 1000px;  
      height : 300px;  
      border : 1px solid #c0c0c0;  
    }  
    </style>  
     
    <hr>  
        <div align="left">  
            <h1>Implantation des postes</h1>  
        </div>  
     
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=fr"></script>  
     
    <script type="text/javascript">  
        function initCarte(){
     
    	<?php echo $tResult; ?>
     
    	  var oMap, oMarker, oInfo;
    	  var i, nb = tMarker.length;
    	  // création de la carte
    	  oMap = new google.maps.Map( document.getElementById( 'div_carte'),{
    	    'center' : new google.maps.LatLng( 46.80, 1.70),
    	    'zoom' : 6,
    	    'mapTypeId' : google.maps.MapTypeId.ROADMAP
    	  });
    	  // création infobulle
    	  oInfo = new google.maps.InfoWindow();
    	  // création des markers dans une boucle
    	  for( i = 0; i < nb; i++){
    	    oMarker = new google.maps.Marker({
    	      'position' : new google.maps.LatLng( tMarker[i][0], tMarker[i][1]),
    	      'map' : oMap,
    	      'title' : tMarker[i][2]
    	    });
    	    // événement clic sur le marker
    	    google.maps.event.addListener( oMarker, 'click', function( data){
    	    // affichage position du marker
    	    oInfo.setContent( 'position :<br>' +data.latLng.toUrlValue(5));
    	    oInfo.open( this.getMap(), this);
    	    });
    	  }
    	}
    	// init lorsque la page est chargée
    	google.maps.event.addDomListener(window, 'load', initCarte);
    </script>  
     
        <div id="div_main">  
          <div id="div_carte"></div>  
        </div>  
    <br />

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Généraliser script pour plusieurs fichiers
    Par lovelace63 dans le forum Langage
    Réponses: 5
    Dernier message: 11/11/2012, 10h50
  2. [POO] Adapter un script d'autocompletion pour plusieurs champs texte
    Par tusssss dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 14/04/2008, 17h18
  3. script pour automatiser le changement de mot de passe sur plusieurs hosts
    Par abiyas dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 16/11/2007, 14h15
  4. Réponses: 3
    Dernier message: 17/08/2006, 11h30
  5. Script pour faire plusieurs page…
    Par sam01 dans le forum Langage
    Réponses: 7
    Dernier message: 14/04/2006, 21h51

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