在谷歌地图中,我有一个半径圆。单击按钮可以使此圆越来越小。
我的代码无法正常工作,因为我一把圆圈做大,缩放就越近。我一把圆圈缩小,它就会进一步缩小。
然后按钮调用此功能:
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,得到一个正常的缩放数,但一旦半径变大,答案就会变大,缩放也会放大。有人对此有不同的解决方案吗?
这对我有效:
double zoomLevel = 11;
if (circle != null) {
double radius = _circleRadius + _circleRadius / 2;
double scale = radius / 400;
zoomLevel = (16 - scale / 2);
}