Вы можете использовать метод flyToBounds
для установки вида карты в Leaflet с плавной анимацией.
Например, используя leaflet-control-geocoder
:
var geocoder = L.Control.geocoder({
defaultMarkGeocode: false,
geocoder: new L.Control.Geocoder.Nominatim("")
}).addTo(map);
geocoder.on("markgeocode", function (e) {
map.flyToBounds(L.polygon([
e.geocode.bbox.getNorthWest(),
e.geocode.bbox.getSouthWest(),
e.geocode.bbox.getSouthEast(),
e.geocode.bbox.getNorthEast()
]).getBounds());
})