Javascript 强制传单贴图仅使用整数缩放级别(无分数级别)

Javascript 强制传单贴图仅使用整数缩放级别(无分数级别),javascript,leaflet,zooming,tiling,mapzen,Javascript,Leaflet,Zooming,Tiling,Mapzen,我无法强制传单贴图仅使用整数缩放级别。只要我只使用-/+控制按钮就可以了,但只要我使用鼠标滚轮或map.fitBounds(一些多边形)之类的函数,我总是会得到分数缩放级别 这对我来说是不好的,因为我使用0到17级的平铺,当我在两个级别(如10.5)之间使用分数缩放级别时,平铺会缩放且模糊 文档中说zoomSnap和zoomDelta的默认值为1。所以我不明白为什么我最终得到了分数缩放级别。我怎样才能防止这种情况 我在用这些 <!-- Leaflet --> <link rel

我无法强制传单贴图仅使用整数缩放级别。只要我只使用-/+控制按钮就可以了,但只要我使用鼠标滚轮或map.fitBounds(一些多边形)之类的函数,我总是会得到分数缩放级别

这对我来说是不好的,因为我使用0到17级的平铺,当我在两个级别(如10.5)之间使用分数缩放级别时,平铺会缩放且模糊

文档中说zoomSnap和zoomDelta的默认值为1。所以我不明白为什么我最终得到了分数缩放级别。我怎样才能防止这种情况

我在用这些

<!-- Leaflet -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.1/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.0.1/dist/leaflet.js"></script>

<!-- L.esri for Leaflet -->
<script src="https://unpkg.com/esri-leaflet@2.0.4"></script>

<!-- Elevation plugin for Leaflet -->
<link rel="stylesheet" href="/app/libs/leaflet-elevation/dist/leaflet.elevation-0.0.4.css" />
<script src="https://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<!--<script src="app/libs/leaflet-elevation/dist/leaflet.elevation-0.0.4.min.js"></script>-->
<script src="/app/libs/leaflet-elevation/dist/leaflet.elevation-0.0.4.src.js"></script>

<!-- Marker Cluster plugin for Leaflet -->
<link rel="stylesheet" type="text/css" href="https://unpkg.com/leaflet.markercluster@1.0.0/dist/MarkerCluster.Default.css">
<link rel="stylesheet" type="text/css" href="https://unpkg.com/leaflet.markercluster@1.0.0/dist/MarkerCluster.css">
<script src="https://unpkg.com/leaflet.markercluster@1.0.0/dist/leaflet.markercluster.js"></script>

<!-- zoomhome plugin for Leaflet -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"/>
<link rel="stylesheet" href="/app/libs/leaflet-zoomhome/leaflet.zoomhome.css"/>
<script src="/app/libs/leaflet-zoomhome/leaflet.zoomhome.js"></script>

分数缩放被添加为
您可以使用
zoomStep=1

禁用它。在将基本映射添加到映射后,tangram库将zoomSnap设置为0。这基本上为地图启用了分数缩放级别

在翻阅tangram文档后,我发现了以下信息:

修改滚轮

默认情况下,Tangram会修改传单的滚轮行为,以便在缩放时更好地与其自己的渲染循环同步。如果这会干扰您的应用程序,您可以使用可选的modifyScrollWheel选项禁用此行为:

var layer = Tangram.leafletLayer({
    modifyScrollWheel: false,
    ...
});

我试过了,它确实解决了我的问题。

我试过在选项中添加zoomStep:1,但没有改变。在链接到的代码中,zoomStep的默认值也是1。默认情况下,它应该是整数。我不明白。请注意,选项是
zoomSnap
,并且是
zoomStep
根本不存在。加载所有插件后,能否确保
zoomSnap
选项为
1
?加载所有内容后,执行
console.log(map.options.zoomSnap)
操作。事实上,我刚刚找到了罪魁祸首。正如你所说,我怀疑zoomSnap的值在初始化后发生了变化,可能是由于我通过CDN加载的一个插件。事实证明,我们用于基础地图的mapzen中的tangram库在一个名为“modifyScrollWheelBehavior”的函数中将zoomSnap设置为0。我还不知道为什么,我会调查的,但我很高兴我终于找到了真正的原因。他们可能不在乎这一点,因为他们使用矢量图块,但它肯定会与地图中的其他图块层发生冲突。我到处都在寻找这一点。非常感谢。
var layer = Tangram.leafletLayer({
    modifyScrollWheel: false,
    ...
});