我成功使用以下代码从Firestore获取数据:
return new Scaffold(
body: Column(
children: <Widget>[
StreamBuilder(
stream: Firestore.instance.collection("location").snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData)
return Text("Loading Data.. Please Wait");
return
Container(
child: GoogleMap(
mapType: MapType.normal,
initialCameraPosition: CameraPosition(
target: LatLng("${snapshot.data.documents[0]['latitude']}", "${snapshot.data.documents[0]['longitude']}"),
zoom: 12.0
),
onMapCreated: (GoogleMapController controller) {
_controller.complete(controller);
},
),
);
},
),
],
),
);
但我不太了解如何在LatLng中放置值(此处为的错误),这是错误的。
任何人都有解决这个问题的想法,感谢您的帮助。
最佳答案
从google_maps documentation,我可以看到您必须将2个double值传递给LatLng构造函数。
请尝试以下代码:
return new Scaffold(
body: Column(
children: <Widget>[
StreamBuilder(
stream: Firestore.instance.collection("location").snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData)
return Text("Loading Data.. Please Wait");
return
Container(
child: GoogleMap(
mapType: MapType.normal,
initialCameraPosition: CameraPosition(
target: LatLng(double.parse("${snapshot.data.documents[0]['latitude']}"), double.parse("${snapshot.data.documents[0]['longitude']}")),
zoom: 12.0
),
onMapCreated: (GoogleMapController controller) {
_controller.complete(controller);
},
),
);
},
),
],
),
);
区别在于,我使用double.parse()将数据转换为double,然后将其传递给LatLng构造函数。
关于google-maps - 获取数据快照到位置纬度经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60969204/