我正在尝试显示一个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
为地图提供最大和最小纬度范围。
但是似乎没有任何作用。
答案 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,
),