正如标题所示,我想动态更改ui-gmap-google-map
元素上圆的半径,我试图在文本框中使用onChange函数,要求半径如下:
HTML
<label for="distance" style="white-space: nowrap;">Enter a radius</label>
<input type="text" required class="form-control" placeholder="Kilometers" ng-change="setRadius()" name="distance" ng-model="map.marker.circle.radius" />
在我的控制器中
$scope.setRadius = function() {
$scope.circles.radius = $scope.map.marker.circle.radius * 1000;
}
我也尝试在&#34;圈子中直接更改它。数组,但同样没有结果。
圆圈阵列
$scope.circles = [
{
id: 1,
center: {
latitude: $scope.map.center.latitude,
longitude: $scope.map.center.longitude
},
radius: $scope.circleRadius,
stroke: {
color: '#08B21F',
weight: 2,
opacity: 1
},
fill: {
color: '#08B21F',
opacity: 0.5
},
geodesic: true, // optional: defaults to false
draggable: false, // optional: defaults to false
clickable: false, // optional: defaults to true
editable: false, // optional: defaults to false
visible: true, // optional: defaults to true
control: {}
}
];
改变半径的功能
$scope.setRadius = function() {
$scope.circleRadius = $scope.map.marker.circle.radius * 1000;
}
地图的HTML
<ui-gmap-google-map center="map.center" zoom="map.zoom">
<ui-gmap-window show="map.window.show" coords="map.window.model" options="map.window.options" closeclick="map.window.closeClick()">
</ui-gmap-window>
<ui-gmap-circle ng-repeat="c in circles track by c.id" center="c.center" stroke="c.stroke" fill="c.fill" radius="c.radius" visible="c.visible" geodesic="c.geodesic" editable="c.editable" draggable="c.draggable" clickable="c.clickable" control="c.control"></ui-gmap-circle>
答案 0 :(得分:0)
我只是通过直接在圆圈数组中设置半径来解决这个问题(我觉得这不是最好的做法,但它确实有效。
澄清:当距离改变时,我调用setRadius()
函数,只需调用设置半径的$scope.circles[0].radius
来设置半径。
无其他需要