Usando o Google Maps e GPS no Android

Usando o Google Maps e GPS no Android
ettore
ettore

Compartilhe

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.

Banner da Escola de Mobile: Matricula-se na escola de Mobile. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!

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.

Veja outros artigos sobre Mobile