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