【问题标题】:Interactive circle in google map which changes on changing radius谷歌地图中的交互式圆圈,随着半径的变化而变化
【发布时间】:2013-02-12 06:11:50
【问题描述】:

我想要一个用于谷歌地图的交互式圆圈,当我在滑块中更改半径时,它会增加或减少。
当我增加半径时它工作正常,但在减小半径时它不会改变(减少)地图中的圆圈

$(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');
                        }

【问题讨论】:

  • 您应该在页面加载(或其他事件)时创建Circle,然后只需更新radius 并在其更改时重新绘制Circle

标签: javascript jquery google-maps google-maps-api-3


【解决方案1】:

创建一次圆圈,而不是在每个滑块移动事件上。然后在滑块改变时简单地更新圆的半径。

未经测试的代码:

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);
}

【讨论】:

  • 有用且有效
  • 太棒了,你拯救了我的一天! :)
猜你喜欢
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
  • 2013-07-28
  • 2021-09-08
  • 2019-11-20
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多