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.
我在尝试获取当前天气数据时遇到错误(错误的纬度)。谁能告诉我出了什么问题 我尝试将 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.