问题:
所以我的问题是maxZoom似乎超过了Leaflet的缩放。
从文档中,zoom
说明是:Initial map zoom.
我使用的代码如下。
的代码:
var map = L.map('map', {
maxZoom: 18,
zoom: 17,
zoomControl: false
}).locate({
setView: true,
}); // set default location to current GPS location
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
}).addTo(map);
的结果:
结果是初始缩放为18
而不是17
。
预期行为:
我想要的是最大缩放不超过18
但最初从17
开始。
答案 0 :(得分:2)
尝试将maxzoom和minzoom添加到tilelayer中。 我在setView中设置了起始缩放设置(13有起始缩放)。 希望它有所帮助,因为当你通过gps获取位置时,我不确定它是如何工作的。
var map = L.map('map').setView([8.939, 3.541], 13);
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 18,
minZoom:7,
attribution: 'OpenStreetMap'
}).addTo(map);
克里斯蒂安
答案 1 :(得分:1)
我提出这个话题有点晚了,不知道您是否已经解决了这个问题。我在当前正在处理的项目中遇到了同样的问题,并且我使用setZoom()方法找到了解决方案。
在我的特定情况下,我使用的是Leaflet版本0.7.x,对我来说,将方法连接到fitBounds()就足够了,如下例所示:
map.fitBounds(group.getBounds(), {
padding: [30, 30]
}).setZoom(settings.zoom.initialZoom);
由于我没有找到太多有关此特定问题的文档,因此我在此处发布我的解决方案,希望它可以帮助其他任何人也应该遇到相同的问题。
答案 2 :(得分:0)
我想.locate()
函数会将缩放重置为适合所提供用户位置的级别。如果您不想这样做,也可以为此设置单独的maxZoom
。