Мне нужен просмотр списка, который соответствует маркерам, созданным этим кодом. Печать document.data работает, но не в правильном формате для просмотра списка. приветствуется любая помощь или предложения.
import 'package:geo_firestore/geo_firestore.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
class SlocateWidget extends StatefulWidget {
@override
SlocateWidgetState createState() => SlocateWidgetState();
}
Firestore firestore = Firestore.instance;
GeoFirestore geoFirestore = GeoFirestore(firestore.collection('chatrooms'));
class SlocateWidgetState extends State<SlocateWidget> {
GoogleMapController mapController;
String error;
bool currentWidget = true;
var currentLocation;
var clients = [];
void initMarker(client, markerRef) {
var markerIDVal = markerRef;
final MarkerId markerId = MarkerId(markerIDVal);
Map<MarkerId, Marker> markers = <MarkerId, Marker>{};
@override
void initState() {
super.initState();
// populateClients();
Geolocator().getCurrentPosition().then((currloc) {
setState(() {
currentLocation = currloc;
});
});
}
populateClients() async {
Position position = await Geolocator()
.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
final queryLocation = GeoPoint(position.latitude, position.longitude);
final List<DocumentSnapshot> documents =
await geoFirestore.getAtLocation(queryLocation, 10.0);
documents.forEach((document) {
print(document.data);
});
if (documents.isNotEmpty) {
for (int i = 0; i < documents.length; i++) {
clients.add(documents[i].data);
initMarker(documents[i].data, documents[i].documentID);
}
}
final Marker marker = Marker(
position:
LatLng(client['location'].latitude, client['location'].longitude),
markerId: markerId,
icon: BitmapDescriptor.defaultMarkerWithHue(BitmapDescriptor.hueAzure),
);
setState(() {
// adding a new marker to map
markers[markerId] = marker;
});
}
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return null;
}}
Я не включил код для карты Google, но могу при необходимости. Мне даже не нужно местоположение для обновления в реальном времени, только для просмотра списка, и, возможно, для обновления, если это необходимо. если у кого-то есть лучший подход, я готов попробовать что-то новое, чтобы заставить это работать.