我的地图(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);
},
您可以使用以下组合panBy()
and getSize()
使地图偏移覆盖层的宽度。
这是一个可以帮助您入门的片段:
// Calculate the offset
var offset = map.getSize().x*0.15;
// Then move the map
map.panBy(new L.Point(-offset, 0), {animate: false});
在我的示例中,我的叠加层占地图宽度的 33%。因此,我获取地图区域的大小,然后乘以 0.15(这是基于一些实验来了解最佳偏移量是多少)并使用panBy()
偏移地图中心。
这是一个完整的例子 http://jsfiddle.net/brettdewoody/WWBgh/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)