我正在使用Google Maps for AngularJS将地图添加到我在 AngularJS 中的项目中。一切都很好,除了在某些时候我希望地图中心与单击的标记完全相同的位置。因此,在单击事件中,我在 AngularJS 控制器中设置了地图的中心。一切正常,但是当我拖动或缩放地图时,标记位置成为地图的“新”中心。有谁知道为什么会这样?这就像标记坐标以双向方式绑定......任何帮助表示赞赏!提前致谢
这是代码:
// angular js controller
// map init [displays markers for all railway terminals in DB]
$scope.map = {
center: {
latitude: 48.22476,
longitude: 16.41356
},
zoom: 4
};
$scope.markers = []; // later filled with data from DB
// some code in between ...
// selection in table with termnals
$scope.selectTerminal = function (terminal) {
$scope.selected.terminal = terminal;
if (terminal.placeId != $scope.currentSelectedId) {
$scope.currentSelectedId = $scope.selected.terminal.placeId;
$scope.getTerminalDetails($scope.selected.terminal.placeId);
$scope.map.center = terminal.address.coords; // THIS LINE GIVES ME TROUBLE
$scope.map.zoom = 12;
}
};
因此,地图中心是根据选择动作上所选终端的坐标设置的(它是地图的新中心),并且缩放级别增加。问题是当我尝试重置地图,或者尝试缩放或拖动地图时,标记坐标会获得新的地图中心坐标,但它不应该。这就是为什么我说“双向绑定”,我就是想不通这件事。