如何使用Leaflet API更改地图的位置中心?

Con*_*ick 3 maps location centering leaflet

我的地图(Mapbox)占据了网站的整个背景,因此中心位于网站的中间.但是用户的地图焦点在右侧,因为我的内容与左侧的地图重叠.当传单抓取位置时,它来自地图的中心,但是如果我可以将其设置为从站点的右三分之一的中心抓取位置将更方便,这样用户将不会居中在与网站左半部分内容接壤的目标上的地图.

有没有办法可以为地图设置传单API的中心或位置焦点?

这是我目前如何设置,

mapOptions: {
        maxZoom: 18,
        zoomControl: false,
        worldCopyJump: true 
},

createMap: function() {
        Map.map =  L.map('map', Map.mapOptions);
        Map.layer = L.mapbox.tileLayer(Map.mapID, {
                unloadInvisibleTiles: true,
        }).addTo(Map.map);              
        Map.map.locate({setView: true});
        Map.map.addControl(L.mapbox.geocoderControl(Map.mapID));
        new L.Control.Zoom({ position: 'topright' }).addTo(Map.map);
},
Run Code Online (Sandbox Code Playgroud)

Bre*_*ody 10

您可以使用组合panBy()getSize()来偏移地图的叠加宽度.

这是一个应该让你开始的代码片段:

// Calculate the offset
var offset = map.getSize().x*0.15;
// Then move the map
map.panBy(new L.Point(-offset, 0), {animate: false});
Run Code Online (Sandbox Code Playgroud)

在我的示例中,我的叠加层是地图宽度的33%.所以我抓住地图区域的大小,然后乘以0.15(这是基于一些实验来查看最佳偏移量是多少)并用于panBy()抵消地图中心.

这是一个完整的例子.