Берем погоду у Яндекса в xml формате
Задача: получить погоду на сегодня и на завтра.
Жизнь замечательных грибов
Задача: получить погоду на сегодня и на завтра.
К сожалению. Но есть другой путь: использовать промежуточно wget. Например чтото типа такой конструкции:
1 2 3 |
$url="https://geocode-maps.yandex.ru/1.x/?geocode=$address&format=json"; `wget '$url' --no-check-certificate -O $path/jobs/coor.log`; $fh = fopen("coor.log", 'r'); |
Возможно можно и по другому. Например на UBUNTU https ссылки отлично открывались fopen, а на freebsd — ну никак. Потому, что-бы было универсальное решение, сделал такой костыль.
Дано: координаты точки, координаты круга, его радиус. Нужно определить попадает ли точка в круг.
1 2 3 4 |
//$Xc,Yc - координаты круга $radius - его радиус //$stx,$sty - координаты точки $d1=sqrt(($Xc-$stx)*($Xc-$stx)+($Yc-$sty)*($Yc-$sty)); if (($d1<=$radius) or ($d2<=$radius)){echo "Точка в круге!";}; |
А началось всё с того, что неожиданоо в скрипте после определенного количсетва вызовов imagecolorallocate, он стал возвращать false. С полчаса убил на поиски ошибки в коде, искал не верные значения и т.п. Нарыл! Оказывается если изображение создается при помощи imagecreate, то функция imagecolorallocate может вызываться в пределах одного ресурса изображения не более 256 раз. Чтобы обойти это ограничение — пользуйтесь imagecreatetruecolor
Оказывается довольно таки просто реализовать получение географических координат точки по точному адресу обьекта. У меня вышел такой код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$url="https://geocode-maps.yandex.ru/1.x/?geocode=$address&format=json"; $fh = fopen($url, 'r'); $code = ''; while(!feof($fh)) $code .= fread($fh, 1024); fclose($fh); $res=json_decode($code); foreach ($res as $key=>$value) { foreach ($value as $key=>$value1) { foreach ($value1 as $key=>$value2) { if ($key=="featureMember"){ foreach ($value2 as $key=>$value3) { foreach ($value3 as $key=>$value4) { foreach ($value4 as $key=>$value5) { if ($key=="Point"){ foreach ($value5 as $key=>$value6) { $coor=$value6; }; }; }; }; }; }; }; }; }; |