Saya telah menghabiskan sekitar 5 jam mencoba untuk mencari tahu ini dan saya terjebak pada bit terakhir.

Sejauh ini, saya dapat memanggil https://sunrise-sunset.org/api untuk mengembalikan semua data yang saya butuhkan. Masalah yang saya hadapi adalah dapat mengurai hasilnya sehingga menambahkan nilai matahari terbit atau terbenam ke variabel yang dapat saya ekspor sebagai hasilnya di lembar google.

Idealnya, di lembar google, saya dapat menggunakan fungsi khusus seperti yang lain seperti ini

A1=SunRiseSet(lat,long,date,type)  

= "5:11:12"

Saya ingin menggunakan tipe untuk menentukan nilai apa yang harus dikembalikan oleh fungsi (matahari terbit atau terbenam).

Berikut adalah kode yang saya miliki sejauh ini

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};
}

Saya yakin ini sangat mudah, tetapi sejauh ini semua yang saya coba gagal. Terima kasih banyak!

3
Jeremy Bauman 31 Desember 2017, 09:33

1 menjawab

Jawaban Terbaik

Bagaimana dengan modifikasi berikut?

Poin modifikasi:

  • Nilai sunrise berada di data.results.sunrise.
  • data.results.sunrise dan data.results.sunset dapat diambil dengan parsing menggunakan JSON.parse().

Skrip yang dimodifikasi yang tercermin di atas adalah sebagai berikut.

Skrip yang dimodifikasi:

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;
  };
}

Penggunaan:

  • Harap masukkan =SunRiseSet(lat,long,date,type) ke sel di Spreadsheet.

Sebagai contoh,

  • Bila Anda ingin sunrise.
    • Silakan masukkan =SunRiseSet(36.7201600,-4.4203400,"2017-12-31",1) ke sel di Spreadsheet. Harap sertakan date dengan tanda kutip ganda.
  • Bila Anda ingin sunset.
    • Silakan masukkan =SunRiseSet(36.7201600,-4.4203400,"2017-12-31") ke sel di Spreadsheet. Anda dapat menggunakan kecuali 1 hingga type. Anda juga dapat menggunakan tanpa type seperti contoh.

Parameter ini berasal dari API waktu matahari terbenam dan matahari terbit.

Referensi :

Jika saya salah memahami pertanyaan Anda, tolong beri tahu saya. Saya ingin memodifikasi.

2
Tanaike 31 Desember 2017, 07:09