2016-02-26 81 views
0

任何人都知道如何僅使用南北界限限制Mapbox地圖中的平移?我想要做的就是使用世界副本,以便用戶可以不斷向東移動到西部,但限制南北平移,這樣您就無法在地圖平鋪之外平移(這讓我覺得非常煩人)。我目前在初始化地圖時使用了maxbounds,以防止搖到白色瓷磚上方和下方,但這是世界複製的禁忌。限制Mapbox僅向南/向南平移?

回答

1

您可以使用-Infinity西部和東部Infinity(日Thnx伊萬)的L.LatLngBounds您使用設置maxBounds選項:(在片段使用單張,但應該Mapbox.js工作太)

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] 
 
    ] 
 
});
body { 
 
    margin: 0; 
 
} 
 

 
html, body, #leaflet { 
 
    height: 100%; 
 
}
<!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>

+1

您也可以使用Infinity和Infinity代替360和-360。 – IvanSanchez

+0

這看起來更清潔/更好,我會改變我的答案,thnx。 – iH8