如何在谷歌地图上实现放大或缩小地图中心的缩放手势?

时间:2021-05-02 09:29:16

标签: flutter google-maps flutter-layout

enter image description here如何在 Google 地图中实现中心放大/缩小功能?缩放手势正在起作用,但是当我放大/缩小坐标时,坐标会发生变化。我也尝试使用 scaleUp 和 scaleDown 手势,但没有按预期工作。我正在尝试实现缩放功能,就像 Deliveroo 应用程序一样。

以上视频是deliveroo应用。当我尝试从任何地方缩放时,它总是从中心缩放地图。

我是这样实现地图的:

GoogleMap(
              padding: EdgeInsets.only(bottom: 100),
              myLocationEnabled: true,
              tiltGesturesEnabled: false,
              compassEnabled: false,
              scrollGesturesEnabled: false,
              zoomGesturesEnabled: true,
              zoomControlsEnabled: false,
              rotateGesturesEnabled: false,
              myLocationButtonEnabled: false,
              initialCameraPosition: CameraPosition(
                target: LatLng(25.1988, 55.2796),
                zoom: zoomLevel,
              ),
              onMapCreated: (GoogleMapController controller) {
                this.controller = controller;
              },
              onCameraMove: (position) {
                if (!isFromPlaceSuggestion)
                  _coordinates = Coordinates(position.target.latitude, position.target.longitude);
              },
              onCameraMoveStarted: () {
                setState(() {
                  markerOpacity = 0.5;
                });
              },
              onCameraIdle: () async {
                if (!isFromPlaceSuggestion) {
                  if (_coordinates == null) return;
                  findAddressFromLatLong(
                      this.controller, _coordinates, true);
                }
                setState(() {
                  markerOpacity = 1.0;
                });
              },
              markers: Set<Marker>.of(markers.values),
            )

在我的情况下,当我尝试从屏幕右侧缩放地图时,它会移动到正确的大小,左侧也是如此,这会改变我的标记从中心的位置。但是在上面的视频中,无论我在哪里可以缩放地图,指针始终停留在中心。我也尝试过 PanGestureDetactor,但无法实现相同的工作。

0 个答案:

没有答案