Карта TileMill MapBox перемещается в другой мир без каких-либо маркеров
У меня есть карта, которую я экспортировал из tilemill, сделал карту mapbox и набросал на нее несколько точек. Вид начинается с просмотра США с маркером где-то посередине. Если я поверну налево, пока в следующий раз не увижу США, маркеры исчезнут. Вот код минус данные GeoJson.
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();
});
1 ответ
Ваш слой плиток вращается вокруг земного шара для координат вне диапазона (-180, 180). Лучший вариант - установить 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();
Вот живая демонстрация того, как это будет выглядеть