【发布时间】:2017-12-03 17:22:37
【问题描述】:
我正在使用 webread() 函数从 sunrise-sunset.org api here 检索日出和日落数据。
这是我的代码的样子:
function [E_total] = solar_energy(lng, lat, yr, month, day)
% Generate URL
url = strcat('https://api.sunrise-sunset.org/json?lat=', num2str(lat),...
'&lng=', num2str(lng), '&date=', num2str(yr), '-', num2str(month),...
'-',num2str(day));
% Retrieve data
forecast = webread(url)
if isempty(forecast) % Failed, use default estimates
sunrise = 6;
sunset = 18;
noon = 12;
elseif forecast.status == 'OK'
% Success! Parse retrieved data...
forecast.results
dv = datevec(forecast.results.sunrise)
sunrise = dv(6)/3600 + dv(5)/60 + dv(4)
dv = datevec(forecast.results.sunset)
sunset = dv(6)/3600 + dv(5)/60 + dv(4)
dv = datevec(forecast.results.solar_noon)
noon = dv(6)/3600 + dv(5)/60 + dv(4)
end
这是我在华盛顿国家纪念碑获得的 2017 年 12 月 2 日日出和日落数据的示例。
输入:
solar_energy(-77.0353, 38.8895, 2017, 12, 02)
这是我得到的:
预测 =
results: [1x1 struct] status: 'OK'ans =
sunrise: '12:00:01 AM' sunset: '12:00:01 AM' solar_noon: '9:38:38 AM' day_length: '00:00:00' civil_twilight_begin: '12:00:01 AM' civil_twilight_end: '12:00:01 AM' nautical_twilight_begin: '12:00:01 AM' nautical_twilight_end: '12:00:01 AM' astronomical_twilight_begin: '12:00:01 AM' astronomical_twilight_end: '12:00:01 AM'
我的方法有问题还是这个 api 有问题? 数据已成功检索,但对于所有日期,日出和日落时间要么显示为上午 12:00:00,要么为上午 9 点。
【问题讨论】:
-
嗯...如果从 API 调用返回的数据错误,则更改是 API 失败。我尝试运行您的代码,但遇到了同样的问题,但使用“PM”。
标签: json matlab rest web-services