Angular Google Maps如何限制圆半径?

时间:2016-10-10 15:49:12

标签: angularjs google-maps google-maps-api-3

我使用angular-google-maps并尝试限制圆半径。 例如。当radius_changed事件触发时,我检查半径值,如果它小于100,我将它指定为100。

但这种技术不起作用:(

events: {
    radius_changed: function (e) {
        if ($scope.circle.radius < 100)
            $scope.circle.radius = 100;
  }
}

这是完整的jsFiddle示例:https://jsfiddle.net/q3ggodac/

1 个答案:

答案 0 :(得分:1)

似乎当您更改现有圈子的radius属性时,angular-google-maps库不会将更改传播到实际圈子对象(它不会以其他方式工作)。

幸运的是,根据docsradius_changed事件处理程序的第一个参数是原始google.maps.Circle对象,您可以使用getRadius()方法轻松确定该半径,使用setOptions({radius: N})函数进行更改(请参阅docs,“圆圈类”部分)。所以你的代码看起来像这样:

events: {
        radius_changed: function (circle_obj) {
            $scope.circle.radius = circle_obj.getRadius(); //you can update the radius scope variable manually
            if ($scope.circle.radius < 100){
                  $scope.circle.radius = 100;
                  circle_obj.setOptions({radius:100});
            }
        }
}