Google weather API y PHP

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'] ?>&deg; 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'] ?>&deg; F - <?= $forecast->high['data'] ?>&deg; 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

Si te gusto comparte ...Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

6 pensamientos en “Google weather API y PHP

  1. iNeedYou
    Google Chrome 10.0.648.204 Windows 7

    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!

    Responder
    1. Alevsk Autor
      Firefox 4.0.1 Mac OS

      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

      Responder
    1. Alevsk Autor
      Google Chrome 13.0.782.112 Mac OS

      Hola claro, tan solo tienes que agregar el parametro hl con el idioma que quieras, el codigo quedaria de la siguiente manera

      $xml = simplexml_load_file('http://www.google.com/ig/api?weather='.$_POST['ciudad'].'&hl=es');
      

      salu2 🙂

      Responder
  2. Alberto
    Google Chrome 15.0.874.121 Windows XP

    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 🙂

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *