Ответ 1
map.fitBounds(bounds, {padding: []})
должен работать. Я предлагаю вам изменить наложение, например. [50, 50]
, возможно, ваши значения заполнения слишком малы.
Выделите JSFiddle exmaple.
Я пытаюсь установить параметр fitBounds на карточке листовка следующим образом:
var bounds = new L.LatLngBounds([[Math.max(lat, borneLat), Math.max(lng, borneLng)], [Math.min(lat, borneLat), Math.min(lng, borneLng)]]);
map.fitBounds(bounds, { padding: [20, 20] });
Однако, похоже, это не добавляет никаких дополнений? по крайней мере, "уровень масштабирования" карты не изменяется, и он всегда показывает две точки в ребрах (т.е. один сверху справа, а другой - внизу слева). Для некоторых наборов маркеров он работает нормально, зум находится на достойном уровне, и вы можете видеть все красиво. Однако, когда элементы довольно близки друг к другу, кажется, что он слишком сильно масштабируется, если я не могу поместиться с некоторым "дополнением".
Также я не уверен, что границы будут такими же правильными? Вместо этого я должен использовать только:
var bounds = [[Math.max(lat, borneLat), Math.max(lng, borneLng)], [Math.min(lat, borneLat), Math.min(lng, borneLng)]];
map.fitBounds(bounds, {padding: []})
должен работать. Я предлагаю вам изменить наложение, например. [50, 50]
, возможно, ваши значения заполнения слишком малы.
Выделите JSFiddle exmaple.
Я столкнулся с этой проблемой. Насколько я понимаю, прокладка контролируется масштабированием. В моем примере все настройки дополнений до 10 не имеют значения. Как только отступы пройдут до 10, карта будет уменьшена на один уровень и будет добавление. Furhter, увеличивающий значение прокладки, не имеет никакого влияния, пока он не станет настолько большим, чтобы достигнуть другого уровня уменьшения.
FWI, вы также можете установить максимальный уровень масштабирования на карту следующим образом:
var map = L.mapbox.map('map', 'mapbox.emerald', {
maxZoom: 16
});
таким образом вы можете избежать слишком большого масштабирования карты в случае, если маркеры слишком близки друг к другу.