OpenWeatherMap — получаем прогноз погоды по API

OpenWeatherMap — получаем прогноз погоды по API

OpenWeatherMap — онлайн сервис, который предоставляет платный (есть функционально ограниченная бесплатная версия) API для доступа к данным о текущей погоде, прогнозам, для web-сервисов и мобильных приложений. Архивные данные доступны только на коммерческой основе. В качестве источника данных используются официальные метеорологические службы, данные из метеостанций аэропортов, и данные с частных метеостанций.

Сервис OpenWeatherMap получает данные от профессиональных и частных погодных станций. На сегодня таких станций более 40 тысяч. Большая часть из них это профессиональные станции, которые установлены в аэропортах и крупных городах мира. Но также не менее важным для сервиса являются данные от непрофессиональных станций, которые собирают и устанавливают любители везде, где это возможно. Уровень любительских станции сейчас очень высокий, точность и, главное, оперативность передаваемой информации также находятся на очень высоком уровне. И чем больше таких станций будет подключено к OWM, тем выше будет точность как текущей информации о погоде, так и прогнозов.

API OpenWeatherMap

Сервис предоставляет бесплатный API ко всем данным о погоде, к их истории, прогнозам и всему многообразию погодных карт. 
API есть двух видов — JSON для получения данных и Tile / WMS для картографии.

Используя JSON можно получать:
— Данные о погоде в более чем 200 тысячах городов. При этом города не нужно выбирать из жестко ограниченного списка, их можно найти на карте и увидеть оценочные прогнозы погоды как в самом городе, так и в ближайших регионах. 
— Данные о текущей погоде в выбранной точке по координатам lat/lon
— Прогноз на 5 или 16 дней в компактной или в полной форме
— «Сырые» данные, полученные от метеостанций
— Данные о погоде за прошедшие периоды

Для работы с API необходимо зарегистрироваться на сайте и получить ключ. С регистрацией на территории Российской Федерации возникают проблемы, потому что OpenWeatherMap не ориентирована на нашу страну, в связи с тем, что у нас необходимо лицензирование на данный вид деятельности. Видимо провайдеры ограничивают доступ к некоторым разделам сервиса. Используйте прокси для регистрации.

После того, как вы зарегистрируетесь и получите API ключ, можно приступать к работе с API.

Простой способ получения текущей погоды

Давайте посмотрим как легко получить текущую погоду в Санкт-Петербурге и вывести ее на сайт. Для работы мы воспользуемся языком программирования PHP.

<?
$url = "https://api.openweathermap.org/data/2.5/weather?id=498817&amp;units=metric&amp;appid=YOUR_API_KEY&amp;lang=ru";

$contents = file_get_contents($url);
$weather=json_decode($contents);

$temp_now=$weather->main->temp."°C";
$icon=$weather->weather[0]->icon.".png";
$today = date("j.m.Y, H:i");
$cityname = $weather->name;

echo $today."<br />".
$cityname."<br />".
$temp_now."<br />
<img src='./icons/" . $icon ."' class='condition'/>";
?>

Используя код выше, мы получили информацию о погоде в Санкт-Петербурге с сайта OpenWeatherMap и вывели на сайт текущую дату и время, названия города, текущую температуру и изображение погоды. Изображение погоды мы используем свои, но можно использовать изображения самого сервиса.

Это пример вывода лишь части информации о погоде. Вы можете вывести больше информации и красиво все оформить. Один из вариантов можно посмотреть по ссылке ниже.

Пример работы с API OpenWeatherMap можно посмотреть здесь: Погода в Санкт-Петербурге сейчас