宣传单缩放由maxZoom覆盖

时间:2014-01-23 06:03:27

标签: javascript openstreetmap leaflet

问题:

所以我的问题是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开始。

3 个答案:

答案 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