2013-02-26 9 views
6

Googleマップのインタラクティブな円が必要です。スライダの半径を変更すると増減します。マップ内
私は、半径が増加していたときにそれが正常に動作しているが、半径を小さくする上で、それは(減少)の円を変えていない半径の変更に伴って変化するGoogleマップのインタラクティブな円

$(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

あなたは、ページの読み込み(またはその他のイベント)に 'Circle'を作成し、単に' radius'を更新し、それが変更されるたびに 'Circle'を再描画する必要があります。 – js1568

答えて

19

に一度の代わりに、すべてのスライダーの移動イベントに円を作成します。次に、スライダが変化したときに円の半径を更新するだけです。

未テストコード:

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

便利で効果的 –

+0

あなたは素晴らしい一日です。 :) –

関連する問題