Javascript 谷歌地图标记消失
我的地图标记有问题。第一次加载地图时,一切正常。但是,当div被隐藏并重新显示(并调用相同的函数map())时,映射加载良好,但标记不会出现,即使映射在我真正所在的位置居中 以下是地图编码的一个片段:Javascript 谷歌地图标记消失,javascript,jquery,html,google-maps-api-3,google-maps-markers,Javascript,Jquery,Html,Google Maps Api 3,Google Maps Markers,我的地图标记有问题。第一次加载地图时,一切正常。但是,当div被隐藏并重新显示(并调用相同的函数map())时,映射加载良好,但标记不会出现,即使映射在我真正所在的位置居中 以下是地图编码的一个片段: function map(){ var latlng = new google.maps.LatLng(38.54, 15.35); infowindow = new google.maps.InfoWindow(); var mapOptions = { zoom: 5, cen
function map(){
var latlng = new google.maps.LatLng(38.54, 15.35);
infowindow = new google.maps.InfoWindow();
var mapOptions = {
zoom: 5,
center: latlng,
panControl: false,
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
overviewMapControl: false
};
map = new google.maps.Map(document.getElementById("map"), mapOptions);
switch (map_view_id) {
case "1" : map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
break;
case "2" : map.setMapTypeId(google.maps.MapTypeId.SATELLITE);
break;
case "3" : map.setMapTypeId(google.maps.MapTypeId.HYBRID);
break;
}
google.maps.event.addListenerOnce(map, 'tilesloaded', function(){
updateMap();
});
}
function updateMap() {
map.setCenter(new google.maps.LatLng(latitude, longitude));
map.setZoom(13);
marker = new google.maps.MarkerImage("/android_asset/www//graphics/car.png",
new google.maps.Size(96.0, 96.0),
new google.maps.Point(0, 0),
new google.maps.Point(48.0, 48.0)
);
markerShadow = new google.maps.MarkerImage("/android_asset/www/graphics/car_shadow.png",
new google.maps.Size(145.0, 96.0),
new google.maps.Point(0, 0),
new google.maps.Point(48.0, 48.0)
);
point = new google.maps.LatLng(latitude,longitude);
if(!markerUserPosition){
// Create marker
markerUserPosition = new google.maps.Marker({
position: point,
map: map,
icon: marker,
shadow: markerShadow,
draggable:false,
animation: google.maps.Animation.DROP
});
} else {
// Move marker
markerUserPosition.setPosition(point);
}
}
更新:
有没有办法彻底摧毁谷歌地图?因为在hide上,我可以在技术上完全销毁地图,并在需要时加载它。像这样尝试
$("#button-id-to-show").click(function() {
$("#target-map-block").show();
updateMap();
});
试着这样,
$("#button-id-to-show").click(function() {
$("#target-map-block").show();
updateMap();
});
一旦你$(“#目标地图块”).show()代码>,您只需通过
map=new google.maps.map(document.getElementById(“map”),mapOptions)代码>一旦您$(“#目标地图块”).show()代码>,您只需通过
map=new google.maps.map(document.getElementById(“map”),mapOptions)代码>在show函数期间是否再次调用updateMap()@sk8terboi87不,我只是调用map()。加载磁贴时,updateMap()不会自动调用吗?或者我错了吗?是的,当加载tiles时,它会自动加载,但是,对于hide/show,我认为您是jquery/js,可以这样做,对吗?所以加载的磁贴不会被触发,这是我的猜测。@sk8terboi87是的,我使用的是jQuery。如果我只在map()函数的末尾执行updateMap()呢?这应该可以正常工作?@sk8terboi87当我在map()的底部执行updateMap()时,在第一次加载时,我在左上角得到了标记,但映射没有加载,那么在show函数期间您是否再次调用updateMap()?@sk8terboi87不,我只是调用map()。加载磁贴时,updateMap()不会自动调用吗?或者我错了吗?是的,当加载tiles时,它会自动加载,但是,对于hide/show,我认为您是jquery/js,可以这样做,对吗?所以加载的磁贴不会被触发,这是我的猜测。@sk8terboi87是的,我使用的是jQuery。如果我只在map()函数的末尾执行updateMap()呢?这应该行得通吧?@sk8terboi87当我在map()的底部做了一个updateMap()时,在第一次加载时,我在左上角得到了标记,但地图没有加载。当有人没有有效的理由或评论就投下一票时,它会让人恼火。当有人没有有效的理由或评论就投下一票时,它会让人恼火。