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 :

php et javascript sur google maps


Sujet :

APIs Google

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1
    Par défaut php et javascript sur google maps
    bonjour à tous
    je n'y comprend strictement rien en javascript, est-ce que quelqu'un peut m'aider à solutionner ce probleme:
    ces 2 codes fonctionnent correctement, avec la meme requete sql .
    c'est le code 1 que je souhaite conserver, avec infobulle multi-onglets.

    le code 2 affiche correctement les infos relatives à un bien dans l'infobulle et associe bien le numero de marqueur avec celui de la bdd.

    le code 1 lui affiche la liste complete des biens dans l'infobulle, le numero du bien de la base de données n'est pas associé au marqueur...

    j'espere que je suis assez clair, d'avance merci...

    code 1
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    <script type="text/javascript">
    var init = function ()
    {
        google.load("maps", "2");
        google.setOnLoadCallback(initMap);
    }; // init
    var offres = [
    <?php AfficheMarqueurs( )?>
    ];
     
    var createMarker = function(infosOffres)
    {
        var point = new GPoint(infosOffres.lng, infosOffres.lat);
     
    	var myIcon = new GIcon();
        if (infosOffres.ligne === '1')
            myIcon.image = "images/blue-dot.png";
        else if (infosOffres.ligne === '3')
            myIcon.image = "images/jaune-dot.png";
        else if (infosOffres.ligne === '5')
            myIcon.image = "images/vert-dot.png";
        else if (infosOffres.ligne === '7')
            myIcon.image = "images/rouge-dot.png";	
    	else if (infosOffres.ligne === '9')
            myIcon.image = "images/rouge-dot.png";	
    	else if (infosOffres.ligne === '13')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '16')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '19')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '22')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '25')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '28')
            myIcon.image = "images/rouge-dot.png";	
    	else if (infosOffres.ligne === '31')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '34')
            myIcon.image = "images/rouge-dot.png";	
    	else if (infosOffres.ligne === '37')
            myIcon.image = "images/rouge-dot.png";	
    	else if (infosOffres.ligne === '39')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '40')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '41')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '45')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '47')
            myIcon.image = "images/rouge-dot.png";
    	else if (infosOffres.ligne === '48')
            myIcon.image = "images/rouge-dot.png";			
        myIcon.iconSize = new GSize(20, 34);
        myIcon.iconAnchor = new GPoint(10, 34);
        myIcon.infoWindowAnchor = new GPoint(10, 1);
     
    	var markerOptions = {
            icon: myIcon
        };
     
    var marker = new GMarker(point, markerOptions);
    var locations = [<?php AfficheMarqueurs( ) ?>];
     
    var infowindow = function() {
        var tabs = [
                new GInfoWindowTab('Infos',
                        '' + locations +
                        '<br /><a href=""></a>'
                   ),
                new GInfoWindowTab('Vue', 
                        'photo...'
                   )  
            ];
        var options = {
            maxTitle: 'Detail affaire',
     
            maxContent: '<p><br />' +
                    'test' + '</p>'
            };
        marker.openInfoWindowTabsHtml(tabs, options);
    };
    GEvent.addListener(marker, "click", infowindow);
     
        return marker;
    }; // createMarker
     
    var initMap = function ()
    {
        var map = new google.maps.Map2(document.getElementById('map'));
    	map.addControl(new GLargeMapControl());
        var adresse = '<?php echo ''.$ligne->adresse.' '.$ligne->codepostal.' '.$ligne->ville.''; ?>';
        var geocoder = new google.maps.ClientGeocoder();
        geocoder.getLatLng(adresse, function (coord) {
            map.setCenter(coord, 13);  // Centrage sur le point dont on a obtenu les coordonnées depuis l'adresse
        });
     
      for (var i=0 ; i<offres.length ; i++)
    {
        map.addOverlay(createMarker(offres[i]));
    }
     
    }; // initMap
     
    </script>
    code 2
    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
     
    <script type="text/javascript">
    <!--
        var offres = [
          <?php AfficheMarqueurs( )?>
        ];
     
        var map = new google.maps.Map(document.getElementById('map'), {
          zoom: 6,
          center: new google.maps.LatLng(47.4,1.6),
              mapTypeControl: true,
            mapTypeControlOptions: {
          style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
        },
        navigationControl: true,
         navigationControlOptions: {
            style: google.maps.NavigationControlStyle.SMALL,
            position: google.maps.ControlPosition.TOP_RIGHT
        },
            scaleControl: true,
        streetViewControl: false,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        });
     
        var infowindow = new google.maps.InfoWindow();
     
        var marker, i;
     
       for (i = 0; i < offres.length; i++) {  
          marker = new google.maps.Marker({
            position: new google.maps.LatLng(offres[i][1], offres[i][2]),
            map: map
          });
     
          google.maps.event.addListener(marker,'click', (function(marker,i) {
            return function() {
              infowindow.setContent(offres[i][0]);
              infowindow.open(map, marker);
            }
          })(marker, i));
        }
    -->
      </script>
    et le php:

    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
     
    function AfficheMarqueurs( )
    		{
    			global $sql, $users;
    			$typeann = $_POST["typeann"];
    			$annonceID = $_REQUEST['annonceID'];
    			if(!$result = @mysql_query($sql))
    			{
    			$err_string = "<strong>Erreur:</strong>durant la connexion à la base de données<br>" . mysql_error();
    			AfficheErreur($err_string, $sql);
    			exit;
    			}
    			$i=0;
    			while ($ligne=mysql_fetch_object($result))
    			{	
    			if ($ligne->Ident!=null)	
    				{
    				echo '[\'';
    				echo'<strong>'.$ligne->enseigne.'</strong><br />'.$ligne->re_habitation.' '.$ligne->LibVoie.' '.$ligne->adresse_bien.'<br />'.$ligne->VilleBien.'<br /><a class="mandatInfo" href="mod_ficheannonce2.php?num='.$ligne->Ident.'">'.$ligne->loyer_gerance.'</a>\','.$ligne->lat.', '.$ligne->lng.'],';	
    				$i++;
    				}
    			}
    		return $i;	
    		}

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonsoir,
    ton code #1 et basé sur l'API Google Maps v2 qui est officially deprecated, donc autant passer sur la v3.

    La v3 ne prend effectivement pas en compte les onglets, mais rien ne t'empêches de le faire toi même, en intégrant dans ton InfoWindow le code HTML qui fait la même chose.

    Ceci étant d'après les symptômes tu dois avoir un problème de closures, inspire toi de ce que tu as mis dans le code #2.

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/08/2012, 16h10
  2. Calcul de coordonnées sur Google Map
    Par queen_pitbull dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/08/2008, 11h05
  3. utilisateur FireFox sur google map
    Par aityahia dans le forum Firefox
    Réponses: 0
    Dernier message: 19/09/2007, 12h10
  4. [Google Maps] JavaScript et Google Maps
    Par flyoman dans le forum APIs Google
    Réponses: 1
    Dernier message: 10/07/2007, 16h53

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