2013-02-26 7 views
6

Voglio un cerchio interattivo per google maps, che aumenta o diminuisce man mano che cambi raggio in slider.
Si sta lavorando bene quando sto aumentando il raggio, ma il raggio decrescente non sta cambiando (decrescente) cerchio mappaCerchio interattivo in google map che cambia nel cambiamento del raggio

$(function() { 
     $("#slide").slider({ 
       orientation: "horizontal", 
       range: "min", 
       max: 10000, 
       min: 500, 
       value: 500, 
       slide: function(event, ui) { 
          drawCircle(ui.value); 
              } 
          }); 
      }); 

function drawCircle(rad){ 
     circle = new google.maps.Circle({ 
       strokeColor: "#FF0000", 
       strokeOpacity: 0.8, 
       strokeWeight: 2, 
       fillColor: "#FF0000", 
       fillOpacity: 0.35, 
       map: myMap, 
       radius: rad }); 

     circle.bindTo('center', marker, 'position'); 
         } 
+1

Si dovrebbe creare il 'Circle' al caricamento della pagina (o altro evento) e poi semplicemente aggiornare il' radius' e ridisegnare il 'Circle' ogni volta che cambia. – js1568

risposta

19

creare il cerchio una volta invece che su ogni evento di scorrimento mossa. Quindi aggiorna semplicemente il raggio del cerchio quando il cursore cambia.

codice non testato:

var circle; //global variable, consider adding it to map instead of window 

$(function() { 
    circle = new google.maps.Circle({ 
    strokeColor: "#FF0000", 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: "#FF0000", 
    fillOpacity: 0.35, 
    map: myMap, 
    radius: 500 
    }); 
    circle.bindTo('center', marker, 'position'); 

    $("#slide").slider({ 
    orientation: "horizontal", 
    range: "min", 
    max: 10000, 
    min: 500, 
    value: 500, 
    slide: function(event, ui) { 
    updateRadius(circle, ui.value); 
    } 
    }); 
}); 

function updateRadius(circle, rad){ 
    circle.setRadius(rad); 
} 
+0

utile ed efficace –

+0

superbo tu risparmi la mia giornata! :) –

Problemi correlati