颤动的firestore地理点未显示为标记
Posted
技术标签:
【中文标题】颤动的firestore地理点未显示为标记【英文标题】:flutter firestore geopoint are not shoing as markers 【发布时间】:2021-01-13 08:55:10 【问题描述】:我正在尝试通过检索 geopoint 在 Firestore 中的谷歌地图上显示标记,但它没有显示标记,而仅在相机位置显示一个。我的代码如下。我找不到我在哪里犯了错误。这些方法不会从 Firestore 中检索任何值。
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class heatmap extends StatefulWidget
@override
_heatmapState createState() => _heatmapState();
class _heatmapState extends State<heatmap>
var clients=[];
GoogleMapController mapController;
List<Marker> allMarkers=[];
FirebaseFirestore firestore = FirebaseFirestore.instance;
Future<void> initState()
setState(()
clients=[];
FirebaseFirestore.instance.collection('markers').get().then((docs)
if(docs.docs.isNotEmpty)
for(int i=0;i<docs.docs.length;i++)
initMarker(docs.docs[i].data());
);
);
initMarker(clients)
allMarkers.add( Marker(
markerId: MarkerId('my'),
position: LatLng(clients['coords'].latitude,clients['coords'].longitude),
)
);
@override
Widget build(BuildContext context)
return new Scaffold(
appBar: new AppBar(title: new Text('Red Flag areas',
style: TextStyle(
color: Colors.white,
letterSpacing: 2.0,
fontSize: 28.0,
)),
centerTitle: true,
backgroundColor: Colors.amberAccent,
),
body: GoogleMap(
onMapCreated: onMapCreated,
initialCameraPosition: CameraPosition(
target: LatLng(23.8103, 90.4125),
zoom: 11.0
),
myLocationEnabled: true,
markers: Set.from(allMarkers),
)
);
void onMapCreated(controller)
setState(()
mapController=controller;
);
here is the data base
【问题讨论】:
【参考方案1】:移动setState
调用initMarker()
方法如下:
initMarker(clients)
setState(() => allMarkers.add(Marker(...)) );
【讨论】:
以上是关于颤动的firestore地理点未显示为标记的主要内容,如果未能解决你的问题,请参考以下文章
如何在listview颤动中显示来自firestore的图像数组?
如何从 firestore 检查有多少项目具有真值或假值并在列表中仅显示真值? - 颤动