В карте Google у меня радиус круга. Этот круг можно делать меньше и больше, нажимая на кнопки.
Мой код просто не работает должным образом, потому что, как только я увеличиваю круг, масштаб становится ближе. Как только я сделаю круг меньше, он еще больше уменьшится.
Кнопки затем вызывают эту функцию:
void addRadiusToMap(radius, location) {
setState(() {
double reciprocal(double d) => 1 * d;
circle.clear();
circle.add(Circle(
circleId: CircleId("1"),
center: location,
radius: reciprocal(radius.toDouble()),
strokeWidth: 2,
fillColor: Color.fromARGB(102, 51, 153, 5)
));
mapController.animateCamera(CameraUpdate.newCameraPosition(
CameraPosition(target: location, zoom: radius/71)));
});
}
После этого это правило управляет увеличением и уменьшением масштаба:
mapController.animateCamera(CameraUpdate.newCameraPosition(
CameraPosition(target: location, zoom: radius/71)));
Здесь я делю радиус на 71, чтобы получить нормальное значение масштабирования, но как только радиус станет больше, ответ станет больше и масштаб будет увеличен. У кого-нибудь есть другое решение для этого?