我的离子应用程序从数据库中获取一些位置,并根据此数据生成地图。
$scope.$on('$ionicView.beforeEnter', function(){
// get event data
Events.getEvent($stateParams.eventId).then(function(data){
$scope.eventInfo = data[0];
$ionicLoading.hide();
// get location data
if(data[0].location){
Locations.getLocation(data[0].location).then(function(data){
$scope.location = data[0];
// call the map
$scope.initialize($scope.location.locstreet, $scope.location.zip, $scope.location.ort);
});
}
});
检索数据后,脚本调用initialize函数:
function initialize(strasse, plz, ort) {
var map = new google.maps.Map(document.getElementById('map'),{
zoom: 14
});
img = new google.maps.MarkerImage("img/icon.png", null, null, null, new google.maps.Size(30,30));
var geocoder = new google.maps.Geocoder();
var address = strasse + ", " + plz + " " + ort;
geocoder.geocode({'address': address}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
icon: img
});
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
这是第一次导航到此视图时效果很好。如果我离开视图并返回与其他数据相同的视图,则地图仅显示灰色,右下角是Google徽标。
我认为这可能是因为多重初始化var map
。但是,如果我在功能之外宣布var map
它也不起作用。
答案 0 :(得分:1)
将此缓存:false 添加到您的州提供商(定义地图时)。 这对我有用。