【问题标题】:Flutter Google Maps Dynamically zoom in and out with radius circleFlutter Google Maps 用半径圆动态放大和缩小
【发布时间】:2020-07-09 15:28:26
【问题描述】:

google map我有一个半径圆。通过点击按钮可以使这个圆圈变得越来越小。

我的代码不能正常工作,因为一旦我把圆圈变大,缩放就会越来越近。一旦我把圆圈变小,它就会进一步缩小。

然后按钮调用这个函数:

 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 以获得正常的缩放数字,但是一旦半径变大,答案就会变大并且缩放将被放大。有人对此有不同的解决方案吗?

【问题讨论】:

  • 更大的缩放距离更近(0 是整个世界),您希望在减小圆的半径时增加缩放级别。最好放大到圆圈的边界。

标签: google-maps flutter


【解决方案1】:

这对我有用:

 double zoomLevel = 11;
      if (circle != null) {
        double radius = _circleRadius + _circleRadius / 2;
        double scale = radius / 400;
        zoomLevel = (16 - scale / 2);
      }

【讨论】:

    猜你喜欢
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多