2013-12-17 25 views
0

我有一个地图,我从tilemill出口,做了一个mapbox地图,并扔了点它。观点开始看美国,中间有一个标记。如果我平移左边直到下次看到美国时,标记消失了。这是代码减去geoJson数据。TileMill MapBox地图平板到不同的世界没有任何标记

var map = L.mapbox.map('map', 'natecraft1.xdan61or').setView([-102, 39], 4); 
map.markerLayer.on('layeradd', function(e) { 
    var marker = e.layer; 
    var feature = marker.feature; 
    var image = feature.properties.images 
    // var img = images 

    // Create custom popup content 
var popupContent = '<img class="pics" src="' + image + '" />' 
    marker.bindPopup(popupContent,{ 
    closeButton: false, 
    minWidth: 320, 
    offset: [180, 20] 
    }); 
}); 

map.markerLayer.setGeoJSON(geoJson); 

map.markerLayer.on('click', function(e) { 
    e.layer.openPopup(); 
var lat = e.layer.getLatLng().lat; 
    var lng = e.layer.getLatLng().lng; 

    map.panTo([lat+5, lng+5], 2); 

}); 
    map.markerLayer.on('', function(e) { 
    e.layer.closePopup(); 
}); 

回答

0

您的瓷砖层环绕地球包络着坐标outside of the (-180, 180) range。最好的选择是设置maxBounds选项,以便用户不会在该地图之外移动,只会弹回来。

var map = L.mapbox.map('map', 'examples.map-9ijuk24y').setView([0,0], 2); 
var layer = L.mapbox.tileLayer('examples.map-9ijuk24y', { 
    noWrap: true, 
    minZoom: 3 
}).addTo(map); 
map.options.maxBounds = map.getBounds(); 

这里是什么看起来像

一个 live demo