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值。
截图:
任何猜测?
答案 0 :(得分:4)
我不确定问题是如何开始的,但为了解决这个问题,我去了所有地图容器样式,然后声明:
#map-container {
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin: 0;
padding: 0;
}
现在问题已解决。我之前从未使用过这样的样式,因此无法推测问题是如何开始的。