0

J'utilise les google maps api v3. Dans ma carte, j'ai des marqueurs. Pour afficher mes markes, j'utilise le MarkerManager.js.API Google Maps V3 et MarkerManager - Comment faire basculer les marqueurs sélectionnés?

Chaque marqueur a un attribut "type" (un nombre compris entre 1 et 5).

Sur mon site j'ai quelques radiobuttons.

<input type="radio" name="display_marker" value="0" checked> All 
<input type="radio" name="display_marker" value="1" checked> 1 
<input type="radio" name="display_marker" value="2" checked> 2 
<input type="radio" name="display_marker" value="3" checked> 3 
<input type="radio" name="display_marker" value="4" checked> 4 
<input type="radio" name="display_marker" value="5" checked> 5 

Lors de la sélection de la valeur = 0, je veux afficher tous les marqueurs. En sélectionnant valeur = 1, je veux montrer seulement les marqueurs dont le type est 1 et ainsi de suite.

Lors de la création de mon tableau markermanager je suit:

$(document).ready(function(){ 

    var latlng = new google.maps.LatLng(48.135789, 11.579075); 
    var mapOptions = { 
     zoom: 11, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

    map = new google.maps.Map(document.getElementById('map'), mapOptions); 

    var listener = google.maps.event.addListener(map, 'bounds_changed', function(){ 
     setupMarkers(); 
     google.maps.event.removeListener(listener); 
    }); 

}); 



     function setupMarkers(){ 
      mgr = new MarkerManager(map); 

      var mc = myobject.length; 
      google.maps.event.addListener(mgr, 'loaded', function(){ 
       mgr.addMarkers(createMarkers(mc), 11); 
       mgr.refresh(); 
      }); 
     } 


     function createMarkers(nn){ 
      var batch = []; 

      for(var ii = 0; ii < nn; ii++){ 

       var marker = new google.maps.Marker({ 
        position: getLatLng(ii), 
        title: "marker " + ii, 
        type: getType(ii), 
       }); 

       google.maps.event.addListener(marker, 'click', function(){ 
        alert("title:" + this.title + "\ntype: " + this.type); 
       }); 

       batch.push(marker); 
      } 
      return batch; 
     } 

Que dois-je faire dans ma fonction show_marker (val)?

$("#myid input").click(function(){ 
    show_marker($(this).attr('value')); 
}); 

function show_marker(val){ 

} 

Répondre

1

J'ai corrigé le problème en utilisant plusieurs gestionnaires de marqueurs. Tous les marqueurs avec type = 1 vont à manager1, tous les marqueurs avec type = 2 vont à manager2 et ainsi de suite.

Maintenant, je peux montrer tous les markermanages et les afficher/masquer onclick (managerX.hide())