使用angular-ui谷歌地图,你如何重新加载新的地图数据或中心?

时间:2015-02-17 14:43:16

标签: angular-ui angular-google-maps

我还没有找到一个有角度谷歌地图的教程,它显示了如何重新加载地图数据或使用新数据重新定位地图。

我的控制器:

vm.territories = []; //this gets loaded with the polylines
vm.center = {
            latitude: 40.7450,
            longitude: -99.3965
        }

HTML:

<ui-gmap-google-map center="vm.center" zoom="vm.zoomLevel">
            <ui-gmap-polygon ng-repeat="ct in vm.territories" path="ct.territoryData" stroke="ct.mapStroke" visible="vm.polygon.visible"
                             geodesic="vm.polygon.geodesic" fill="ct.mapFill" editable="vm.polygon.editable">
            </ui-gmap-polygon>
        </ui-gmap-google-map>

所以问题是,如果我更改了vm.center值或想要在地图已经加载了该数据后添加/删除/更改vm.territories,我该如何重新加载它?我希望我可以将数据绑定到ui并动态更改但不确定是否可行。

1 个答案:

答案 0 :(得分:2)

正如您在此example中看到的那样,您只需将中心值绑定到输入字段,或在其他控制器函数中使用它。

如果您向控制器添加一个函数,如下所示:

$scope.setCenter = function(lat, lng)
{
    $scope.map.center = {latitude: lat, longitude: lng };
}

并从以下按钮调用此函数:

<button ng-click="setCenter(20, 30)">Set Center</button>

您会注意到地图如何以新值为中心。

如果你稍微扩展一下这个例子,你会发现,这同样适用于多边形。

$scope.addPoint = function(lat, lng){
   $scope.polygons[0].path.push({latitude: lat, longitude: lng});
}

和按钮:

<button ng-click="addPoint(20, 30)">AddPoint</button>