限制 Mapbox 仅向北/向南平移?

dgw*_*ebb 1 leaflet mapbox

有人知道如何仅使用北/南边界限制 Mapbox 地图中的平移吗?我想做的是使用世界副本,以便用户可以连续从东向西平移,但限制向北和向南平移,这样您就无法在地图图块之外平移(我觉得这非常烦人)。我目前在初始化地图时使用 maxbounds,以防止平移到两极上方和下方的白色瓷砖中,但这对于世界复制来说是不行的。

iH8*_*iH8 5

您可以在用于设置选项的中使用-Infinitywest 和Infinityeast (thnx Ivan) :(在代码片段中使用 Leaflet,但也应该适用于 Mapbox.js)L.LatLngBoundsmaxBounds

var map = new L.Map('leaflet', {
    'center': [0, 0],
    'zoom': 2,
    'worldCopyJump': true,
    'layers': [
        new L.TileLayer('//{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', {
            'attribution': '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, &copy; <a href="http://cartodb.com/attributions">CartoDB</a>'
        }),
        new L.Marker([0,0])
    ],
    'maxBounds': [
        [-90, -Infinity],
        [90, Infinity]
    ]
});
Run Code Online (Sandbox Code Playgroud)
body {
    margin: 0;
}

html, body, #leaflet {
    height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
  <head>
    <link type="text/css" rel="stylesheet" href="//cdn.leafletjs.com/leaflet/v0.7.7/leaflet.css" />
  </head>
  <body>
    <div id="leaflet"></div>
    <script type="application/javascript" src="//cdn.leafletjs.com/leaflet/v0.7.7/leaflet.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)