我使用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/
答案 0 :(得分:1)
似乎当您更改现有圈子的radius
属性时,angular-google-maps
库不会将更改传播到实际圈子对象(它不会以其他方式工作)。
幸运的是,根据docs,radius_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});
}
}
}