我正在使用控制器在我的应用程序中显示google地图。当我第一次加载页面时,地图呈现正确。但当我第二次尝试时,地图无法加载。它显示为灰色区域。我尝试了不同的解决方案,比如触发调整大小事件。但没那么走运。
这是控制器中的initializeMap()
$scope.initializeMap = function() {
var mapOptions = {
zoom : 4,
center : new google.maps.LatLng($scope.latitude,
$scope.longitude),
mapTypeId : google.maps.MapTypeId.ROADMAP
}
var mapsss = document.getElementById('map');
$scope.map = new google.maps.Map(mapsss, mapOptions);
$scope.markers = [];
var infoWindow = new google.maps.InfoWindow();
var createMarker = function(info) {
var marker = new google.maps.Marker({
map : $scope.map,
position : new google.maps.LatLng(
info.latitude, info.longitude),
title : info.name,
icon : info.icon
});
marker.content = '';
google.maps.event.addListener(marker, 'click',
function() {
infoWindow.setContent('<h2>'
+ marker.title + '</h2>');
infoWindow.open($scope.map, marker);
});
$scope.markers.push(marker);
}
for (i = 0; i < $scope.locations.length; i++) {
createMarker($scope.locations[i]);
}
$scope.openInfoWindow = function(e, selectedMarker) {
e.preventDefault();
google.maps.event.trigger(selectedMarker, 'click');
}
google.maps.event.trigger($scope.map, 'resize');
var myLatlng = new google.maps.LatLng(34.310774,
66.225586);
$scope.map.setCenter(myLatlng);
}
});我不知道问题出在哪里。任何帮助都将不胜感激。
发布于 2016-04-26 16:11:26
最后,我自己找到了解决方案:)这看起来像是maps api的一个问题或行为,在div被隐藏的情况下,它不能正确地呈现地图。因此,我删除了div中的ng-show,它起作用了!正确地渲染了地图。
https://stackoverflow.com/questions/36858228
复制相似问题