Хочу поделиться с вами небольшим, но полезным проектиком, разработанным мной на досуге — солнечным калькулятором SunCalc.
SunCalc показывает на карте для выбранного места и даты траекторию движения солнца и фазы освещённости в течении суток (и еще пару приятных мелочей).
Идея его появилась после того, как мне понадобилось найти в Крыму хорошее место для съёмки кадра солнца, уходящего в море на закате (для клипа, снимали в итоге вот здесь) — оказалось, что все существующие средства для этого сильно устарели. Захотелось создать своё, сделав его самым лучшим, каким только можно себе представить, нашёл хорошую страницу с кучей астрономических формул, взялся за разработку по свободным вечерам и вот результат.
Во-первых, в чисто бытовых ситуациях. До скольки мне нужно выехать из леса, пока еще хоть что-то видно, если я до сих пор не купил на велик фару? До скольки я смогу вечером загорать перед тем, как пляж накроет тень от скалы справа? В какое время уже не будет слепить прямо в глаза солнце, когда выйду поиграть в футбол на площадку под домом? Какая у квартиры, которую я собираюсь снять, освещённость в течении года? Уже самому не раз пригодилось в подобного рода вопросах.
Во-вторых, любителям фотографии! Включая меня. Часто бывает важно знать, например, когда и сколько длятся сумерки (для ночных пейзажей), в какую сторону садится или откуда восходит солнце (чтобы выбрать удачный ракурс), какое время выбрать для фотосессии какого-то объекта так, чтобы не пришлось фотографировать против солнца или он не попал полностью в тень соседнего здания, и т.д.
В-третьих, для общего образования и удовлетворения природной любознательности. Почему в Австралии зимой жарче, чем летом? Что на самом деле такое белые ночи и в каких городах и когда они наблюдаются? Что насчёт полярного дня и ночи? Как меняется траектория солнца от севера к югу? Сколько минут идёт рассвет от Москвы до Киева? И т.д.
Надеюсь, полезное применение этого маленького сервиса найдёте и вы. Буду очень рад впечатлениям и замечаниям в комментариях. Оставлять идеи или голосовать за уже высказанные также можно тут. Спасибо!
update: извините за проблемы с хостингом, проект временно переехал на другой сервер — теперь вроде всё хорошо.
SunCalc показывает на карте для выбранного места и даты траекторию движения солнца и фазы освещённости в течении суток (и еще пару приятных мелочей).
Идея его появилась после того, как мне понадобилось найти в Крыму хорошее место для съёмки кадра солнца, уходящего в море на закате (для клипа, снимали в итоге вот здесь) — оказалось, что все существующие средства для этого сильно устарели. Захотелось создать своё, сделав его самым лучшим, каким только можно себе представить, нашёл хорошую страницу с кучей астрономических формул, взялся за разработку по свободным вечерам и вот результат.
Возможности
- рисует на карте красивый векторный график с положением солнца на рассвете, закате и в выбранное время (жёлтая, оранжевая и красная линия), проекцией траектории солнца (оранжевая дуга) и ее разбросом в течении года (жёлтая область вокруг нее); чем ближе точка на графике к центру круга, тем выше в этот момент солнце над горизонтом
- по наведении мышкой на линию заката/рассвета показывает соответствующий разброс положений
- показывает освещённость (темнота, сумерки, дневной свет) цветом на слайдере времени
- можно посмотреть время не только рассвета и заката, но и 3-х типов сумерек (гражданские, навигационные, астрономические) и полной темноты
- показывает ссылку на недельный прогноз погоды (облачность, осадки, туман) в выбранном месте
- умеет определять местоположение (кликните по соответствующему полю -> Detect my location)
- местоположение также можно выбирать поиском, автоопределением, кликом по карте или перетаскиванием маркера
- работают пермалинки на конкретное место/время и back/forward в браузере
Для чего эго можно использовать
Во-первых, в чисто бытовых ситуациях. До скольки мне нужно выехать из леса, пока еще хоть что-то видно, если я до сих пор не купил на велик фару? До скольки я смогу вечером загорать перед тем, как пляж накроет тень от скалы справа? В какое время уже не будет слепить прямо в глаза солнце, когда выйду поиграть в футбол на площадку под домом? Какая у квартиры, которую я собираюсь снять, освещённость в течении года? Уже самому не раз пригодилось в подобного рода вопросах.
Во-вторых, любителям фотографии! Включая меня. Часто бывает важно знать, например, когда и сколько длятся сумерки (для ночных пейзажей), в какую сторону садится или откуда восходит солнце (чтобы выбрать удачный ракурс), какое время выбрать для фотосессии какого-то объекта так, чтобы не пришлось фотографировать против солнца или он не попал полностью в тень соседнего здания, и т.д.
В-третьих, для общего образования и удовлетворения природной любознательности. Почему в Австралии зимой жарче, чем летом? Что на самом деле такое белые ночи и в каких городах и когда они наблюдаются? Что насчёт полярного дня и ночи? Как меняется траектория солнца от севера к югу? Сколько минут идёт рассвет от Москвы до Киева? И т.д.
Немного деталей реализации
- весь код приложения выполняется на стороне браузера
- для карты и поиска используется Google Maps API v3
- для векторной графики на карте — библиотека Raphaёl
- для определения местоположения — W3C Geolocation API, Google Gears или Google IP Geolocation
- используется jQuery и несколько компонентов jQuery UI (Slider для времени, Datepicker для даты и Dialog для окошка приветствия)
- для deep linking и ajax history используется плагин jQuery Address
- между сессиями состояние сохраняется в печеньках
- для прогноза погоды на удивление самым подходящим оказался Wolfram Alpha
- для идей по улучшению заведена страничка на сервисе UserIdea/Reformal (который уже освещался его авторами на Хабре)
Что планируется в будущем
- сделать мобильную версию для браузеров iPhone и Android
- добавить опцию отображения времени в локальном часовом поясе
- добавить слайдер для дней года, аналогичный слайдеру времени
- подчистить и выложить на гитхабе вычислительную часть кода
- написать для Хабра хорошую статью о нюансах разработки подобного приложения
Надеюсь, полезное применение этого маленького сервиса найдёте и вы. Буду очень рад впечатлениям и замечаниям в комментариях. Оставлять идеи или голосовать за уже высказанные также можно тут. Спасибо!
update: извините за проблемы с хостингом, проект временно переехал на другой сервер — теперь вроде всё хорошо.