javascript - 使用输入类型 ="range"更改 Circle google map 的半径

标签 javascript angularjs google-maps google-maps-api-3 geolocation

我正在尝试使用输入类型 =“范围”动态更新半径的值。我已经得到了我的标记、中心、圆和默认半径。 我如何使用输入类型 =“范围”的值更新半径的值。任何人请!!

    <input type="range" min="100" max="500" name="userlevelofsurfing" ng-model="data.levelvalue" ng change="setLevelText()">
    {{data.levelvalue }}m


    var mrgdata='http://maps.googleapis.com/maps/api/geocode/json?latlng='+lat+','+lang+'&sensor=true'
                $http.get(mrgdata).success(function (response) { 


                    var myLatlng = new google.maps.LatLng(lat,lang);

                    var mapOptions = {
                      center: myLatlng,
                      zoom: 16,
                      mapTypeId: google.maps.MapTypeId.ROADMAP,


                    };

                    var map = new google.maps.Map(document.getElementById("map"), mapOptions);


                    $scope.data = {
                            levelvalue: 100,
                            level1wordDescription: "INTERMEDIATE+",
                            testvariable: 100
                    }

                    $scope.setLevelText = function() {
                            console.log('range value has changed to :'+$scope.data.levelvalue);
                            $scope.data.testvariable = $scope.data.levelvalue;

                    }



                    circle = new google.maps.Circle( {
                            map           : map,
                            center        : myLatlng,
                            radius        : $scope.data.testvariable,
                            //editable: true,
                            strokeColor   : '#FF0099',
                            strokeOpacity : 1,
                            strokeWeight  : 2,
                            fillColor     : '#009ee0',
                            fillOpacity   : 0.2
                    });

                    var marker = new google.maps.Marker({
                          position: myLatlng,
                          map: map,
                          title: 'Current Location'
                    }); 

                    $scope.map = map;


                }).error(function (data, status, headers, config) {
                    console.log("error");



                });

最佳答案

您可以在输入上使用 ng-change 属性在值更改时触发函数:

<input
  type="range"
  min="1"
  max="601"
  step="100"
  ng-change="updateCircleRadius(radius)"
  ng-model="radius"
>

并在您的 Controller 中使用此设置以使用新半径更新圆:

$scope.updateCircleRadius = function(val) {
  circle.setRadius(Number(val))
}

Live demo.

关于javascript - 使用输入类型 ="range"更改 Circle google map 的半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36521207/

相关文章:

android - 如何在谷歌地图android中将标记颜色设置为黑色

javascript - 检测谷歌地图中的航路点

javascript - 嵌入式 Youtube iFrame 全屏按钮不起作用

android - MapView 抛出 IllegalArgumentException - 错误的图像大小 : 192 192

javascript - 原型(prototype): add/remove input element

angularjs - 如何做正确的存储库工厂?

javascript - Angular 4 中的 ReCaptchaModule 中的过期回调

javascript - 如何在 Angular JS 中重新初始化服务或工厂

javascript - 附加到 AngularJS 范围的单元测试 promise

javascript - 使用 HTML 表单读取时出错