Hace un par de días un internauta me pregunto sobre si era posible hacer una web que mostrar las ciudad mas importantes del país así como el clima “actual” de la región, haciendo uso de servicios ya existentes que presten este tipo de información, pues me puse a investigar y encontré una aplicación muy buena de Google llamada Google Weather, la cual tiene a disposición de los programadores una API muy bien documentada y fácil de usar e implementar.
Hace rato que tenia un tiempo libre me puse a ver lo que se podia hacer e hice un pequeño ejemplo, un formulario donde escribes el nombre de una ciudad, Ej. Guadalajara, Morelia, Queretaro y haciendo uso de Google Weather te muestra el clima de hoy así como el clima de los siguientes 4 días :), la verdad es muy fácil de usar, a continuación les dejo el código.
<? if (empty($_POST['ciudad'])) { ?> <form action="weather.php" method="post"><input type="hidden" name="phpMyAdmin" value="3068b5491f703bc27d2a43326f772556" /> <input name="ciudad" type="text" id="ciudad" /> <input type="submit" value="Enviar" /> </form> <?php } else { $xml = simplexml_load_file('http://www.google.com/ig/api?weather='.$_POST['ciudad']); $information = $xml->xpath("/xml_api_reply/weather/forecast_information"); $current = $xml->xpath("/xml_api_reply/weather/current_conditions"); $forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions"); ?> <html> <head> <title>Google Weather API</title> <style type="text/css" media="screen"> body { font-family:"Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif; font-size:12px; color:#4D4D4D; } a { color:#4D4D4D; } h2 { font-size:14px; } .weather { background:#EEF2F6; padding:4px; margin-bottom:2px; width:400px; overflow:hidden; } .weather img { vertical-align:middle; float:left; margin-right:4px; } </style> </head> <body> <h1><?= print $information[0]->city['data']; ?></h1> <h2>El clima de hoy</h2> <div class="weather"> <img src="<?= 'http://www.google.com' . $current[0]->icon['data']?>" alt="weather"?> <span class="condition"> <?= $current[0]->temp_f['data'] ?>° F, <?= $current[0]->condition['data'] ?> </span> </div> <h2>Forecast</h2> <? foreach ($forecast_list as $forecast) : ?> <div class="weather"> <img src="<?= 'http://www.google.com' . $forecast->icon['data']?>" alt="weather"?> <div><?= $forecast->day_of_week['data']; ?></div> <span class="condition"> <?= $forecast->low['data'] ?>° F - <?= $forecast->high['data'] ?>° F, <?= $forecast->condition['data'] ?> </span> </div> <? endforeach ?> ... <h2><a href="weather.php?phpMyAdmin=3068b5491f703bc27d2a43326f772556">Regresar <<</a></h2> </body> </html> <?php } ?>
Si no aparece correctamente el codigo aqui en el blog (como es de costumbre) aca les deje el codigo en copypastecode.com … http://www.copypastecode.com/65593/
salu2
jaja estaba navegando por las distintas categorias de tu blog y me encontré con esto, justo esa misma pregunta me la estaba planteando yo hace unos dias en mi mente jaja! Un saludo desde España!
AL PONER UNA CIUDAD CON ESPACIOS , PAIS …. ERROR
EJ: LOS ANGELES, CHILE
BYE
Hola, no habia tenido oportunidad de probar ciudades con espacio, de todas formas gracias por reportarlo, voy a ver una manera de solucionar eso 🙂
salu2
Estimado,
alguna forma de poder obtener los resultados en español?
Saludos,
Nicolás
Hola claro, tan solo tienes que agregar el parametro hl con el idioma que quieras, el codigo quedaria de la siguiente manera
salu2 🙂
Hola, quiero poner en mi web de http://www.gratisfutbol.org el script este tan guapo, el problema es que no se php (estoy iniciando un ciclo superior de informatica y no lo hemos dado) y me gustaria tenerlo en castellano, no entiendo lo que pones de que el código quedaría así, puedes especificar un poco como hacerlo? es que soy cortito.. lo siento.. jejeje muchisimas gracias de antemano 🙂