我花了大约5个小时试图解决这个问题,并且最后一点陷入困境。
到目前为止,我已经能够调用https://sunrise-sunset.org/api来返回我需要的所有数据。我遇到的问题是能够解析结果,以便将日出或日落值附加到我可以在google工作表中导出的变量。
理想情况下,在google工作表中,我可以像其他任何一样使用自定义功能
A1=SunRiseSet(lat,long,date,type)
=“5:11:12 PM”
我想使用type来指定函数应返回的值(日出或日落)。
这是我到目前为止的代码
function SunRiseSet(lat,long,date,type) {
var response = UrlFetchApp.fetch("https://api.sunrise-sunset.org/json?lat="+lat+"&lng="+long+"&date="+date);
var json = response.getContentText();
Logger.log(json);
var data = JSON.stringify(json);
Logger.log(data);
var data = json;
var sunrise = data.sunrise;
var sunset = data.results.sunset
type=1;
if(type==1){
return this.sunrise}
else{
return this.sunset};
}
我确信这很容易,但到目前为止,我所尝试的一切都失败了。非常感谢你!
答案 0 :(得分:1)
以下修改如何?
sunrise
的值为data.results.sunrise
。data.results.sunrise
进行解析来检索data.results.sunset
和JSON.parse()
。上面反映的修改后的脚本如下。
function SunRiseSet(lat,long,date,type) {
var response = UrlFetchApp.fetch("https://api.sunrise-sunset.org/json?lat="+lat+"&lng="+long+"&date="+date);
var json = response.getContentText();
var data = JSON.parse(json);
var sunrise = data.results.sunrise;
var sunset = data.results.sunset;
if (type == 1) {
return sunrise;
} else {
return sunset;
};
}
=SunRiseSet(lat,long,date,type)
放在电子表格上的单元格中。例如,
sunrise
。
=SunRiseSet(36.7201600,-4.4203400,"2017-12-31",1)
放入电子表格上的单元格。请用双引号括起date
。sunset
。
=SunRiseSet(36.7201600,-4.4203400,"2017-12-31")
放入电子表格上的单元格。除1
至type
外,您可以使用。您也可以像样本一样使用type
。这些参数来自Sunset and sunrise times API。
如果我误解了你的问题,请告诉我。我想修改。