2013-02-26 33 views
6

Tôi muốn một vòng kết nối tương tác cho bản đồ google, làm tăng hoặc giảm khi và khi tôi thay đổi bán kính trong thanh trượt.
Nó đang làm việc tốt khi tôi đang tăng bán kính, nhưng trên giảm bán kính nó không được thay đổi (giảm) vòng tròn trên bản đồVòng kết nối tương tác trong bản đồ google thay đổi về thay đổi bán kính

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

Bạn nên tạo 'cái Circle' trên tải trang (hoặc sự kiện khác) và sau đó chỉ cần cập nhật các' radius' và vẽ lại 'Circle' bất cứ khi nào nó thay đổi. – js1568

Trả lời

19

Tạo vòng tròn một lần thay vì trên tất cả các sự kiện trượt di chuyển. Sau đó, chỉ cần cập nhật bán kính của vòng tròn khi thanh trượt thay đổi.

đang chưa được kiểm tra:

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

hữu ích và hiệu quả –

+0

tuyệt vời bạn chỉ cần tiết kiệm trong ngày của tôi! :) –

Các vấn đề liên quan