更改相机位置时未呈现Flutter Google Map

时间:2019-08-26 13:12:39

标签: google-maps flutter gps

我正在尝试显示一个Stack小部件,该小部件的底部应包含Google Map,顶部应包含图标(汽车),以使汽车应遵循由给出的道路上的路径不同的GPS坐标位置(纬度,经度)。

为了模拟这一点,汽车图标始终绘制在堆栈的中心,并且使用以下方法将Google Map移动到图标下方:

_mapController.animateCamera(CameraUpdate.newCameraPosition(
      CameraPosition(
        target: LatLng(
          newPosition.target.latitude,
          newPosition.target.longitude,
        ),
        zoom: 19,
      ),
    )); 

这是地图的图形+图标:

Widget drawStack() {
    return Container(
        width: 930,
        height: 524,
        child: Stack(
          children: <Widget>[
            _buildGoogleMaps(),
            Align(
              alignment: Alignment.center,
              child: Image.asset("assets/images/carIconMap.png", width: 50, height: 93),
                  ),
                ],
              ),
            ),
          ],
        ));
  }

一开始一切都很好,但是当给出更多坐标点时,有一瞬间(容器外部的一部分),当相机移动时似乎没有加载地图。

我试图通过GoogleMap构造函数的属性cameraTargetBounds为地图提供最大和最小纬度范围。

但是似乎没有任何作用。

1 个答案:

答案 0 :(得分:1)

这对我有用

 CameraPosition _initialPosition = CameraPosition(target: _latlng, zoom: 16);
 Position currentLocation;



_getLocation() async {
   currentLocation = await Geolocator()
       .getCurrentPosition(desiredAccuracy: LocationAccuracy.best);

   var newPosition = CameraPosition(
       target: LatLng(currentLocation.latitude, currentLocation.longitude),
       zoom: 16);

   CameraUpdate update =CameraUpdate.newCameraPosition(newPosition);
   CameraUpdate zoom = CameraUpdate.zoomTo(16);

   _mapController.moveCamera(update);      
 }

这是我的小部件

GoogleMap(
              onMapCreated: onMapCreated,
              initialCameraPosition: _initialPosition,
              myLocationEnabled: true,
              myLocationButtonEnabled: false,

            ),