<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dr. Danguer y Mr. Daniel &#187; Clima</title>
	<atom:link href="http://vida.danguer.com/tag/clima/feed/" rel="self" type="application/rss+xml" />
	<link>http://vida.danguer.com</link>
	<description>Un blog más de un freelancer</description>
	<lastBuildDate>Sun, 31 Jan 2010 00:14:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ejemplo de API de Yahoo/Weather.com</title>
		<link>http://vida.danguer.com/2008/09/27/ejemplo-de-api-de-yahoo-weather/</link>
		<comments>http://vida.danguer.com/2008/09/27/ejemplo-de-api-de-yahoo-weather/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 00:58:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Clima]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://vida.danguer.com/?p=70</guid>
		<description><![CDATA[<p>La pagina de Yahoo developers tiene el API de Weather.com (que compro hace tiempo), Weather.com ya tenia un xml que ha simplificado Yahoo.com</p>
<p>Esta API nos permite obtener informacion del clima de practicamente cualquier lugar del mundo y sin duda es muy utilizada para varios widgets dentro de páginas o como widgets de escritorio.</p>
<p>Básicamente para usar esta API se hace una llamada a la siguiente dirección:<br />
<code>http://weather.yahooapis.com/forecastrss?p=CODIGO&#38;u=c</code></p>
<p>Donde código puede ser un Código Postal de Estados Unidos, o un ID de una ciudad en el mundo, el API de <a href="http://developer.yahoo.com/weather/" target="_blank">yahoo developers</a>, dice brevemente que para conseguir este ID se necesita ir a la página de Yahoo Weather y copiar de la URL el código de la ciudad.</p>
<p>Esto es realmente muy malo ya que lo que se busca es optimizar, pero ahi entra el API viejo de Weather.com, donde podemos enviarle una cadena con la ciudad a buscar y nos regresará diversos resultados que pueden concordar con el código de la ciudad y su nombre &#8220;legible&#8221;, la url es: <br />
<code>http://xoap.weather.com/weather/search/search?where=NOMBRE_CIUDAD</code></p>
<p>Por ejemplo para buscar la ciudad de Puebla, Mexico haremos:<br />
<a href="http://xoap.weather.com/weather/search/search?where=Puebla">http://xoap.weather.com/weather/search/search?where=Puebla</a></p>
<p>El resultado nos dará como resultado:</p>
<pre name="code" class="xml">&#60;!-- This document is intended only for use by authorized licensees of The  --&#62;
&#60;!-- Weather Channel. Unauthorized use is prohibited.  Copyright 1995-2008, --&#62;
&#60;!-- The Weather Channel Interactive, Inc.  All Rights Reserved.            --&#62;
&#60;search ver="2.0"&#62;
  &#60;loc id="MXPA0070" type="1"&#62;Puebla, Mexico&#60;/loc&#62;
&#60;/search&#62;</pre>
<p> </p>
<p>Que vemos que el elemento <code>loc</code> provee el ID de la ciudad y el nombre legible; ahora si podemos contruir la nueva URL que será:</p>
<p><a title="Clima de Puebla - RSS" href="http://weather.yahooapis.com/forecastrss?p=MXPA0070&#38;u=c" target="_blank">http://weather.yahooapis.com/forecastrss?p=MXPA0070&#38;u=c</a></p>
<p>El resultado es un documento RSS con un nombre de espacio (namespace) de <code>yweather</code>, la página contiene mucha información, mucha de ella redundante, pero lo que más nos importa es lo que tiene ese nombre de espacios como:</p>
<pre name="code" class="xml">&#60;yweather:condition  text="Partly Cloudy"  code="30"  temp="19"  date="Sat, 27 Sep 2008 5:49 pm CDT" /&#62;
&#60;yweather:location city="Puebla" region=""   country="MX"/&#62;
&#60;yweather:units temperature="C" distance="km" pressure="mb" speed="kph"/&#62;&#8230;</pre>]]></description>
			<content:encoded><![CDATA[<p>La pagina de Yahoo developers tiene el API de Weather.com (que compro hace tiempo), Weather.com ya tenia un xml que ha simplificado Yahoo.com</p>
<p>Esta API nos permite obtener informacion del clima de practicamente cualquier lugar del mundo y sin duda es muy utilizada para varios widgets dentro de páginas o como widgets de escritorio.</p>
<p>Básicamente para usar esta API se hace una llamada a la siguiente dirección:<br />
<code>http://weather.yahooapis.com/forecastrss?p=CODIGO&amp;u=c</code></p>
<p>Donde código puede ser un Código Postal de Estados Unidos, o un ID de una ciudad en el mundo, el API de <a href="http://developer.yahoo.com/weather/" target="_blank">yahoo developers</a>, dice brevemente que para conseguir este ID se necesita ir a la página de Yahoo Weather y copiar de la URL el código de la ciudad.</p>
<p>Esto es realmente muy malo ya que lo que se busca es optimizar, pero ahi entra el API viejo de Weather.com, donde podemos enviarle una cadena con la ciudad a buscar y nos regresará diversos resultados que pueden concordar con el código de la ciudad y su nombre &#8220;legible&#8221;, la url es: <br />
<code>http://xoap.weather.com/weather/search/search?where=NOMBRE_CIUDAD</code></p>
<p>Por ejemplo para buscar la ciudad de Puebla, Mexico haremos:<br />
<a href="http://xoap.weather.com/weather/search/search?where=Puebla">http://xoap.weather.com/weather/search/search?where=Puebla</a></p>
<p>El resultado nos dará como resultado:</p>
<pre name="code" class="xml">&lt;!-- This document is intended only for use by authorized licensees of The  --&gt;
&lt;!-- Weather Channel. Unauthorized use is prohibited.  Copyright 1995-2008, --&gt;
&lt;!-- The Weather Channel Interactive, Inc.  All Rights Reserved.            --&gt;
&lt;search ver="2.0"&gt;
  &lt;loc id="MXPA0070" type="1"&gt;Puebla, Mexico&lt;/loc&gt;
&lt;/search&gt;</pre>
<p> </p>
<p>Que vemos que el elemento <code>loc</code> provee el ID de la ciudad y el nombre legible; ahora si podemos contruir la nueva URL que será:</p>
<p><a title="Clima de Puebla - RSS" href="http://weather.yahooapis.com/forecastrss?p=MXPA0070&amp;u=c" target="_blank">http://weather.yahooapis.com/forecastrss?p=MXPA0070&amp;u=c</a></p>
<p>El resultado es un documento RSS con un nombre de espacio (namespace) de <code>yweather</code>, la página contiene mucha información, mucha de ella redundante, pero lo que más nos importa es lo que tiene ese nombre de espacios como:</p>
<pre name="code" class="xml">&lt;yweather:condition  text="Partly Cloudy"  code="30"  temp="19"  date="Sat, 27 Sep 2008 5:49 pm CDT" /&gt;
&lt;yweather:location city="Puebla" region=""   country="MX"/&gt;
&lt;yweather:units temperature="C" distance="km" pressure="mb" speed="kph"/&gt;
&lt;yweather:wind chill="19"   direction="150"   speed="11.27" /&gt;
&lt;yweather:atmosphere humidity="60"  visibility="1607.69"  pressure="0"  rising="0" /&gt;
&lt;yweather:astronomy sunrise="7:23 am"   sunset="7:24 pm"/&gt;</pre>
<p>El primero es lo más importante (<code>condition</code>), nos mostrará la información del clima, el código de estado (<code>code</code>), la temperatura (<code>temp</code>) y la fecha de cuando se obtuvo la información.<br />
El segundo (<code>location</code>) nos dice información del lugar.<br />
El tercero (<code>units</code>) nos dice en qué unidades está expresada la información, como hemos solicitado en formato de grados Centigrados el sistema muestra la información en sistema métrico.<br />
El cuarto (<code>wind</code>) nos da información del viento.<br />
El quinto (<code>atmosphere</code>) nos da información del medio ambiente en cuanto a humedad, visibilidad, etc<br />
El último (<code>astronomy</code>) nos da una breve información de cuando el sol aparece y se oculta en el horizonte.</p>
<p>La página también incluye una liga a la imagen del estado, yo he decidido utilizar las que provee <a href="http://www.weather.com" target="_blank">Weather.com</a></p>
<p>El nombre del estado no lo usaremos ya que está en inglés, por lo que hice una traducción del estado al nombre correspondiente, los códigos se pueden ver aqui:<br />
<a href="http://developer.yahoo.com/weather/#codes">http://developer.yahoo.com/weather/#codes</a></p>
<p> </p>
<p>Aqui tenemos un ejemplo ensamblado en PHP y Javascript:<br />
<a href="http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Clima/">http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Clima/</a></p>
<p> </p>
<p>Básicamente tiene tres partes, la primera nos permite introducir un nombre y obtener el ID de los lugares, obviamente está en ingles por lo que se tienen que hacer busquedas como &#8220;Mexico City&#8221; para encontrar la información del clima del D.F.</p>
<p>La segunda parte nos permite seleccionar de las distintas opciones de los lugares el que queramos ver su clima, después de seleccionarlo le damos click a &#8220;Obtener clima&#8221; y obtendremos el clima <img src='http://vida.danguer.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>El sistema muestra solamente el Estado (en español), la temperatura y la fecha con la imagen correspondiente del estado; en el ejemplo no obtuve información extra como información del viento o del medio ambiente, pero en base al ejemplo se puede extender fácilmente.</p>
<p> </p>
<p>Descargar el código fuente del ejemplo: <br />
<a href="http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Clima.tar.gz" target="_blank">http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Clima.tar.gz</a></p>
<p> </p>
<p><strong>Más información:</strong></p>
<ul>
<li>Sitio oficial de la API de Yahoo Weather:<br />
<a href="http://developer.yahoo.com/weather/" target="_blank">http://developer.yahoo.com/weather/</a></li>
<li>API &#8220;vieja&#8221; de Weather.com (son en si iguales pero tienen diferente forma de ser llamadas y obtener resultados):<br />
<a href="http://www.weather.com/services/xmloap.html">http://www.weather.com/services/xmloap.html</a> </li>
</ul>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://vida.danguer.com/2008/09/27/ejemplo-de-api-de-yahoo-weather/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
