Угловые Карты Google как ограничить радиус окружности?

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