parent
405acf1eb4
commit
44b3364c03
@ -0,0 +1,379 @@
|
|||||||
|
class RealTimeWeatherModel {
|
||||||
|
String status;
|
||||||
|
String apiVersion;
|
||||||
|
String apiStatus;
|
||||||
|
String lang;
|
||||||
|
String unit;
|
||||||
|
num tzshift;
|
||||||
|
String timezone;
|
||||||
|
num serverTime;
|
||||||
|
List<num> location;
|
||||||
|
Result result;
|
||||||
|
|
||||||
|
RealTimeWeatherModel(
|
||||||
|
{this.status,
|
||||||
|
this.apiVersion,
|
||||||
|
this.apiStatus,
|
||||||
|
this.lang,
|
||||||
|
this.unit,
|
||||||
|
this.tzshift,
|
||||||
|
this.timezone,
|
||||||
|
this.serverTime,
|
||||||
|
this.location,
|
||||||
|
this.result});
|
||||||
|
|
||||||
|
RealTimeWeatherModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
status = json['status'];
|
||||||
|
apiVersion = json['api_version'];
|
||||||
|
apiStatus = json['api_status'];
|
||||||
|
lang = json['lang'];
|
||||||
|
unit = json['unit'];
|
||||||
|
tzshift = json['tzshift'];
|
||||||
|
timezone = json['timezone'];
|
||||||
|
serverTime = json['server_time'];
|
||||||
|
location = json['location'].cast<num>();
|
||||||
|
result =
|
||||||
|
json['result'] != null ? new Result.fromJson(json['result']) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['status'] = this.status;
|
||||||
|
data['api_version'] = this.apiVersion;
|
||||||
|
data['api_status'] = this.apiStatus;
|
||||||
|
data['lang'] = this.lang;
|
||||||
|
data['unit'] = this.unit;
|
||||||
|
data['tzshift'] = this.tzshift;
|
||||||
|
data['timezone'] = this.timezone;
|
||||||
|
data['server_time'] = this.serverTime;
|
||||||
|
data['location'] = this.location;
|
||||||
|
if (this.result != null) {
|
||||||
|
data['result'] = this.result.toJson();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Result {
|
||||||
|
Realtime realtime;
|
||||||
|
num primary;
|
||||||
|
|
||||||
|
Result({this.realtime, this.primary});
|
||||||
|
|
||||||
|
Result.fromJson(Map<String, dynamic> json) {
|
||||||
|
realtime = json['realtime'] != null
|
||||||
|
? new Realtime.fromJson(json['realtime'])
|
||||||
|
: null;
|
||||||
|
primary = json['primary'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
if (this.realtime != null) {
|
||||||
|
data['realtime'] = this.realtime.toJson();
|
||||||
|
}
|
||||||
|
data['primary'] = this.primary;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Realtime {
|
||||||
|
String status;
|
||||||
|
num temperature;
|
||||||
|
num humidity;
|
||||||
|
num cloudrate;
|
||||||
|
String skycon;
|
||||||
|
num visibility;
|
||||||
|
num dswrf;
|
||||||
|
Wind wind;
|
||||||
|
num pressure;
|
||||||
|
num apparentTemperature;
|
||||||
|
Precipitation precipitation;
|
||||||
|
AirQuality airQuality;
|
||||||
|
LifeIndex lifeIndex;
|
||||||
|
|
||||||
|
Realtime(
|
||||||
|
{this.status,
|
||||||
|
this.temperature,
|
||||||
|
this.humidity,
|
||||||
|
this.cloudrate,
|
||||||
|
this.skycon,
|
||||||
|
this.visibility,
|
||||||
|
this.dswrf,
|
||||||
|
this.wind,
|
||||||
|
this.pressure,
|
||||||
|
this.apparentTemperature,
|
||||||
|
this.precipitation,
|
||||||
|
this.airQuality,
|
||||||
|
this.lifeIndex});
|
||||||
|
|
||||||
|
Realtime.fromJson(Map<String, dynamic> json) {
|
||||||
|
status = json['status'];
|
||||||
|
temperature = json['temperature'];
|
||||||
|
humidity = json['humidity'];
|
||||||
|
cloudrate = json['cloudrate'];
|
||||||
|
skycon = json['skycon'];
|
||||||
|
visibility = json['visibility'];
|
||||||
|
dswrf = json['dswrf'];
|
||||||
|
wind = json['wind'] != null ? new Wind.fromJson(json['wind']) : null;
|
||||||
|
pressure = json['pressure'];
|
||||||
|
apparentTemperature = json['apparent_temperature'];
|
||||||
|
precipitation = json['precipitation'] != null
|
||||||
|
? new Precipitation.fromJson(json['precipitation'])
|
||||||
|
: null;
|
||||||
|
airQuality = json['air_quality'] != null
|
||||||
|
? new AirQuality.fromJson(json['air_quality'])
|
||||||
|
: null;
|
||||||
|
lifeIndex = json['life_index'] != null
|
||||||
|
? new LifeIndex.fromJson(json['life_index'])
|
||||||
|
: null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['status'] = this.status;
|
||||||
|
data['temperature'] = this.temperature;
|
||||||
|
data['humidity'] = this.humidity;
|
||||||
|
data['cloudrate'] = this.cloudrate;
|
||||||
|
data['skycon'] = this.skycon;
|
||||||
|
data['visibility'] = this.visibility;
|
||||||
|
data['dswrf'] = this.dswrf;
|
||||||
|
if (this.wind != null) {
|
||||||
|
data['wind'] = this.wind.toJson();
|
||||||
|
}
|
||||||
|
data['pressure'] = this.pressure;
|
||||||
|
data['apparent_temperature'] = this.apparentTemperature;
|
||||||
|
if (this.precipitation != null) {
|
||||||
|
data['precipitation'] = this.precipitation.toJson();
|
||||||
|
}
|
||||||
|
if (this.airQuality != null) {
|
||||||
|
data['air_quality'] = this.airQuality.toJson();
|
||||||
|
}
|
||||||
|
if (this.lifeIndex != null) {
|
||||||
|
data['life_index'] = this.lifeIndex.toJson();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Wind {
|
||||||
|
num speed;
|
||||||
|
num direction;
|
||||||
|
|
||||||
|
Wind({this.speed, this.direction});
|
||||||
|
|
||||||
|
Wind.fromJson(Map<String, dynamic> json) {
|
||||||
|
speed = json['speed'];
|
||||||
|
direction = json['direction'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['speed'] = this.speed;
|
||||||
|
data['direction'] = this.direction;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Precipitation {
|
||||||
|
Local local;
|
||||||
|
Nearest nearest;
|
||||||
|
|
||||||
|
Precipitation({this.local, this.nearest});
|
||||||
|
|
||||||
|
Precipitation.fromJson(Map<String, dynamic> json) {
|
||||||
|
local = json['local'] != null ? new Local.fromJson(json['local']) : null;
|
||||||
|
nearest =
|
||||||
|
json['nearest'] != null ? new Nearest.fromJson(json['nearest']) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
if (this.local != null) {
|
||||||
|
data['local'] = this.local.toJson();
|
||||||
|
}
|
||||||
|
if (this.nearest != null) {
|
||||||
|
data['nearest'] = this.nearest.toJson();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Local {
|
||||||
|
String status;
|
||||||
|
String datasource;
|
||||||
|
num numensity;
|
||||||
|
|
||||||
|
Local({this.status, this.datasource, this.numensity});
|
||||||
|
|
||||||
|
Local.fromJson(Map<String, dynamic> json) {
|
||||||
|
status = json['status'];
|
||||||
|
datasource = json['datasource'];
|
||||||
|
numensity = json['numensity'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['status'] = this.status;
|
||||||
|
data['datasource'] = this.datasource;
|
||||||
|
data['numensity'] = this.numensity;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Nearest {
|
||||||
|
String status;
|
||||||
|
num distance;
|
||||||
|
num numensity;
|
||||||
|
|
||||||
|
Nearest({this.status, this.distance, this.numensity});
|
||||||
|
|
||||||
|
Nearest.fromJson(Map<String, dynamic> json) {
|
||||||
|
status = json['status'];
|
||||||
|
distance = json['distance'];
|
||||||
|
numensity = json['numensity'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['status'] = this.status;
|
||||||
|
data['distance'] = this.distance;
|
||||||
|
data['numensity'] = this.numensity;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class AirQuality {
|
||||||
|
num pm25;
|
||||||
|
num pm10;
|
||||||
|
num o3;
|
||||||
|
num so2;
|
||||||
|
num no2;
|
||||||
|
num co;
|
||||||
|
Aqi aqi;
|
||||||
|
Description description;
|
||||||
|
|
||||||
|
AirQuality(
|
||||||
|
{this.pm25,
|
||||||
|
this.pm10,
|
||||||
|
this.o3,
|
||||||
|
this.so2,
|
||||||
|
this.no2,
|
||||||
|
this.co,
|
||||||
|
this.aqi,
|
||||||
|
this.description});
|
||||||
|
|
||||||
|
AirQuality.fromJson(Map<String, dynamic> json) {
|
||||||
|
pm25 = json['pm25'];
|
||||||
|
pm10 = json['pm10'];
|
||||||
|
o3 = json['o3'];
|
||||||
|
so2 = json['so2'];
|
||||||
|
no2 = json['no2'];
|
||||||
|
co = json['co'];
|
||||||
|
aqi = json['aqi'] != null ? new Aqi.fromJson(json['aqi']) : null;
|
||||||
|
description = json['description'] != null
|
||||||
|
? new Description.fromJson(json['description'])
|
||||||
|
: null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['pm25'] = this.pm25;
|
||||||
|
data['pm10'] = this.pm10;
|
||||||
|
data['o3'] = this.o3;
|
||||||
|
data['so2'] = this.so2;
|
||||||
|
data['no2'] = this.no2;
|
||||||
|
data['co'] = this.co;
|
||||||
|
if (this.aqi != null) {
|
||||||
|
data['aqi'] = this.aqi.toJson();
|
||||||
|
}
|
||||||
|
if (this.description != null) {
|
||||||
|
data['description'] = this.description.toJson();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Aqi {
|
||||||
|
num chn;
|
||||||
|
num usa;
|
||||||
|
|
||||||
|
Aqi({this.chn, this.usa});
|
||||||
|
|
||||||
|
Aqi.fromJson(Map<String, dynamic> json) {
|
||||||
|
chn = json['chn'];
|
||||||
|
usa = json['usa'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['chn'] = this.chn;
|
||||||
|
data['usa'] = this.usa;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Description {
|
||||||
|
String usa;
|
||||||
|
String chn;
|
||||||
|
|
||||||
|
Description({this.usa, this.chn});
|
||||||
|
|
||||||
|
Description.fromJson(Map<String, dynamic> json) {
|
||||||
|
usa = json['usa'];
|
||||||
|
chn = json['chn'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['usa'] = this.usa;
|
||||||
|
data['chn'] = this.chn;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class LifeIndex {
|
||||||
|
Ultraviolet ultraviolet;
|
||||||
|
Ultraviolet comfort;
|
||||||
|
|
||||||
|
LifeIndex({this.ultraviolet, this.comfort});
|
||||||
|
|
||||||
|
LifeIndex.fromJson(Map<String, dynamic> json) {
|
||||||
|
ultraviolet = json['ultraviolet'] != null
|
||||||
|
? new Ultraviolet.fromJson(json['ultraviolet'])
|
||||||
|
: null;
|
||||||
|
comfort = json['comfort'] != null
|
||||||
|
? new Ultraviolet.fromJson(json['comfort'])
|
||||||
|
: null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
if (this.ultraviolet != null) {
|
||||||
|
data['ultraviolet'] = this.ultraviolet.toJson();
|
||||||
|
}
|
||||||
|
if (this.comfort != null) {
|
||||||
|
data['comfort'] = this.comfort.toJson();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Ultraviolet {
|
||||||
|
num index;
|
||||||
|
String desc;
|
||||||
|
|
||||||
|
Ultraviolet({this.index, this.desc});
|
||||||
|
|
||||||
|
Ultraviolet.fromJson(Map<String, dynamic> json) {
|
||||||
|
index = json['index'];
|
||||||
|
desc = json['desc'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['index'] = this.index;
|
||||||
|
data['desc'] = this.desc;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
import 'package:akuCommunity/model/common/real_time_weather_model.dart';
|
||||||
|
import 'package:amap_map_fluttify/amap_map_fluttify.dart';
|
||||||
|
import 'package:dio/dio.dart';
|
||||||
|
|
||||||
|
class WeatherUtil {
|
||||||
|
static Location _location;
|
||||||
|
static String baseURL = 'https://api.caiyunapp.com/v2.5/Rl2lmppO9q15q8W6';
|
||||||
|
|
||||||
|
static Future<RealTimeWeatherModel> getWeather() async {
|
||||||
|
_location = await AmapLocation.instance.fetchLocation();
|
||||||
|
Response response = await Dio().get(
|
||||||
|
'$baseURL/${_location.latLng.latitude},${_location.latLng.longitude}/realtime.json');
|
||||||
|
if (response.data == null)
|
||||||
|
return null;
|
||||||
|
else
|
||||||
|
return RealTimeWeatherModel.fromJson(response.data);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue