Информер погоды от Яндекса с определение города по IP (готовый код)
Недавно я заинтересовался темой отображения информера от Яндекс.Погоды посетителю сайта в соответствии с его местоположением. Сам информер Яндекса показывает погоду только в том городе, который выбрал веб-мастер сайта. На практике смысла в таком информере мало (описано в предыдущей статье). Следовательно надо саому определять город, в котором находится посетитель, и выводить ему нужный информер. В процессе изучения темы, я пришел к выводу, что кроме GeoLite City от MaxMind и CNGeoIP нормальных world-wide баз IP->Город нет. Однако, для взаимодействия с сервисом Яндекса база GeoLite City не подходит.
Таким образом, пришлось остановиться на базе CNGeoIP. Была куплена версия базы и на ней был построен алгоритм получения кода города для информера по IP посетителя. Написанный скрипт работает тут: http://commontools.net/geoip/ya.w.js. Определяется город по IP пользователя, проводится сравнение с базой Яндекса и выводится id города и страны для информера в виде: var yaCountry=20;var yaCity=26850; Скрипт естественно работает на стороне сервера и выводит только id для JS. А на странице с информером скрипт включается в HTML-код страницы через <script src=”…”>. Далее другой незамысловатый скриптик подставляет переменные в код вызова информера и на картинке отображается погода в городе, в котором находится посетитель сайта. Под ней ссылка на настройки информера, где посетитель сможет выбрать другой город, а информация сохранится в cookies.
Итак, результат трудов доступен в виде оттестированной stable-версии. Страничка получения кода находится здесь: http://commontools.net/geoip/ya.weather.get.html. Это страница для получения кода информера. На ней описано, как код получить и прикрутить к сайту.
Уже сейчас можно получить код и разместить его на своем сайте. Сервис будет открытый и дальше, бесплатный и свободный для использования по назначению.
Посмотреть, как информер работает, можно уже сейчас в моем блоге.
P.S. Для любопытных. Домен commontools.net является исключительно вспомогательным, на нем никогда не были и не будут никакие сайты. Только сервисы для собственного и общественного потребления.
UPD. Стадия бета-тестирования завершена. Уже более 7 месяцев информер успешно работает на множестве сайтов, по этому заявляю о стабильности версии. Обновлений пока не планируется, потому что обновлять-то нечего. Если Яндекс поменяет свой алгоритм, тогда-то и будем обновлять.
Постоянно обновляется база IP. На декабрь 2008 работает ноябрьская версия.

19 июля 2008 в 10:02
Здравствуйте,
Я пробовал вставлять код с Яндекс в форму для обработки, но после мажатия кнопки “Обработать код”, внизу браузера появляется сообщение Error on the page, а в шаге4 так и не появляется никакого результата. Я что-то неправильно делаю или услуга более не доступна?
Благодарю
24 июля 2008 в 21:04
Сервис будет открытый и дальше, бесплатный и свободный для использования по назначению.
…Только вот не работает он, а так все круто!
27 июля 2008 в 00:20
Код заработал! Ура! Спасибо!
10 декабря 2008 в 01:35
Чё-то когда я сайт свой открываю у меня вместо нужного города погоду в Амстердаме показывает!
10 декабря 2008 в 02:27
Приношу свои извинения! Сам виноват, на самом деле хак пашет как танк т-34.