0

我还没有找到带有角度谷歌地图的教程,该教程显示了如何重新加载地图数据或使用新数据重新居中地图。

我的控制器:

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 并即时更改它,但不确定这是否可能。

4

1 回答 1

2

正如您在此示例中所见,您可以简单地将中心值绑定到输入字段,或在其他控制器功能中使用它。

如果您像这样向控制器添加功能:

$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>
于 2015-02-17T15:29:26.333 回答