我怎么能得到又晚又长的标记然后存储在firestore - flutter



我想获得这段代码中用于在firebase中存储此位置的标记的纬度和经度

body: GoogleMap(
zoomControlsEnabled: false,
initialCameraPosition: CameraPosition(target: latLng ,zoom: 14.34),
markers: markers,
//  onTap: _handleTap,
onMapCreated: (GoogleMapController controller) {
_controller.complete(controller);
},
onCameraMove: (point){
setState(() {
markers.add(Marker(markerId: markerId,position: point.target)
);
});

},
),

在获得新的标记位置后,我要将新位置存储在firestore

我的代码

Completer<GoogleMapController> _controller = Completer();
final markers = Set<Marker>();
MarkerId markerId = MarkerId('parking');
LatLng latLng = LatLng(32.5259483,35.8506622);
TextButton(onPressed: (){
FirebaseFirestore.instance.collection('parking_go_loc').add({
'name':'${name}',
'email':'${email}',
'location' : GeoPoint(latLng.latitude,latLng.longitude),

});
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=> LoginWoner()));
}

我的包
google_maps_flutter: 
cloud_firestore: ^2.4.0
location: ^4.2.0
firebase_core :

但是当我运行这段代码时,它存储了我在代码中输入的第一个坐标在移动标记并按保存按钮

后,它不存储标记的新坐标。

您只需要在onCameraMove回调中将latLng变量更新为新的LatLng值。

添加这行latLng = point.target,您的onCameraMove将是:

onCameraMove: (point){
setState(() {
markers.add(Marker(markerId: markerId,position: point.target)
latLng = point.target;
);
);

相关内容

  • 没有找到相关文章