Существует ли общедоступный API для доступа к данным о восходе/закате? Что касается времени восхода и захода солнца для всех будущих календарных дней?
Поскольку время восхода и захода солнца определяется тремя факторами: положением на земле в широте/долготе и высоте, датой плюс, возможно, мешающими объектами, такими как горы, и большинство сервисов не учитывают горы, вам редко нужен публичный API, а не использование библиотеки эфемерид .
В зависимости от того, какой язык вы используете, вы найдете библиотеки, доступные для большинства из них. Затем вам нужно будет указать местоположение, а также ряд определений для восхода/заката - астрономический, гражданский, морской и старый любимый "Когда вы можете отличить черную нить от белой". Такие факторы, как температура, также могут влиять на видимое время восхода/захода солнца за счет изменения атмосферной рефракции.
Хорошая новость заключается в том, что если у вас есть эфемериды, вы можете рассчитать время восхода и захода для других тел, таких как Луна, на любую дату и без подключения к Интернету.
Некоторые популярные библиотеки:
Если вам не нужны другие тела, то уравнение восхода солнца достаточно просто даст вам достаточно хорошее значение.
Также стоит взглянуть на отличных Photographers Ephemeris .
Это бесплатно. Просто нужна кредитная ссылка на сайт.
Я знаю больше API для языка программирования Java. Вот список (в алфавитном порядке):
Первые две библиотеки используют старый стандартный API-интерфейс даты/времени в Java ( java.util.Calendar
и java.util.Date
), в то время как Time4J использует свои собственные типы, которые можно легко преобразовать в новый java.time
-API (но также и в старый java-API).
Это становится очень сложным — у вас есть несколько определений термина «закат» (и «восход») — астрономическое, морское и гражданское, — а затем возникает проблема широты/долготы. Не забывайте, что в некоторых частях мира солнце не заходит неделями, а через 6 месяцев оно не будет всходить неделями, поэтому есть некоторые крайние случаи, когда FALSE должно быть вернулся.
В PHP определены хорошие функции date_sunrise и date_sunset - я бы либо настроил что-то для вызова через HTTP (S), либо посмотрел фактический источник последней версии PHP.
http://php.net/manual/en/function.date-sunrise.php
http://php.net/manual/en/function.date-sunset.php
Гражданские сумерки 96 градусов - обычно используется для обозначения сумерек.
Морские сумерки 102 градуса - точка, при которой горизонт перестает быть видимым в море.
Астронические сумерки в 108 градусов - момент, когда Солнце перестает быть источником какого-либо освещения.
джошумакс
иваниван
Стив Барнс