有人知道如何仅使用北/南边界限制 Mapbox 地图中的平移吗?我想做的是使用世界副本,以便用户可以连续从东向西平移,但限制向北和向南平移,这样您就无法在地图图块之外平移(我觉得这非常烦人)。我目前在初始化地图时使用 maxbounds,以防止平移到两极上方和下方的白色瓷砖中,但这对于世界复制来说是不行的。
您可以在用于设置选项的中使用-Infinity
west 和Infinity
east (thnx Ivan) :(在代码片段中使用 Leaflet,但也应该适用于 Mapbox.js)L.LatLngBounds
maxBounds
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': '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, © <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)