Tek seferliğe mahsus böyle bir bilgiye ihtiyacınız varsa Google’a sormanız yeterli 🙂 Ancak elinizdeki kayıtlara göre düzenli olarak ihtiyaç duyuyorsanız, bu yazıda anlatılan Google Spreadsheets dokümanını kullanabilirsiniz. 3 çalışma sayfasından oluşan bu dosya, girdi olarak sadece posta kodu (zipcode) bilgisi alarak, içinde bulunduğumuz haftanın günleri için gün doğumu ve gün batımı bilgisini veriyor.
ImportJSON script’i bu dosyayı çalıştırmak için ön gereksinim.
1. Google Spreadsheets’le Adresten Enlem (latitude) , Boylam (longitude) nasıl bulunur?
Öncelike gün batımı ve gün doğumu bilgisini nasıl alabileceğime baktım ve bu siteyi buldum:
Gün doğumu ve gün batımı, her yerel nokta için değişkenlik gösterdiğinden alınmak istenen saat bilgisine koordinat bilgisi eklemek gerekti, o sebeple ilk iş adresten enlem/boylam almak oldu. Bunun için de openstreetmap (OSM) API’sinden yararlandım.
https://nominatim.openstreetmap.org
Benim işime yarayan haliyle lokasyon aramayı postakodu ve ülke olarak Amerika özelinde yaptım, ancak kolayca değiştirilebilir ve hatta tam adres araması yapılarak da kullanılabilir. OSM API dokümanında detaylar mevcut.
How to find latitude, longitude of an address using zipcode in Google Spreadsheets?
https://docs.google.com/spreadsheets/d/1p1zvJV35yDQr4Ivs6j-M7HusU6oRojRzFpAYmai3MQU/edit?usp=sharing
2. Google Spreadsheets’le Saat Dilimi (Timezone) ve Saat Dilimi Farkı (Timezone Offset) Nasıl Bulunur?
Gün doğumu/gün batımı bilgisi için kullandığım API’de gerekli olan ikinci bilgi saat dilimi ve saat dilimi farkı bilgisiydi. Bunu da yine adrese bağlı yaparak çekmek istedim. Bunun için de araya taraya bu servisi buldum:
Verilen koordinatın zaman dilimi bilgisini çekmek biraz zahmetli oldu, zira direkt olarak istediğim bilgiye erişemedim, 4-5 adımda alabildim. Verilen tarih, zaman ve koordinat bilgisine göre saat dilimini alabildim.
How to find timezone, timezone offset and daylight saving time (DST) offset for given coordinates in Google Spreadsheets?
https://docs.google.com/spreadsheets/d/1p1zvJV35yDQr4Ivs6j-M7HusU6oRojRzFpAYmai3MQU/edit?usp=sharing
3. Google Spreadsheets’le Gün Doğumu (Sunrise) ve Gün Batımı (Sunset) nasıl bulunur?
Artık elimde gerekli bilgiler olduğu için iki üç şekil şukul tasarım işi bir şeyler ekleyerek, istediğim sonuca ulaştım.
How to find Sunrise/Sunset Times in Google Spreadsheets?
https://docs.google.com/spreadsheets/d/1p1zvJV35yDQr4Ivs6j-M7HusU6oRojRzFpAYmai3MQU/edit?usp=sharing
Bu çalışmayı yaparken, ücretsiz ve üyelik gerektirmeyen API’lerden yararlandım. Muhtemelen ücretli, üyelikli servislerle bunları yapmak çok daha kolay olacaktı. Ayrıca, ImportJSON isimli muhteşem script (macro) işleri çok kolaylaştırdı. Biraz Google Spreadsheets bilmek, biraz API kurcalamış olmak ve jSON tipli verilerle uğraşmak sonuca ulaşmak için yeterli oldu.
Sunrise/Sunset Times | https://api.sunrise-sunset.org |
Geocoding | https://nominatim.openstreetmap.org |
Timezone | https://api.teleport.org |
ImportJSON | http://blog.fastfedora.com/projects/import-json |
Ara ara ufak tefek işime yarayan Google Spreadsheets dosyalarını paylaşmaya devam edeceğim.