diff --git a/lib/view/earthquake.dart b/lib/view/earthquake.dart index ef7a32eb9..538fa8666 100644 --- a/lib/view/earthquake.dart +++ b/lib/view/earthquake.dart @@ -349,8 +349,13 @@ class _EarthquakePage extends State { )); } else { for (var i = 0; i < data.length; i++) { - int level = data[i]["data"][0]["areaIntensity"]; + var keys = data[i]["list"].keys.toList(); + int level = data[i]["list"][keys[0]]["int"]; String Lv_str = int_to_str_en(level); + var dateTime = DateTime.fromMillisecondsSinceEpoch(data[i]["time"]); + var dateStr = "${dateTime.year}-${dateTime.month.toString().padLeft(2, '0')}-${dateTime.day.toString().padLeft(2, '0')}"; + var timeStr = "${dateTime.hour.toString().padLeft(2, '0')}:${dateTime.minute.toString().padLeft(2, '0')}:${dateTime.second.toString().padLeft(2, '0')}"; + var formatted = "$dateStr $timeStr"; _List_children.add( Card( color: const Color(0xff333439), @@ -399,9 +404,9 @@ class _EarthquakePage extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - data[i]["location"] - .substring(data[i]["location"].indexOf("(") + 1, - data[i]["location"].indexOf(")")) + data[i]["loc"] + .substring(data[i]["loc"].indexOf("(") + 1, + data[i]["loc"].indexOf(")")) .replaceAll("位於", ""), style: const TextStyle( fontSize: 22, @@ -409,7 +414,7 @@ class _EarthquakePage extends State { color: Colors.white), ), Text( - data[i]["originTime"].toString().substring(0, 16), + formatted, style: const TextStyle( fontSize: 16, fontWeight: FontWeight.w300, @@ -418,7 +423,7 @@ class _EarthquakePage extends State { ], ), trailing: Text( - "M ${data[i]["magnitudeValue"].toStringAsFixed(1)}", + "M ${data[i]["mag"].toStringAsFixed(1)}", style: const TextStyle( fontSize: 26, fontWeight: FontWeight.w600, diff --git a/lib/view/report.dart b/lib/view/report.dart index c7eb8ca39..8294240cf 100644 --- a/lib/view/report.dart +++ b/lib/view/report.dart @@ -34,7 +34,7 @@ class _ReportPage extends State { @override void initState() { data = ReportPage.data; - earthquakeNo = data["earthquakeNo"].toStringAsFixed(0); + earthquakeNo = data["no"].toStringAsFixed(0); var last3 = earthquakeNo.substring(earthquakeNo.length - 3); if (last3 != '000') { @@ -44,13 +44,19 @@ class _ReportPage extends State { earthquakeNo = ""; } - level = data["data"][0]["areaIntensity"]; + var keys = data["list"].keys.toList(); + level = data["list"][keys[0]]["int"]; Lv_str = int_to_str_en(level); - _expanded = List.generate(data["data"].length, (index) => false); + _expanded = List.generate(data["list"].length, (index) => false); + + var dateTime = DateTime.fromMillisecondsSinceEpoch(data["time"]); + var dateStr = "${dateTime.year}-${dateTime.month.toString().padLeft(2, '0')}-${dateTime.day.toString().padLeft(2, '0')}"; + var timeStr = "${dateTime.hour.toString().padLeft(2, '0')}:${dateTime.minute.toString().padLeft(2, '0')}:${dateTime.second.toString().padLeft(2, '0')}"; + var formatted = "$dateStr $timeStr"; Marker ep_marker = Marker( point: LatLng( - data["epicenterLat"].toDouble(), data["epicenterLon"].toDouble()), + data["lat"].toDouble(), data["lon"].toDouble()), builder: (ctx) => Stack( alignment: Alignment.center, children: [ @@ -156,7 +162,7 @@ class _ReportPage extends State { ), ), Text( - data["originTime"].toString().substring(0, 16), + formatted, style: TextStyle( fontSize: 20, fontWeight: FontWeight.w600, @@ -177,9 +183,9 @@ class _ReportPage extends State { ), ), Text( - data["location"] - .substring(data["location"].indexOf("(") + 1, - data["location"].indexOf(")")) + data["loc"] + .substring(data["loc"].indexOf("(") + 1, + data["loc"].indexOf(")")) .replaceAll("位於", ""), style: TextStyle( fontSize: 20, @@ -203,7 +209,7 @@ class _ReportPage extends State { children: [ Expanded( child: Text( - "規模: \u3000 M ${data["magnitudeValue"].toStringAsFixed(1)}", + "規模: \u3000 M ${data["mag"].toStringAsFixed(1)}", style: TextStyle( fontSize: 20, fontWeight: FontWeight.w600, @@ -227,7 +233,7 @@ class _ReportPage extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - "規模: \u3000 M ${data["magnitudeValue"].toStringAsFixed(1)}", + "規模: \u3000 M ${data["mag"].toStringAsFixed(1)}", style: TextStyle( fontSize: 20, fontWeight: FontWeight.w600, @@ -271,20 +277,20 @@ class _ReportPage extends State { ), ); - data["data"].forEach((area) { + data["list"].keys.forEach((area) { _expanded.add(false); List areaChildren = []; var maxStationLevel = 0; - area["eqStation"].forEach((station) { - var station_level = station["stationIntensity"]; + data["list"][area]["town"].keys.forEach((station) { + var station_level = data["list"][area]["town"][station]["int"]; var st_Lv_str = int_to_str_en(station_level); if (station_level > maxStationLevel) { maxStationLevel = station_level; } Marker marker = Marker( - point: LatLng(station["stationLat"].toDouble(), - station["stationLon"].toDouble()), + point: LatLng(data["list"][area]["town"][station]["lat"].toDouble(), + data["list"][area]["town"][station]["lon"].toDouble()), builder: (ctx) => Stack( alignment: Alignment.center, children: [ @@ -318,7 +324,7 @@ class _ReportPage extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - "${station["stationName"]}", + "${station}", style: TextStyle( fontSize: 20, fontWeight: FontWeight.w600, @@ -358,7 +364,7 @@ class _ReportPage extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - "${area["areaName"]}", + "${area}", style: TextStyle( fontSize: 20, fontWeight: FontWeight.w600,