Quantcast
Channel: Mobile – blog.caelum.com.br
Viewing all articles
Browse latest Browse all 27

Usando o Google Maps e GPS no Android

$
0
0

Este é um post criado em 2010 que está sendo atualizado neste ano de 2017. Os ajustes realizados visam a melhora da formatação como também do conteúdo.

O mercado para Android está cada vez mais agitado, e a cada dia aparecem novas informações animadoras: a quantidade de novos aplicativos saltou de 16 mil para 3 milhões desde 2009 pra cá.

Isso não ocorre sem razão. A capacidade de usar os serviços do Google através do Android é excelente. Um dos capítulos mais interessantes do curso FJ-57 de Google Android é o que envolve fazer um mashup com o Google Maps, o GPS do seu celular e dados que gravamos nele.

Essa tarefa se revela inicialmente bastante simples, e depois ainda possibilita inserir uma série de listeners e overlays para poder customizar o uso dos mapas.

Criando o projeto

Dado que você já sabe preparar o ambiente para um HelloWorld no Android, crie uma nova aplicação com uma activity chamada MapasSimples. Você vai precisar adquirir uma API KEY do Google Maps para poder ter a permissão de usá-lo em sua aplicação.

Gerando a chave da API do Maps

Para isso, gere um MD5 da sua chave através do keytool (ou mesmo através do plugin do Android, usando a mesma do procedimento que você usa para assinar suas aplicações) para depois se inscrever no Google Android Maps API Key.

Adicionando o layout do mapa

Depois desse passo, o Google vai te fornecer uma chave de acesso, juntamento com um trecho de XML para ser usado na sua tela. No nosso caso, o main.xml ficará parecido com:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=
   "http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
>
<com.google.android.maps.MapView
     android:id="@+id/map_view"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:enabled="true"
     android:clickable="true"
     android:apiKey="SUA CHAVE DO GOOGLE MAPS"
/>
</LinearLayout>

Modificando a nossa activity

Agora precisamos alterar a nossa activity MapasSimples para, em vez de estender Activity, ser filha de MapActivity:

public class MapasSimples extends MapActivity {

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
   }

   @Override
   protected boolean isRouteDisplayed() {
       return false;
   }
}

Configurando o manifest

No nosso manifest, precisamos avisar dentro de application que vamos usar a biblioteca do Google Maps:

<uses-library android:name="com.google.android.maps" />

E também precisamos permitir acesso a Internet, dentro da tag de manifest:

<uses-permission android:name=
     "android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name=
     "android.permission.INTERNET" />

Isso já é o suficiente para abrir o Google Maps, mas queremos ir além. Podemos adicionar diversos overlays ao mapa, para colocar informações como as pizzarias mais próximas, a bússola, a nossa posição atual de acordo com o GPS ou mesmo a posição de seus amigos.

Adicionando mais características no mapa

Dentro do método onCreate pode adicionarmos um novo overlay ao mapa, que vai conter tanto a bússola quanto a nossa própria localização (ou de acordo com o GPS ou de acordo com a triangularização de antenas), de maneira simples:

       MapView mapView = (MapView) findViewById(R.id.map_view) ;
       mapView.setClickable(true) ;

       MyLocationOverlay mlo = new MyLocationOverlay(this, mapView) ;
       mlo.enableCompass() ;
       mlo.enableMyLocation() ;
       mapView.getOverlays().add(mlo) ;

Pronto! Você já pode gerar sua aplicação obtendo o seguinte resultado rodando em um celular Google Nexus One:

Caelum Android Google Maps

Você pode incrementar facilmente esse exemplo, como adicionar novos overlays, atualizar sua posição conforme a localização do aparelho, mostrar o trânsito, traçar rotas, além de especificar o seu LocationProvider (GPS ou antena) pelo LocationManager.

O Android ainda possibilita acesso total a recursos do aparelho como câmera, acelerômetro, bluetooth e multitoque, além de APIs ricas para construir sua interface, acessar serviços do aparelho (como ligações e SMS) e APIs do Google como o Maps.

E, através de Web Services, podemos criar um mashup poderoso, misturando informações capturadas da internet com os mapas e outras funcionalidades do aparelho. E tudo usando a sintaxe da linguagem Java.

Se estiver com dificuldades, não deixe de colocar uma dúvida no sistema de dúvidas do GUJ.

O Android é a plataforma mobile que mais cresce no mundo atualmente e a tendência é continuar assim. Com um modelo de programação familiar e recursos poderosos, tem tudo para agradar a comunidade de desenvolvedores.

Para saber mais sobre Android, confira o FJ-57: Desenvolvimento móvel com Google Android e também leia o livro lançado pela Editora Casa do Código.


Viewing all articles
Browse latest Browse all 27