我还没有找到一个有角度谷歌地图的教程,它显示了如何重新加载地图数据或使用新数据重新定位地图。
我的控制器:
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并动态更改但不确定是否可行。
答案 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>