Partage
  • Partager sur Facebook
  • Partager sur Twitter

bouton toggle carte googlemapAPI

    23 mars 2017 à 12:14:12

    Bonjour a tous,

    J'ai affiche une carte google map grace a l'API. J'ai localise 6 marqueurs qui correspondent a des sommets de montagne.

    en cliquant sur un bouton, j'arrive a les afficher en meme temps mais j'aimerais qu'en cliquant a nouveau sur le bouton que les marqueurs disparaissent.

    var map;
    var markers = [];
    
    function initMap() {
    		var nepal={lat: 28.240381, lng: 83.973038};
    		var lobuche={lat: 27.955762, lng: 86.794760};
    		var island={lat:27.919593, lng: 86.934933};
    		var paldor={lat:28.277209, lng: 85.183921};
    		var mera={lat:27.709025, lng: 86.867470};
    		var pisang={lat:28.648565, lng: 84.188716};
    		var yala={lat:28.228600, lng: 85.627624};
            
    		map = new google.maps.Map(document.getElementById('nepal_map'), {
               zoom: 7,
              center:nepal
            });
    		
         
          
    	 
      addMarker(lobuche);
      addMarker(island);
      addMarker(paldor);
      addMarker(mera);
      addMarker(pisang);
      addMarker(yala);
      
      clearMarkers();
    }
    
    
    function addMarker(location) {
      var marker = new google.maps.Marker({
        position: location,
        map: map
      });
      markers.push(marker);
    }
    
    
    function setMapOnAll(map) {
      for (var i = 0; i < markers.length; i++) {
        markers[i].setMap(map);
      }
    }
    
    
    function clearMarkers() {
      setMapOnAll(null);
    }
    
    
    function showMarkers() {
      setMapOnAll(map);
      
    }
    

    J'ai essaye des proprietes comme setVisible .isHidden ... mais ca ne marche pas j'arrive juste a afficher avec ce bouton!

    J'aimerais eviter de mettre un deuxieme bouton juste pour effacer..! J'aimerais donc trouver cette fonction toggle!

    Merci d'avance pour vos eclaircissements

    Bien a vous!



    -
    Edité par Arch19 24 mars 2017 à 11:12:35

    • Partager sur Facebook
    • Partager sur Twitter
      25 mars 2017 à 4:02:58

      Bonjour j'ai trouve une solution pour le toggle de marqueur

      function toggleMarkers() {
          if (markers[0].getMap() != null) {
              var arg = null;
          } else {
              var arg = map;
          }
          for (var i = 0; i < markers.length; i++) {
              markers[i].setMap(arg);
          }
      }
      
      

      Je ne sais pas si c'est le plus pertinent mais maintenant je n'arrive pas a mettre une fenetre info a chaque marqueur..

      J'ai essaye le script classique en l'adaptant mais rien ne se passe il y a le toggle qui marche mais rien quand j'appuie sur un marqueur

      var infowindow = new google.maps.InfoWindow({
          content: "Hello World !",
          size: new google.maps.Size(100, 100)
      });
       
      google.maps.event.addListener(marker, 'click', function(){
          infowindow.open(map,marker);
      });

      merci d'avance!


      -
      Edité par Arch19 25 mars 2017 à 11:40:06

      • Partager sur Facebook
      • Partager sur Twitter
        26 mars 2017 à 15:45:13

        Bonjour,

        Je me permets de faire remonter ce post. En effet, j'ai repris a faire certaines choses qui en ont fait bugger d'autres. J'ai reussi a mettre mes marqueurs dans un tableau, de leur mettre une fenetre info.

        Je suis revenu a mon probleme de toggle qui affiche et cache tous les marqueurs.

        Je vous remets mon code :

        var map;
        var markers;
        
        
        function initMap() {
        	
        		var nepal={lat: 28.240381, lng: 83.973038};
        		map = new google.maps.Map(document.getElementById('nepal_map'), {
                zoom: 7,
                center:nepal
                });
        		
        		
        		
        var markers = [
        ['Lobuche', 27.955762,86.794760],
        ['Island', 27.919593,86.934933]
        ];
        		
        		
        var infoWindowContent = [
                ['Lobuche!!!'],
                ['Island!!!']
        ];	
         // Display multiple markers on a map
            var infoWindow = new google.maps.InfoWindow(), marker, i;
         
        // Loop through our array of markers & place each one on the map  
           for( i = 0; i < markers.length; i++ ) {
               
        	   var position = new google.maps.LatLng(markers[i][1], markers[i][2]);
               
                marker = new google.maps.Marker({
                    position: position,
                    map: map,
                    visible:(false)	
                });
                
                // Allow each marker to have an info window    
                google.maps.event.addListener(marker, 'click', (function(marker, i) {
                    return function() {
                        infoWindow.setContent(infoWindowContent[i][0]);
                        infoWindow.open(map, marker);
                    }
                })(marker, i));
        }	
        
        }

        Voici ma fonction qui ne marche pas, je ne pense pas etre tres loin mais ca coince toujours:

        function toggleMarkers() {
        
        for( i = 0; i < marker; i++ ) {
        
          if (marker.setMap() !== false) {
            marker.setMap(false);
          } else {
            marker.setMap(true);
          }
        }
        }
        
        
        	

        Merci beaucoup pour votre aide! bon dimanche!


        • Partager sur Facebook
        • Partager sur Twitter

        bouton toggle carte googlemapAPI

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown