我的地圖標記有問題。第一次加載地圖時,一切正常。然而,當div被隱藏並重新顯示(並調用相同的函數map())時,地圖加載正常,但標記不會出現,即使地圖居中在我真正所在的位置。Google地圖標記消失
這裏是圖編碼的一個片段:
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);
}
}
UPDATE: 有沒有辦法徹底摧毀一個谷歌地圖?因爲隱藏我可以在技術上徹底銷燬地圖並在需要時加載它。
地圖你在** **顯示功能再次調用updateMap()? –
@ sk8terboi87不,我只是在調用map()。當tile被加載時,updateMap()是否會自動調用?或者我錯了? – user1809790
是的,它會自動加載瓷磚時,但是,爲隱藏/顯示,我認爲你是jquery/js做到這一點,對不對?所以瓷磚加載不會被觸發,這是我的猜測。 –