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 :

Toggle de markers sur une google map


Sujet :

APIs Google

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Par défaut Toggle de markers sur une google map
    Bonjour,

    j'ai pour ma carte ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    			var geoXml = new GGeoXml("http://www.example.com/rss.php");
    			map.addOverlay(geoXml);
     
        var toggleState = 1;
        function toggleMyKml() {
          if (toggleState == 1) {
            map.removeOverlay(geoXml);
            toggleState = 0;
          } else {
            map.addOverlay(geoXml);
            toggleState = 1;
          }
        }
    et donc dans mon html:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Toggle KML" onClick="toggleMyKml();"/>
    Mais le toggle ne fonctionne pas tout fonctionne pourtant dans ma map à part cela.

    Quel est le problème?

    ++

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 151
    Par défaut
    Salut.

    Pour afficher/cacher l'objet, pourquoi ne pas utiliser directement les fonctions hide() et show() de l'objet geoXml ? J'aurais tendance à faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function toggleMyml(){
        if( geoXml.isHidden() ){
            geoXml.show();
        }else{
            geoXml.hide();
        }
    }
    Je n'ai jamais essayer le GGeoXml, mais le show/hide doit marcher comme pour les marqueurs, je présume.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Par défaut
    pas l'air d'avoir plus d'effet

    voici ma carte: http://www.trouvetongull.info/carte-villes/ le toggle doit agir sur les bleus.

    ++

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 151
    Par défaut
    Le problème, c'est que ta fonction est déclarée à intérieur de la fonction load, et n'est donc pas visible en dehors.
    La solution la plus simple que je verrais, ce serait de mettre un id="boutonToggleMyKml" sur ton bouton (en supprimant le onclick="..."), et de mettre à la fin de ta fonction load, après la déclaration de la fonction toggleMyKml, le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('boutonToggleMyKml').onclick = toggleMyKml;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Par défaut
    Merci ça fonctionne!

    Par contre j'essaye de faire des toggle sur les markers issus des GDownloadUrl comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function toggleMyRmll(){
        if( marker2.isHidden() ){
            marker2.show();
        }else{
            marker2.hide();
        }
    }
    la fonction initiale étant:
    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
    /* RMLL */
    function creerMarker2(point2, onglet1) {
           var marker2 = new GMarker(point2,markerOptions );
           var infoTabs2 = [
             new GInfoWindowTab("Infos", onglet1),
             ];
           GEvent.addListener(marker2, "click", function() {
             marker2.openInfoWindowTabsHtml(infoTabs2);
             });
           return marker2;
           }
     
             GDownloadUrl("http://www.trouvetongull.info/ftp/rmll.xml", function(data) {
               var xml2 = GXml.parse(data);
               var markers = xml2.documentElement.getElementsByTagName("marker");
               for (var i = 0; i < markers.length; i++) {
                 var point2 = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")), 9);
             var marker2 = creerMarker2(point2, markers[i].getAttribute("info") );
                 map.addOverlay(marker2);
               }
             });
    ben ça ne fonctionne pas

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 151
    Par défaut
    Pour que tu puisses modifier les marqueurs après les avoir ajouter à la carte, il faudrait que tu les conserves dans une variable accessible depuis les fonctions toggle...
    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
     
    function load(){
        var listeMarqueurs = [];
     
        ...
     
        for(...){
           var marker  = creerMarker(...);
           map.overlay(marker);
           // on ajoute le marqueur créé pour pouvoir y accéder de nouveau par la suite
           listeMarqueurs.push(marker);
        }
     
        ...
     
        function toggleMarkers(){
            for(var i = 0, n = listeMarqueurs.length; i < n; ++i){
                // listeMarqueurs[i].show() ou listeMarqueurs[i].hide() en fonction du cas
            }
        }
    }

Discussions similaires

  1. Calcul de coordonnées d'un point sur une Google map
    Par Abso34 dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2014, 14h40
  2. Développer un UI sur une Google Maps avec interaction
    Par 2nd Floor dans le forum APIs Google
    Réponses: 1
    Dernier message: 31/07/2014, 19h21
  3. [Google Maps] Marker draggable sur une google map static
    Par bhrochdi dans le forum APIs Google
    Réponses: 2
    Dernier message: 08/03/2014, 20h04
  4. Position de l'utilisateur sur une Google Map sous Android
    Par Feanorin dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 16/01/2012, 12h53

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