根据我的应用程序的状态,我想我的谷歌地图画布是不同的大小,我通过使用ng-class更改大小。当我调用ToggleExploreMap()时,我的google地图的大小发生了变化,但setCenter未正确应用。位置确实发生了变化,但它不会在我的标记上发生变化,但它会移到标记位置的左上角。谷歌地图调整大小和中心,意想不到的行为
这是一个错误?
看到这个小提琴的例子看到的行为。如果您单击调整大小按钮,地图将调整大小,但您需要再次单击才能将地图居中放在标记上。 http://jsfiddle.net/bkogdfva/1/
的控制器
var exploreMap = new google.maps.Map(document.getElementById("map_explore_canvas"),myOptions);
var $scope.ExploreMapStyle = "map_explore_canvas";
//Click Handlers
$scope.ExploreDetails = function(marker){
ToggleExploreMap();
google.maps.event.trigger(exploreMap, 'resize');
exploreMap.setCenter(marker.position);
};
function ToggleExploreMap(){
if(exploreMode === "explore"){
$scope.ExploreMapStyle = "map_explore_detail";
exploreMode = "detail";
}
else{
$scope.ExploreMapStyle = "map_explore_canvas";
exploreMode = "explore";
}
};
的HTML
<div id="map_explore_canvas" ng-class="ExploreMapStyle"></div>
的CSS
.map_explore_canvas{
width:1080px;
height:500px;
}
.map_explore_detail{
width:400px;
height:400px;
}
什么问题你面对 –
@sanojlawrence地图不是集中在通过标记。大小的改变确实有效,但setCenter没有正确应用。 – guiomie