Вы можете установить границы и анимировать камеру с помощью контроллера, например:
LatLngBounds getLatLngBounds() {
//this.points is a List<LatLng> representing vertex of a polygon, it could be a city.
var maxLat = this.points.map((latlng) => latlng.latitude).reduce(max);
var maxLng = this.points.map((latlng) => latlng.longitude).reduce(max);
var minLat = this.points.map((latlng) => latlng.latitude).reduce(min);
var minLng = this.points.map((latlng) => latlng.longitude).reduce(min);
return LatLngBounds(
northeast: LatLng(maxLat, maxLng), southwest: LatLng(minLat, minLng));
}
Чтобы анимировать камеру:
...
onMapCreated: (GoogleMapController controller) async {
try {
controller.animateCamera(
CameraUpdate.newLatLngBounds(getLatLngBounds(), 50)
} on Exception catch (e) {
print(e);
}
},
...
Это решение требует, чтобы вы получили полигон из который указывает c идентификатор места.