首页 > 解决方案 > 如何从 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
  },

代码中有错误还是有比这更好的方法?

标签: flutter

解决方案


推荐阅读