【发布时间】:2021-09-22 19:30:40
【问题描述】:
对于我的 Flutter 应用程序,我正在尝试向谷歌地图添加标记。然而,标记没有出现在地图上。我已经在 Firestore 中存储了纬度和经度。纬度和经度都是 Firestore 上的类型编号。我没有将它们存储在地理点中。
Here 是我的 Firestore 数据库的屏幕截图。
这是我从 Firestore 获取标记数据的代码:
String uid = FirebaseAuth.instance.currentUser.uid;
CollectionReference users = FirebaseFirestore.instance.collection('users');
getMarkerData() {
users
.doc(uid)
.collection('family')
.get()
.then((QuerySnapshot querySnapshot) {
querySnapshot.docs.forEach((doc) {
initMarker(doc['latitude'], doc['longitude'], doc['name']);
});
});
}
所以这是将纬度和经度数据分配给标记的代码:
void initMarker(lat, long, name) async {
LatLng latlng = LatLng(lat, long);
var markerIdVal = name;
final MarkerId markerId = MarkerId(markerIdVal);
final Marker marker = Marker(
markerId: markerId,
position: latlng,
);
setState(() {
markers[markerId] = marker;
});
}
【问题讨论】:
-
您能否从 Firestore 获取标记的数据?您可能会发现这很有用stackoverflow.com/questions/55000043/…
-
所以,我最终将我的位置数据类型更改为 Firestore 上的 GeoPoint,而不是使用单独的纬度和经度并将其存储为数字。我还更改了一些代码,现在标记终于显示出来了。
标签: firebase flutter google-maps google-cloud-firestore