Usando a API do Google Maps no Android

O Android possui extensões que possibilitam a criação de ambientes de desenvolvimento usando bibliotecas externas específicas, como por exemplo o Google APIs, ou componentes extras.

As APIs do Google possuem acesso aos serviços e dados do Google. Essas APIs fazem parte de cada versão do SDK, ou seja, cada SDK de versão é também possível obter um SDK de APIs do Google para Android. Um recurso importante dessas APIs é a biblioteca externa Maps, que fornece uma API para que aplicativos Android possam ter acesso ao Google Maps, permitindo a adição de recursos avançados de mapeamento, onde pode-se exibir um ou mais locais em um mapa para o usuário.

A MATERA utilizou este recurso recentemente em um de seus projetos Android, possibilitando ao usuário a visualização de locais em um mapa, assim como a localização do usuário, e o traçado de rotas entre dois pontos no mapa, tanto pelo mapa do próprio aplicativo, quanto por um aplicativo terceiro de navegação.

Para usar este recurso do Google na aplicação, deve ser gerada uma chave de API obtida do Google, e que é através de uma chave privada, a keystore do aplicativo assinado. Cada desenvolvedor tem sua própria keystore, ou seja, cada chave de API para uso do Google Maps é única e não funciona com keystores diferentes.
Após obter essa chave, basta criar uma instância de MapView no layout XML que será usado para a visualização do mapa, e incluir a chave no atributo apiKey.

Exemplo da instância:


<com.google.android.maps.MapView
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="SUA CHAVE GOOGLE MAPS"/>

É preciso também declarar a utilização da API Google Maps no AndroidManifest.xml, dar permissão de internet aos métodos de conexão.

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

O ACCESS_COARSE_LOCATION retorna sempre os métodos alternativos enquanto que o ACCESS_FINE_LOCATION retorna o melhor método disponível no momento. Por exemplo, se o GPS não estiver habilitado/ligado ele retorna o network provider.

Além das permissões e de usar a instância MapView, na Activity, precisamos estender o MapActivity.


public class ExemploMaps extends MapActivity {...

Um exemplo simples para mostrar a localização do usuário no mapa:


public class ExemploMaps extends MapActivity {


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


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


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


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

Os Overlays são os pontos visíveis no mapa, pode ser tanto o ponto do usuário, como no exemplo acima, como também vários pontos de locais específicos.

Na página Google API do site do Google, é possível encontrar explicações mais detalhadas sobre o Google APIs, assim como procedimentos de geração de chave, registro de certificado, uso da chave API no aplicativo e como habilitar o uso dos elementos do MapView.

Um exemplo completo da utilização do Google Maps pode ser visto em Hello Mapview.

 

 

Por MATERA SYSTEMS

Postado em: 23 de fevereiro de 2012

Confira outros artigos do nosso blog

REST não é JSON

21 de agosto de 2017

Bruno Sofiato

[Webinar] Profile de aplicações Java com Oracle Mission Control e Flight Recorder

24 de julho de 2017

Danival Calegari

Criando Mocks de serviços REST com SoapUI

27 de junho de 2017

Monise Costa

JavaScript 6: diferença entre var, let e const

09 de maio de 2017

Otávio Felipe do Prado

Deixe seu comentário