flutter - 如何从 API 获取数据然后在 Googlemap 小部件中调用它们
问题描述
我想从 API 调用数据并在谷歌地图小部件中使用它们,我使用了下面的代码,但我没有得到结果,因为结果显示我正在等待激活 API
Future clinicdata() async {
final response = await http.post(
Uri.parse("htt...."),
body: {'doctor_id': widget.doctor_id});
if (response.statusCode == 200) {
var jsonData = json.decode(response.body);
setState(() {
clinicList = jsonData;
});
if (clinicList.length != 0) {
try {
clinicname = clinicList[0]['clinic_name'];
clinic_L = clinicList[0]['clinic_L'];
clin_L = double.parse(clinic_L);
clinic_W = clinicList[0]['clinic_W'];
clin_W = double.parse(clinic_W);
} catch (e) {
print(e);
}
}
}
}
这个小部件
FutureBuilder<dynamic>(
future: clinicdata(),
builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
return Text('start widget');
case ConnectionState.active:
return Container(
width: 200,
height: 150,
child: GoogleMap(
// markers: Set.from(allMarkers),
mapType: MapType.normal,
markers: Set.from(allMarkers),
initialCameraPosition: CameraPosition(
target: LatLng(clin_L, clin_W),
zoom: 10,
),
myLocationEnabled: true,
myLocationButtonEnabled: true,
));
case ConnectionState.waiting:
return CircularProgressIndicator(color: Colors.blue[200],);
case ConnectionState.done:
if (snapshot.hasError)
return Text('Error: ${snapshot.error}');
return Text('Result: ${snapshot.data}');
}
return Text("nothing"); // unreachable
},
代码中有错误还是有比这更好的方法?
解决方案
推荐阅读
- python - Python 删除安装过程中添加的解压缩文件
- c# - 如何从窗口服务托管的 WCF 服务启动可执行文件?
- go - Twitch.TV 下载器:内存泄漏和 http.Client 拨号查找:打开的文件太多
- dspace - 如何使用 SystemDesk 从非 autosar 代码但没有 a2l 文件生成虚拟 ecu?
- mapbox-gl - Mapbox Directions API 路由,从标记获取信息
- python - 应该为员工使用哪种 Django 模型?
- node.js - Node.js:在 Windows 上读取 ECONNRESET
- javascript - ASP.net Core MVC:如何修复循环结果?
- android - 在单个活动中膨胀多个菜单
- python - Python 'hhmmss' 时间计算