Слой погоды для Open Street Map

Всем привет!
Хочу представить наш гаражный проект - OpenWeatherMap.org

До сих пор свой слой погоды был у Яндекса, не давно аналогичный появился у гугла, но для OpenStreetMap нет ничего похожего!

Теперь есть!
Даже два слоя, правда оба в стадии альфа, но это скоро пройдет.

Слой первый – это данные поступающие к нам от погодных станций.
Показываются только самые свежие данные – максимальная задержка составляет 3 часа. Большая же часть станций имеет задержку от измерения до попадания к нам в районе от 0 до 10 минут. Сейчас активных станций более 20000. (это таких, которые присылают данные не реже одного раза в час и с задержной не более 3х часов.)

http://openweathermap.org/?zoom=7&lat=5711444.10452&lon=3679807.56956&layers=BTFT

Второй слой – данные о текущей погоде в городах.

К сожалению, сами станции чаще всего расположенны вне города и чтобы получить погоду внутри него, необходимо делать интерполяцию измеренных значений. Мы это делаем на основе онлайн данных полученных со станций и на основе глобального метеопрогноза посчитанного по модели GFS.

http://openweathermap.org/?zoom=8&lat=4965418.70857&lon=3012053.69056&layers=BFTT

Откуда мы берем данные?
Три источника
1 метеостанции в аэропортах
2 радиолюбители в сети APRS
3 самодельные погодные станции
4 Чуть позже будет еще несколько.

Как подключить?
Мы написали небольшой класс для OpenLayer.
Подробнее написано тут http://openweathermap.org/example

В принципе, все данные доступны через JSON запросы и их легко интегрировать с любой другой движек.

PS
У нас осталось некоторое сомнение, в правильности выбора метода загрузки слоя – через JSON.
Возможно более правильным было бы генерировать растровые тайлы?
Возможно кто-то может подсказать ситуацию когда тайлы будут удобнее в использовании.

PPS
Текущий хостинг слабоват. … если начнет тормозить просим извенения… мы будем решать это походу дела.

PPPS
Планы … их много … очень много!

В общем… всем кому интересно поучаствовать в проекте пишите. Работы очень много ))) . Но и советам и замечаниям мы тоже будем очень рады!

Ну и конечно - хорошей Вам погоды!

IE 8, Win XP SP3


Сведения об ошибке на веб-странице

Агент пользователя: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
штамп времени: Wed, 16 May 2012 10:14:42 UTC


Сообщение: Предполагается наличие идентификатора, строки или числа
Строка: 74
Символ: 4
Код: 0
URI-код: http://openweathermap.org/js/OWM.OpenLayers.1.1.js


Сообщение: Предполагается наличие объекта
Строка: 141
Символ: 2
Код: 0
URI-код: http://openweathermap.org/


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js


Сообщение: 'this.baseLayer.wrapDateLine' -  есть null или не является объектом
Строка: 473
Символ: 790
Код: 0
URI-код: http://openlayers.org/api/OpenLayers.js



rp5.ru не хотите подключить? Не изучал их условия, поэтому не знаю, можно ли, просто точность прогноза мне у них очень нравится…

Народ!!! Быстро переходите на leaflet - не юзабельно :frowning:
А так сервис отличный, задумка класс, хочется внешнее API нормальное чтобы можно подключить было, но не OL класики…

WinXP SP3, Opera 11.64 1403. Не закрываются окошки (просмотра погоды в городах).

Сервис отличный!
JSON здесь очень даже ок, а у вас даже JSONP поддерживается :slight_smile: Только числа почему-то как строки передаются.

Если никто сделает раньше - я готов сегодня вечером-завтра сделать слой для Leaflet и прикрутить к openstreetmap.ru если никто не против.

Заодно и на openweathermap поставить можно будет его же.

Еще из пожеланий - неплохо бы поддержку многоязычности в названиях в каком-то виде. В первую очередь интересует русский, конечно :slight_smile:

Ну для osm.ru да, только надо нормальным и сам сайт weathermap сделать, OL тяжелый, глючит как … и с мобилы не загрузить…

Ну если слой сделать, то его можно и там и там разместить. И еще где-нибудь по желанию :wink:

Оффтопик

А кстати, почему не юзабельно? У леерсов конечно есть проблемы, особенно с мобильными устройствами, но чтоб прям неюзабельно.

Куча лагов с всплывающими окнами, дизайн из 90-х, вес библы… Мобильные устройства нынче в моде так скажем… потому о них надо думать.

Ну дизайн и вес - обычно просто лениво пересобирать леерсы с теми модулями которые нужны без лишних, писать css еще ленивее. Ок, в целом я вас понял.

Отличный слой! :slight_smile:

классный проект жалко мало инфы по москве. а как сделать метеостанцию с вызодом в интернет?

еще слой с радаров добавить и ветер, будет совсем красота

Ага и облака чтобы!

+1 за rp5.ru - уж больно плохи гисметевы и яндексы всякие

Еще пара мыслей по сервису:

  • В ответе на getrect сервер отдает Content-Type text/html, хотя там по смыслу что-нибудь вроде application/javascript должно быть. У меня работает, но как-то нехорошо обманывать браузер, у кого-то могут возникнуть проблемы из-за этого :slight_smile:

  • Не уверен, что кластеризация точек в браузере - очень хорошая идея. Стоит отдалить карту и браузеру становится очень плохо. Думаю, сервер тоже не радуется? когда отдает почти мегабайт. Так вас даже могут задосить случайно отдалив карту на всю планету. Тупейшее решение - поставить какой-то разумный LIMIT при выборке из базы, в идеале - делать кластеризацию в БД. Кстати, что у вас за БД используется? Могу помочь с какой-нибудь примитивной кластеризацией в ней.

Великолепный проект!
Правда, обнаружил в Ленинградской областе нехватку погодных станций. Их там значительно больше. Например. Планируете пополнять?

(и я не уверен, что копировать его на openstreetmap.ru — хорошая идея, но решение за автором)

Почему? И почему “копировать”?

В названии проекта есть слово open. В чем открытость?