Вот мое решение, которое также работает, когда два маркера находятся очень близко. Эффективный максимальный уровень масштабирования одинаков в обеих ситуациях. Таким образом, мы не уменьшаем масштаб без необходимости, когда имеется более одного маркера.
Эффект, опять же, обеспечивает максимальное масштабирование без использования параметра maxZoom, что, вероятно, имеет нежелательный эффект, заключающийся в невозможности для пользователя увеличить масштаб, превышающий уровень maxZoom, с помощью элемента управления масштабированием.
Я заранее рассчитал maxLat, minLat, maxLng и minLng ...
var minLatSpan = 0.002;
if (maxLat - minLat < minLatSpan) {
// ensures that we do not zoom in too much
var delta = (minLatSpan - (maxLat - minLat)) / 2;
maxLat += delta;
minLat -= delta;
}
map.fitBounds({
east: maxLng,
west: minLng,
north: maxLat,
south: minLat,
});