Sign in

Зарегистрируйтесь, чтобы стать полноправным участником сообщества Masterpro.ws.

Погода по ip и REST API Sypex Geo

Продолжаем наши эксперименты с Sypex Geo.

St. Petersburg, Russia: View of the Peter-Pavel Fortress in winter

Предлагаю сегодня попробовать обойтись без собственно бинарного файла Sypex Geo, чуть-чуть дописав умный погодный информер, умеющий показать каждому посетителю сайта актуальную именно для его геолокации погоду... и подключив REST API, позволяющий с помощью элементарного запроса по HTTP или HTTPS получить расширенную информацию об ip, используя при этом свежую базу данных Sypex Geo Max. Сказано - сделано.

 

 

Собственно, переделать предстоит совсем немного... REST API Sypex Geo умеет отдавать не только XML, но и JSON; разберем для начала XML, в контексте поставленной несложной задачки этот выбор значения не имеет. Нам всего-то и придется, в общем, что изменить несколько строк в начале файла; эти:

 


<?php
$ip = $_SERVER['REMOTE_ADDR'];
include("SxGeo.php");
$SxGeo = new SxGeo('SxGeoCity.dat');
$city = $SxGeo->get($ip);
$loc_array = array($city['city']['lat'],$city['city']['lon']);

 

заменим вот этими:

 


<?php
$ip = $_SERVER['REMOTE_ADDR'];
$url = 'http://api.sypexgeo.net/xml/'. $ip .'';
$xml = simplexml_load_string(file_get_contents($url));
$loc_array = array($xml->ip->city->lat,$xml->ip->city->lon);

 

Увидеть код полностью, как и всегда, возможно на форуме. Welcome.

 

Начиная с версии 0.97, погодный Joomla-модуль jWeather by ip способен использовать, наряду с бинарным файлом SypexGeo.dat, также и REST API SypexGeo. Просто выберите в административной панели модуля нужную опцию. 

 

А в качестве профита от свершенного мы с вами получаем бесплатный доступ к самой свежей базе данных (БД Sypex Geo, предназначенная для свободной загрузки, "опаздывает" месяца на два), подробности на страничке разработчика. Нет более необходимости ежемесячно загружать новый файл Sypex Geo, а из REST API Sypex Geo и API WorldWeatherOnline можно, при желании, получить гораздо больше информации, чем показывает демка этой страницы.

Уверен, вы легко справитесь. :)

 

Оставить комментарий

Добавьте ваш комментарий