#angularjs #google-maps #google-maps-api-3
#angularjs #google-карты #google-maps-api-3
Вопрос:
Я работаю с angular-google-maps и пытаюсь ограничить радиус окружности. Например, когда срабатывает событие radius_changed, я проверяю значение radius и, если оно меньше 100, присваиваю ему 100.
Но этот метод не работает: (
events: {
radius_changed: function (e) {
if ($scope.circle.radius < 100)
$scope.circle.radius = 100;
}
}
Вот полный пример jsFiddle: https://jsfiddle.net/q3ggodac /
Ответ №1:
Кажется, что при изменении существующего radius
атрибута circle angular-google-maps
библиотека не будет распространять изменение на фактический объект circle (и это не работает по-другому).
К счастью, согласно документам, первым параметром обработчика radius_changed
событий является необработанный google.maps.Circle
объект, радиус которого вы можете легко определить с помощью getRadius()
метода и изменить с помощью setOptions({radius: N})
функции (см. Документы, раздел «Класс окружности»).). Итак, ваш код будет выглядеть так:
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});
}
}
}