<?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>mobile development &#187; Google Maps</title>
	<atom:link href="http://mobile.davidocs.com/tag/google-maps/feed/" rel="self" type="application/rss+xml" />
	<link>http://mobile.davidocs.com</link>
	<description>Building Android and iPhone applications from scratch</description>
	<lastBuildDate>Wed, 30 Sep 2009 08:54:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
<link>http://mobile.davidocs.com</link>
<url>http://mobile.davidocs.com/wp-content/mbp-favicon/android-wallpaper4_1024x768.png</url>
<title>mobile development</title>
</image>
		<item>
		<title>Google Maps con Threads</title>
		<link>http://mobile.davidocs.com/android/google-maps-con-threads/</link>
		<comments>http://mobile.davidocs.com/android/google-maps-con-threads/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 06:52:51 +0000</pubDate>
		<dc:creator>David González</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[threads]]></category>

		<guid isPermaLink="false">http://www.tech-xperience.com/mobiledev/?p=199</guid>
		<description><![CDATA[No cabe duda de que una de las grandas posibilidades que podemos aprovechar en un dispositivo Android es la geo-localización. Uno de los primeros pasos que podemos dar en este campo es la utilización de Google Maps.
Desde hace mucho tiempo Google Maps es sinónimo de geo-localización en Internet, gracias a la estupenda API de la [...]


Entradas relacionadas:<ol><li><a href='http://mobile.davidocs.com/android/como-anadir-iconos-a-un-listview-en-android/' rel='bookmark' title='Permanent Link: Cómo añadir iconos a un ListView en Android'>Cómo añadir iconos a un ListView en Android</a></li>
<li><a href='http://mobile.davidocs.com/android/disenando-la-aplicacion-uso-de-tabhost-en-android/' rel='bookmark' title='Permanent Link: Diseñando la aplicación, uso de TabHost en Android'>Diseñando la aplicación, uso de TabHost en Android</a></li>
<li><a href='http://mobile.davidocs.com/android/tratamiento-de-ficheros-xml-con-android/' rel='bookmark' title='Permanent Link: Tratamiento de ficheros XML con Android'>Tratamiento de ficheros XML con Android</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p class="dropcap-first">No cabe duda de que una de las grandas posibilidades que podemos aprovechar en un dispositivo Android es la geo-localización. Uno de los primeros pasos que podemos dar en este campo es la utilización de <strong>Google Maps</strong>.</p>
<p>Desde hace mucho tiempo Google Maps es sinónimo de geo-localización en Internet, gracias a la estupenda <strong>API</strong> de la que disponemos podemos hacer uso de sus funciones en nuestras aplicaciones Android.</p>
<p>A continuación desarrollaremos un primer ejemplo, en el que aprovecharemos para introducir el concepto de thread y cómo influyen en el funcionamiento de nuestra aplicación.</p>
<p><span style="color: #008000;"><strong><span style="font-size: medium;">¿Qué es esto?</span></strong></span></p>
<p>En éste tutorial vamos a crear una aplicación que utiliza Google Maps y threads para que mientras realizamos una búsqueda mostraremos un diálogo de espera.</p>
<p><span style="font-size: medium;"><span style="color: #008000;"><strong>¿Qué voy a aprender?</strong></span></span></p>
<ul>
<li>Acceso a Google Maps</li>
<li>Utilización de threads</li>
<li>Introducción al uso del geocoder.</li>
</ul>
<p><strong><span style="font-size: medium;"><span style="color: #008000;">¿Cómo quedará?</span></span></strong></p>
<p style="text-align: center;"><strong><span style="font-size: medium;"><span style="color: #008000;"><img class="size-full wp-image-225 aligncenter" title="threadgooglemaps1" src="http://mobile.davidocs.com/wp-content/uploads/2009/09/threadgooglemaps1.JPG" alt="threadgooglemaps1" width="328" height="470" /><br />
</span></span></strong></p>
<p><strong><span style="font-size: medium;"><span style="color: #008000;"><span id="more-199"></span></span></span></strong></p>
<p><strong><span style="font-size: medium;"><span style="color: #008000;">Pasos a seguir:</span></span></strong></p>
<p>Se trata de una aplicación bastante sencilla, en ella vamos a necesitar una sola Activity y un solo layout. Antes de poder utilizar un objeto de Google Maps es necesario que os registreis para utilizar la API de Google Maps, en éste <a href="http://code.google.com/intl/es-ES/android/add-ons/google-apis/mapkey.html" target="_blank">enlace</a> se explican los sencillos pasos que debéis seguir.</p>
<p>Lo primero que vamos a necesitar es el XML donde reside el layout de la aplicación.</p>
<p><strong><span style="font-size: medium;"><span style="color: #008000;">main.xml:</span></span></strong></p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;AbsoluteLayout
android:id=&quot;@+id/layout&quot;
android:layout_width=&quot;fill_parent&quot;
android:layout_height=&quot;fill_parent&quot;
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
&gt;
&lt;TextView
android:id=&quot;@+id/tv&quot;
android:layout_width=&quot;wrap_content&quot;
android:layout_height=&quot;wrap_content&quot;
android:text=&quot;@string/address&quot;
android:layout_x=&quot;11px&quot;
android:layout_y=&quot;5px&quot;
&gt;
&lt;/TextView&gt;
&lt;EditText
android:id=&quot;@+id/et_direccion&quot;
android:layout_width=&quot;240px&quot;
android:layout_height=&quot;wrap_content&quot;
android:hint=&quot;@string/input&quot;
android:textSize=&quot;18sp&quot;
android:layout_x=&quot;12px&quot;
android:layout_y=&quot;30px&quot;
&gt;
&lt;/EditText&gt;
&lt;Button
android:id=&quot;@+id/btn_busqueda&quot;
android:layout_width=&quot;59px&quot;
android:layout_height=&quot;wrap_content&quot;
android:text=&quot;@string/go&quot;
android:layout_x=&quot;256px&quot;
android:layout_y=&quot;30px&quot;
&gt;
&lt;/Button&gt;
&lt;com.google.android.maps.MapView android:id=&quot;@+id/mapa&quot;
android:layout_width=&quot;fill_parent&quot;
android:layout_height=&quot;310px&quot;
android:apiKey=&quot;Copia aqui la clave API asignada&quot;
android:layout_x=&quot;2px&quot;
android:layout_y=&quot;100px&quot;
android:clickable=&quot;true&quot; /&gt;
&lt;/AbsoluteLayout&gt;
</pre>
<p>Como veis es un layout muy simple. Tenemos un área de texto donde escribiremos la dirección que queremos buscar y y un botón al que asignaremos la tarea de comenzar la búsqueda de resultados. En el campo &#8220;apiKey&#8221; del MapView debéis copiar la clave que se os haya asignado al acabar el proceso citado anteriormente.</p>
<p>Pasamos ahora a la chicha de la aplicación, el evento de buscar y el manejo del thread.</p>
<p>La idea de todo esto es separar dos procesos, en uno de ellos haremos la búsqueda de las coordenadas y en la otra actualizaremos el layout de la aplicación. Para hacerlo necesitamos un Handler.</p>
<p><strong><span style="font-size: medium;"><span style="color: #008000;">ThreadGoogleMaps.java:</span></span></strong></p>
<pre class="brush: java;">
private Handler showAdressResults = new Handler() {
 @Override
 public void handleMessage(Message msg) {
 pd.dismiss();

 if (foundAdresses.size() == 0) {
 //Sino encuentra la dirección mostramos un diálogo de error
 Dialog locationError = new AlertDialog.Builder(
 ThreadGoogleMaps.this).setIcon(0).setTitle(
 &quot;Error&quot;).setPositiveButton(R.string.ok, null)
 .setMessage(
 &quot;Error, no se ha encontrado la dirección.&quot;)
 .create();
 locationError.show();

 } else { // else display address on map
 for (int i = 0; i &lt; foundAdresses.size(); ++i) {
 //Guardamos el resultado en formato latitud y longitud
 Address x = foundAdresses.get(i);
 lat = x.getLatitude();
 lon = x.getLongitude();
 }
 //Mostramos la dirección en el mapa
 navigateToLocation((lat * 1000000), (lon * 1000000),myMap);
 }
 }
 };
</pre>
<p>El <a href="http://developer.android.com/intl/zh-TW/reference/android/os/Handler.html" target="_blank">Handler</a> se ocupa de actualizar el mapa, en función de si la búsqueda de coordenadas ha devuelto algún resultado.  Para rellenar buscar ésas coordenadas utilizamos una función del <a href="http://developer.android.com/intl/zh-TW/reference/android/location/Geocoder.html" target="_blank">geocoder</a>, se trata de la función <em>getFromLocationName. </em></p>
<p>Como veis es un ejemplo bastante sencillo, obviamente se le podría añadir soporte de GPS o cualquier otra idea pero para el propósito de éste tutorial.</p>
<p><strong><span style="font-size: medium;"><span style="color: #008000;">Código fuente: </span></span></strong></p>
<p><table style="border: 1px solid #CCC;" cellpadding="3" width="100%">
  <tr>
    <td width="35">
      <img src="http://mobile.davidocs.com/wp-content/plugins/downloads-manager/img/icons/winrar.gif" alt="http://mobile.davidocs.com/wp-content/plugins/downloads-manager/img/icons/winrar.gif">
    </td>
    <td>
      <b>download:</b> <a href="http://mobile.davidocs.com/?file_id=5">ThreadGoogleMaps</a> <small>(34.98KB)</small><br />
      <b>added:</b> 28/09/2009 <br />
      <b>clicks:</b> 193 <br />
      <b>description:</b> Ejemplo que añade el tratamiento de threads y Google Maps <br />
    </td>
  </tr>
</table></p>



Comparte:


	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmobile.davidocs.com%2Fandroid%2Fgoogle-maps-con-threads%2F&amp;t=Google%20Maps%20con%20Threads" title="Facebook"><img src="http://mobile.davidocs.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fmobile.davidocs.com%2Fandroid%2Fgoogle-maps-con-threads%2F" title="Bitacoras.com"><img src="http://mobile.davidocs.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fmobile.davidocs.com%2Fandroid%2Fgoogle-maps-con-threads%2F" title="Meneame"><img src="http://mobile.davidocs.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fmobile.davidocs.com%2Fandroid%2Fgoogle-maps-con-threads%2F" title="Wikio IT"><img src="http://mobile.davidocs.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmobile.davidocs.com%2Fandroid%2Fgoogle-maps-con-threads%2F&amp;title=Google%20Maps%20con%20Threads&amp;bodytext=No%20cabe%20duda%20de%20que%20una%20de%20las%20grandas%20posibilidades%20que%20podemos%20aprovechar%20en%20un%20dispositivo%20Android%20es%20la%20geo-localizaci%C3%B3n.%20Uno%20de%20los%20primeros%20pasos%20que%20podemos%20dar%20en%20este%20campo%20es%20la%20utilizaci%C3%B3n%20de%20Google%20Maps.%0D%0A%0D%0ADesde%20hace%20mucho%20tiempo%20Googl" title="Digg"><img src="http://mobile.davidocs.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fmobile.davidocs.com%2Fandroid%2Fgoogle-maps-con-threads%2F&amp;title=Google%20Maps%20con%20Threads&amp;notes=No%20cabe%20duda%20de%20que%20una%20de%20las%20grandas%20posibilidades%20que%20podemos%20aprovechar%20en%20un%20dispositivo%20Android%20es%20la%20geo-localizaci%C3%B3n.%20Uno%20de%20los%20primeros%20pasos%20que%20podemos%20dar%20en%20este%20campo%20es%20la%20utilizaci%C3%B3n%20de%20Google%20Maps.%0D%0A%0D%0ADesde%20hace%20mucho%20tiempo%20Googl" title="del.icio.us"><img src="http://mobile.davidocs.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Google%20Maps%20con%20Threads&amp;link=http%3A%2F%2Fmobile.davidocs.com%2Fandroid%2Fgoogle-maps-con-threads%2F" title="FriendFeed"><img src="http://mobile.davidocs.com/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fmobile.davidocs.com%2Fandroid%2Fgoogle-maps-con-threads%2F&amp;t=Google%20Maps%20con%20Threads" title="HackerNews"><img src="http://mobile.davidocs.com/wp-content/plugins/sociable/images/hackernews.png" title="HackerNews" alt="HackerNews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fmobile.davidocs.com%2Fandroid%2Fgoogle-maps-con-threads%2F" title="Technorati"><img src="http://mobile.davidocs.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>

<p>Entradas relacionadas:<ol><li><a href='http://mobile.davidocs.com/android/como-anadir-iconos-a-un-listview-en-android/' rel='bookmark' title='Permanent Link: Cómo añadir iconos a un ListView en Android'>Cómo añadir iconos a un ListView en Android</a></li>
<li><a href='http://mobile.davidocs.com/android/disenando-la-aplicacion-uso-de-tabhost-en-android/' rel='bookmark' title='Permanent Link: Diseñando la aplicación, uso de TabHost en Android'>Diseñando la aplicación, uso de TabHost en Android</a></li>
<li><a href='http://mobile.davidocs.com/android/tratamiento-de-ficheros-xml-con-android/' rel='bookmark' title='Permanent Link: Tratamiento de ficheros XML con Android'>Tratamiento de ficheros XML con Android</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://mobile.davidocs.com/android/google-maps-con-threads/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
