Cod 400,消息:纬度错误,OpenWearher:获取当前天气数据

Cod 400 , message: wrong latitude, OpenWearher: getting current weatherData

我在尝试获取当前天气数据时遇到错误(错误的纬度)。谁能告诉我出了什么问题 我尝试将 locationAccuracy 从低更改为最佳,但没有任何改变

Location location = Location();
class _LoadingScreenState extends State<LoadingScreen> {
  String weatherABI = '4ead5f41d1c622302dd34242f9d1c25a';
  void getlocation() async {
    await location.getCurrentLocation();
    print(location.latitude);
    print(location.longtiude);
  }

  void getData() async {
    Uri url = Uri.parse(
        'https://api.openweathermap.org/data/2.5/weather?lat=${location.latitude}&lon=${location.longtiude}&appid=$weatherABI');
    Response response = await get(url);
    print(response.body);

    if (response.statusCode == 200) {
      String data = response.body;
      print(data);
    } else {
      print(response.statusCode);
    }
  }

  @override
  void initState() {
    super.initState();
    getlocation();
    getData();
  }

  Widget build(BuildContext context) {
    return Scaffold();
  }
}

错误:

只需在 getLocation() 函数末尾调用 getData() 函数,因为两个函数同时调用,这就是为什么 getData() 函数不获取任何位置数据。您需要先获取位置然后调用 getData 函数。

initState()

中删除 getData() 函数
  void getlocation() async {
   await location.getCurrentLocation();
   getData();
   print(location.latitude);
   print(location.longtiude);
  }

您还需要在 getData() 函数中调用 setState 一旦您从 API 检索数据以更新您的 UI.