Вторник, 06 сентября 2016 14:05

The Marine Weather API. World Weather Online

Оцените материал
(7 голосов)

Продолжаем рассказ о возможностях WorldWeatherOnline; материал является продолжением статьи Погода по ip на Яндекс-картах: step-by-step. Что бы там еще получить, используя наш триальный Premium API? Аннотация звучит очень даже заманчиво: Our Premium Local, Marine, Ski, Time zone, Location Search and Past Weather API for 60 days. Once ready to upgrade simply contact us for a price quote.

 

Разработка сайтов

 

Хм, сразу скажу, что получить температуру воды в Алуште у меня не вышло: вероятно, WorldWeatherOnline не располагает подобной информацией. Поэтому демка получилась вот такой, как вы видите на этой страничке; актуальной погодной информации для Нью-Йорка суждено отображаться в этом блоге пару месяцев, после чего, по истечении срока триала, заменю ее картинкой... вот как-то так, for example: The Premium Marine Weather REST API method allows you to access today's live marine/sailing weather forecast for a given longitude and latitude, as well as up to 7 days of forecast. The Marine Weather API returns weather elements such as temperature, precipitation (rainfall), weather description, weather icon, wind speed, Tide data, significant wave height, swell height, swell direction and swell period.

 

Мой прогноз не сбылся, API WorldWeatherOnline прижился в блоге. Скрипт заменен joomla-модулем, скачать который возможно отсюда: предоставляет удобный доступ не только к Marine Weather API World Weather Online, но и к ряду иных API, подробнее по ссылке.

 

В плане ответа на поступившие вопросы - а какие еще данные возможно "вытащить" через API WorldWeatherOnline? - попробую ответить следующим образом... пролистайте, пожалуйста, короткий материал Форматируем XML WorldWeatherOnline. HuPHP в блоге, и воспользуйтесь для показанного далее кода демки следующей конструкцией:

 

include('../../../HuPHP/autoload.php');
dump::a($xml);

 

, что позволит увидеть удобно отформатированную структуру xml и обратиться к любому из его достаточно пространных данных; для построения демки же использован следующий код, максимально упрощенный от предыдущих наших с вами ревизий: в данном случае мы не используем SypexGeo, изначально привязав географические координаты Нью-Йорка.

P.S. Памятка спецом для вебмастеров-копипастеров: не забудьте вместо звездочек вписать ваш Premium API Key! иначе не гарантирую, что заработает.

 

<?php
$premiumurl = sprintf('http://api.worldweatheronline.com/premium/v1/marine.ashx?key=**************************&q=40.71,-74.01');
$xml = simplexml_load_file($premiumurl);
?>
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<div class="yandex_map" id="yandex_map">
<script type="text/javascript">
var myMap;
ymaps.ready(init);
function init () {
var myMap = new ymaps.Map("map", {
center: [40.71,-74.01],
zoom: 8,
controls: ['zoomControl','fullscreenControl']
});
myPlacemark = new ymaps.Placemark([40.71,-74.01], {
balloonContent: '<? echo ($xml->weather->date); echo "<br>";echo 'Темп. воздуха в течение дня ' . ($xml->weather->mintempC);echo ' - ' . ($xml->weather->maxtempC) . ' °C';echo "<br>";echo 'Температура воды '. ($xml->weather->hourly->waterTemp_C). ' °C';echo "<br>"; echo 'Индекс тепла (Heat index) ' . ($xml->weather->hourly->HeatIndexC) . ' °C';echo "<br>"; echo 'Волны (Swell wave height in metres) '. ($xml->weather->hourly->swellHeight_m) . ' м'; echo "<br>";echo ($xml->weather->hourly->weatherDesc); ?>'});
myMap.geoObjects
.add(myPlacemark);
myPlacemark.balloon.open();
}
</script>
<div id="map" style="width:auto; height:350px"></div>
</div>
<div id="map"></div>

Последнее изменениеВторник, 03 декабря 2019 02:53

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

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

Разработка web-проектов