В зависимости от состояния моего приложения я хочу, чтобы мой холст карты google имел разный размер, я меняю размер с помощью ng-класса. Когда я вызываю ToggleExploreMap(), размер моей карты google изменяется, но setCenter не применяется должным образом. Позиция меняется, но она не изменяется на моем маркере, но она сдвигается в верхнюю левую часть положения маркера.Изменение размера и центра карты Google
Это ошибка?
Посмотрите эту скрипку для примера видимого поведения. Если вы нажмете кнопку изменения размера, карта будет изменена, но вам нужно щелкнуть второй раз, чтобы на самом деле карта была сосредоточена на маркере. 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