Погода по широте и долготе

07/04/2010, автор dimaz, категории Google maps

Имеем сайт использующий google maps. Нужно прикрутить погоду, чтобы она определялась по широте и долготе центра карты.
Нашел сервис, который выдает xml с подробной информацией о погоде по широте и долготе. Например http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=55.75200000000000000,37.6160000000000. Остается делать запросы =).

Пишем функцию, которая будет у нас вытаскивать нужные данные из принятого xml.

function weather ($latitude, $longitude) {
$xml = file_get_contents('http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query='.$latitude.','.$longitude);
$data['weather'] = Help::xml_to_array($xml);//xml в массив, или можете разбирать xml как вам будет удобно =)
//берем из массива то что нам нужно
$weather = array(
"local_time"=>$data['weather']['current_observation']['local_time'],
"temp_c"=>$data['weather']['current_observation']['temp_c'],
"weather"=>$data['weather']['current_observation']['weather']
);
echo '
Local time '.$weather['local_time'].'
/ Current weather: '.$weather['temp_c'].' ºC, '.$weather['weather'].'

';
}

На сайт все это дело будем выводить с помощью jquery. Пишем функцию, которую нужно будет вызывать при изменении координат на карте.

function getWeather (lat, lng) {
$.ajax({
type: "POST",
url: "./?weather/"+lat+'/'+lng,
success: function(data){
$("#weather").html(data);
},
error: function(error){
alert('requesting error!');
}
});
}

Вывод на карте
погода по координатам
Ну вообщем-то все. Конечно код не идеальный, оптимизировать есть что.

Читать похожие статьи:

Теги:  

Комментарии закрыты.