1

我的地圖標記有問題。第一次加載地圖時,一切正常。然而,當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: 有沒有辦法徹底摧毀一個谷歌地圖?因爲隱藏我可以在技術上徹底銷燬地圖並在需要時加載它。

+0

地圖你在** **顯示功能再次調用updateMap()? –

+0

@ sk8terboi87不,我只是在調用map()。當tile被加載時,updateMap()是否會自動調用?或者我錯了? – user1809790

+0

是的,它會自動加載瓷磚時,但是,爲隱藏/顯示,我認爲你是jquery/js做到這一點,對不對?所以瓷磚加載不會被觸發,這是我的猜測。 –

回答

1

一旦你$("#target-map-block").show();,你可以重建被

map = new google.maps.Map(document.getElementById("map"), mapOptions);

-1

嘗試這樣,

$("#button-id-to-show").click(function() { 
    $("#target-map-block").show(); 
    updateMap(); 
}); 
+0

它讓人惱火,如果有人放棄downvote沒有一個有效的理由或評論。 –