<?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>Segmentation Fault! &#187; Api&#8217;s de Google</title>
	<atom:link href="http://www.segmentationfault.es/category/programacion/apis-de-google/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.segmentationfault.es</link>
	<description>La formulación de un problema es más importante que su solución.</description>
	<lastBuildDate>Tue, 29 Jun 2010 19:45:33 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Google Maps, creación de mapas &#8211; Parte II</title>
		<link>http://www.segmentationfault.es/2009/04/google-maps-parte-2/</link>
		<comments>http://www.segmentationfault.es/2009/04/google-maps-parte-2/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 08:00:37 +0000</pubDate>
		<dc:creator>Christopher Vallés</dc:creator>
				<category><![CDATA[Api's de Google]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mapas]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.es/?p=536</guid>
		<description><![CDATA[En esta nueva parte de creación de mapas vamos a incorporar a nuestro mapa la posibilidad de añadir marcadores al mapa y además cada marcador dispondrá de un globo de información extendida.]]></description>
			<content:encoded><![CDATA[<p>En esta nueva parte de creación de mapas vamos a incorporar a nuestro mapa la posibilidad de añadir marcadores al mapa y además cada marcador dispondrá de un globo de información extendida. Nos basaremos en el código resultante de la <a title="Google Maps, creación de mapas - Parte I" href="http://www.segmentationfault.es/2009/04/creacion-mapas-parte-1/" target="_blank">primera parte</a> así que si no la has léido te recomiendo que lo hagas.</p>
<p>El sistema que vamos a implementar es estático así que tendremos que meter manualmente en el código las direcciones de los marcadores. Google nos ofrece en su API la clase <em>GMarker</em> que representa un marcador en el mapa, para posicionar el marcador debemos especificar las coordenadas en las que queremos que aparezca.<br />
Para convertir una dirección a sus coordenadas tenemos la clase <em>GClientGeocoder</em>, esta clase tiene un método llamado <em>getLatLng</em> al que pasamos una dirección y una función que hará de <em>callback</em> y será dónde generemos el marcador.</p>
<p>Primero creamos el objeto GClientGeocoder</p>
<pre class="brush: jscript; title: ; toolbar: false; notranslate">
geocoder = new GClientGeocoder();
</pre>
<p>Ahora veremos el código que crea un marcador, lo asigna al mapa y añade un globo de información con la dirección:</p>
<pre class="brush: jscript; title: ; toolbar: false; notranslate">
var marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(DIRECCIÓN);
</pre>
<p>Dónde DIRECCIÓN es la dirección que estamos geolocalizando. Ahora vamos a ver todo el código completo, evidentemente realizaremos algunos ajustes como introducir la dirección en una variable para trabajar con ella además introduciremos alguna que otra comprobación rutinaria.</p>
<p>El código quedaría así:</p>
<pre class="brush: jscript; title: ; toolbar: false; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
 &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;es&quot; lang=&quot;es&quot;&gt;
&lt;head&gt;
 &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;/&gt;

 &lt;title&gt;Primeros pasos con Google Maps&lt;/title&gt;

 &lt;script src=&quot;http://maps.google.com/maps?file=api&amp;v=2&amp;key=TU-CLAVE-API&quot; type=&quot;text/javascript&quot;&gt;
 &lt;/script&gt;

 &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
   function initialize() {
     var map = new GMap2(document.getElementById(&quot;map_canvas&quot;));
     map.setCenter(new GLatLng(41.38, 2.18), 13);

     var address = &quot;La Rambla, 08002, Barcelona&quot;;
     showAddress(address, map);
 }

 function showAddress(address, map) {
   geocoder = new GClientGeocoder();
     if (geocoder) {
       geocoder.getLatLng(address, function(point) {
       if (!point) {
         alert(&quot;No se ha podido geolocalizar la dirección&quot; + address);
       } else {
         map.setCenter(point, 13);
         var marker = new GMarker(point);
         map.addOverlay(marker);
         marker.openInfoWindowHtml(address);
       }
     });
   }
 }
 &lt;/script&gt;

&lt;/head&gt;

&lt;body onload=&quot;initialize()&quot; onunload=&quot;GUnload()&quot;&gt;
&lt;div id=&quot;map_canvas&quot; style=&quot;width: 500px; height: 300px&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>El resultado de este script lo podéis ver <a title="Ejemplo 2 Google Maps" rel="shadowbox;player=iframe;width=500;height=300;" href="http://www.segmentationfault.es/wp-content/2009/04/gmaps_ej2.html" target="_blank">aquí</a>.</p>
<p>Espero vuestras dudas/comentarios!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.es/2009/04/google-maps-parte-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Maps, creación de mapas &#8211; Parte I</title>
		<link>http://www.segmentationfault.es/2009/04/creacion-mapas-parte-1/</link>
		<comments>http://www.segmentationfault.es/2009/04/creacion-mapas-parte-1/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 08:00:55 +0000</pubDate>
		<dc:creator>Christopher Vallés</dc:creator>
				<category><![CDATA[Api's de Google]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mapas]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.segmentationfault.es/?p=217</guid>
		<description><![CDATA[Google Maps es la aplicación de mapas online por excelencia y gracias a la gente de Google tenemos toda la API disponible para usarla a nuestro antojo en esta serie de entregas dónde empezaremos creando un mapa centrado en Barcelona y poco a poco iremos añadiendo funcionalidades.]]></description>
			<content:encoded><![CDATA[<p>Google Maps es la aplicación de mapas online por excelencia y gracias a la gente de Google tenemos toda la API disponible para usarla a nuestro antojo (o no) siempre y cuándo respetemos la política de uso.</p>
<p>En esta primera parte vamos a crear un script que simplemente mostrará un mapa centrado en la ciudad de Barcelona, podréis pensar que esto es demasiado sencillo pero esto será la base para las próximas entregas dónde la cosa se irá complicando cada vez más.</p>
<p>Antes de poder utilizar la API hay que iniciar sesión con alguna cuenta de google, después <a href="http://code.google.com/intl/es-ES/apis/maps/">darse de alta</a> en el servicio de API de Google Maps y especificar la url dónde se va a utilizar la API, en caso de que trabajéis en local deberéis poner algo como <em>http://localhost</em>. Una vez rellenado el formulario Google nos proporcionará una clave de API que es lo que nos va a identificar a la hora de realizar las llamadas.</p>
<p>Lo primero que hay que hacer para empezar a utilizar la API es incluirla en nuestro script especificando nuestra clave de la siguiente manera:</p>
<pre class="brush: jscript; title: ; toolbar: false; notranslate">

&lt;script src=&quot;http://maps.google.com/maps?file=api&amp;v=2&amp;key=TU-CLAVE-API&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
</pre>
<p>Una vez realizada la llamada a la API debemos incluir algún elemento dónde mostrar el mapa, en nuestro caso seguiremos las indicaciones de la documentación oficial y pondremos un <em>div</em> dónde aparecerá el mapa una vez lo carguemos.</p>
<pre class="brush: jscript; title: ; toolbar: false; notranslate">
&lt;div id=&quot;map_canvas&quot; style=&quot;width: 500px; height: 300px&quot;&gt;&lt;/div&gt;
</pre>
<p>Ahora ya tenemos todos los elementos básicos para visualizar el mapa y solo nos queda decirle a la API dónde tiene que presentar el contenido, para ello utilizaremos las clase Javascript GMaps2 que es la encargada de representar los mapas. Al crear una instancia de la clase GMaps2 es necesario especificar un nodo DOM como contenedor del mapa (en nuestro caso el elemento <em>div</em>) y lo obtendremos mediante el método <em>document.getElementById()</em>.</p>
<pre class="brush: jscript; title: ; toolbar: false; notranslate">
var map = new GMap2(document.getElementById(&quot;map_canvas&quot;));
</pre>
<p>Este trozo de código crear una variable <em>map</em> que representará nuestro mapa y asigna un objeto GMap2. La función GMap() es el constructor del objeto y como utilizamos Javascript los parámetros los podemos establecer luego ya que los tipos de datos son dinámicos.</p>
<p>Una vez realizado estos pasos solo nos queda inicializar el mapa, esto se hace mediante una llamada al método <em>setCenter()</em> pasandole obligatoriamente una coordenada <em>GLatLng</em> y un nivel de zoom (las coordenadas de Barcelona son <strong>41.387885</strong> y <strong>2.169886</strong>). Este paso es obligatorio hacerlo antes de realizar cualquier operación sobre el mapa.</p>
<pre class="brush: jscript; title: ; toolbar: false; notranslate">
map.setCenter(new GLatLng(41.387885, 2.169886), 13);
</pre>
<p>Estos dos trozos de código hay que incluirlos en una función que llamaremos <em>initialize()</em> y que será invocada en el evento <em>onload</em> de la página.</p>
<pre class="brush: jscript; title: ; toolbar: false; notranslate">
function initialize() {
var map = new GMap2(document.getElementById(&quot;map_canvas&quot;));
map.setCenter(new GLatLng(41.387885, 2.169886), 13);
}
</pre>
<p>Para controlar la manera en que se carga el mapa y cuándo lo hace debemos incluir una llamada al método <em>initialize()</em> en el evento <em>onload<strong> </strong></em>de la página y otra al método <em>GUnload()</em> en el evento <em>onunload</em> para evitar fallos de memoria.</p>
<pre class="brush: xml; title: ; toolbar: false; notranslate">
&lt;body onload=&quot;initialize()&quot; onunload=&quot;GUnload()&quot;&gt;
</pre>
<p>El código quedaría tal que así:</p>
<pre class="brush: jscript; html-script: true; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;es&quot; lang=&quot;es&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;/&gt;

&lt;title&gt;Primeros pasos con Google Maps&lt;/title&gt;

&lt;script src=&quot;http://maps.google.com/maps?file=api&amp;v=2&amp;key=TU-CLAVE-API&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
function initialize() {
var map = new GMap2(document.getElementById(&quot;map_canvas&quot;));
map.setCenter(new GLatLng(41.38, 2.18), 13);
}
&lt;/script&gt;

&lt;/head&gt;

&lt;body onload=&quot;initialize()&quot; onunload=&quot;GUnload()&quot;&gt;
&lt;div id=&quot;map_canvas&quot; style=&quot;width: 500px; height: 300px&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>El resultado de este script lo podéis ver <a title="Ejemplo 1 Google Maps" rel="shadowbox;player=iframe;width=500;height=300;" href="http://www.segmentationfault.es/wp-content/2009/04/gmaps_ej1.html" target="_blank">aquí</a></p>
<p>Si quieres continuar con este tutorial <a href="http://www.segmentationfault.es/2009/04/google-maps-parte-2/" target="_self">aquí</a> tienes la parte dos</p>
<p>Espero vuestras dudas/comentarios!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.segmentationfault.es/2009/04/creacion-mapas-parte-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
