2012-04-25 77 views
3

單張是呈現,因爲我可以看到它在DOM中的所有元素,但沒有其他任何東西來到生活中。我看到的只有灰色。Leaflet地圖元素坐在DOM中但不渲染?

我可以讓地圖貼圖出現的唯一方法是,如果我刪除位置:絕對地圖容器上,但會創建一堆混亂的地圖貼圖。我檢查了GIT的歷史,看看我是否意外地改變了風格,但沒有運氣。

下面的代碼初始化地圖:

// init everything on page show 
$("#map").live('pageshow',function() { 
    if(window.localStorage.getItem("lat")!=undefined) { var lat = window.localStorage.getItem("lat")} else { var lat = '49.264'; } 
    if(window.localStorage.getItem("lng")!=undefined) { var lng = window.localStorage.getItem("lng")} else { var lng = '-123.123'; } 
    try {   
     var map = window.map 
     map = new L.Map('map-container'); 
     var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/006282296d334e66a593e55aca6b5ce0/54803/256/{z}/{x}/{y}.png'; 
     var cloudmadeAttribution = 'Map Data © 2011 OpenStreetMap'; 
     var cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 18, attribution: cloudmadeAttribution}); 
     map.setView(new L.LatLng(lat, lng), 12).addLayer(cloudmade); 
     map.invalidateSize(); 
    } catch(e) {console.log(e)} 
    userMarkers[1] = new L.Marker(new L.LatLng(lat,lng) , {icon: new iconUser, clickable: true}); 
    map.addLayer(userMarkers[1]); 
}); 

環境包括jQuery Mobile的。不幸的是,控制檯不記錄任何錯誤,並且當我檢查它時,上面的localStorage確實擁有有效的LatLng值。

截圖: screenshot

任何的猜測?

回答

4

我不知道這個問題是如何開始的,但要修復它我去和刪除所有地圖容器樣式,然後宣佈:

#map-container { 
    position:absolute; 
    top:0; 
    bottom:0; 
    left:0; 
    right:0; 
    margin: 0; 
    padding: 0; 
} 

而現在的問題是固定的。我以前從未使用過這種造型,所以我無法推測問題是如何發生的。