我在div中有一个分页地图,如下所示:
<script src="http://cdn.leafletjs.com/leaflet-0.4/leaflet.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.4/leaflet.css" />
<!--[if lte IE 8]>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.4/leaflet.ie.css" />
<![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />然后我有一个这样的div:
加载地图的一些js:
map = L.map($attrs.id,
center: [40.094882122321145, -3.8232421874999996]
zoom: 5
)
L.tileLayer("http://{s}.tile.cloudmade.com/57cbb6ca8cac418dbb1a402586df4528/997/256/{z}/{x}/{y}.png",
maxZoom: 18
).addTo map然后在页面加载时,我有一些JS来监控窗口高度和大小:
$("#map").height($(window).height())
$(window).resize(_.throttle(->
$("#map").height($(window).height())
, 100
))然而,当地图加载时,它加载了一半的灰色瓦片。当我调整大小时,地图加载正常,但初始加载是1/2灰色
发布于 2013-02-26 23:01:03
如果你没有理由使用JS来调整地图大小,最好使用CSS:
html, body, #map {
width: 100%;
height: 100%;
}但是,您可以在将地图插入到DOM (或由$("#map").height($(window).height())调整大小的地图)后尝试使用map.invalidateSize()。
当您调整窗口大小时,默认情况下会调用invalidateSize(),请参见以下链接:https://github.com/Leaflet/Leaflet/blob/master/src/map/Map.js#L609和https://github.com/Leaflet/Leaflet/blob/master/src/map/Map.js#L616。
发布于 2018-05-18 21:17:05
在对这个问题进行了长时间的搜索之后,在我的例子中,我有了一个全局css样式,它是:
<pre>
img {
position: relative;
display: block;
max-width: 100%;
}
</pre>在我的例子中,问题是"position : relative",所以我添加了一行
<pre>
//Fix personnal bug leaflet
.leaflet-pane{
img{
position: absolute;
}
}
</pre>https://stackoverflow.com/questions/15089541
复制相似问题