Google Maps Android API por onde começar?

Muito acham que usar o Google Maps Android API é muito complicado, porem é relativamente simples para quem já uma certa intimidade com desenvolvimento para Android.

Bom mas por onde começar? Primeiro acesse o link https://console.developers.google.com/project e crie um projeto para o seu app, que ira utilizar o Google Maps Android API:

Lista de projetos na sua conta de desenvolvedor da Google. (Sim eu jogo Minecraft e tenho um servidor)

Após criar o projeto, habilite a API do Google Maps no seu projeto através do link "Google Maps Android API":

Ative a API selecionando a opção "Enable":

Pronto acabou? Não, tem que gerar a chave de acesso do seu app para a API, para fazer isso selecione a opção "Credenciais":

Selecione a opção "Chave de API"
Selecione o opção "Chave de Android"

Após todo esse processo você ira chegar nessa tela:

Você vai precisar de alguns dados

Para ter a chave SHA1 do seu certificado de desenvolvedor, execute o comando abaixo:

keytool -list -v -keystore suakeystore.keystore

Geralmente a keystore de desenvolvimento fica na pasta .android, localizada no diretório home do usuário, no meu caso o nome do arquivo é debug.keystore:

Executado o comando temos que pegar o SHA1

Com o SHA1 em mãos voltamos para a tela da criação da chave e selecionamos "Criar", esperamos um pouco e tchram, temos a chave de acesso:

Temos uma chave

Guarde a chave em algum local, porque ela vai garantir o acesso do seu app ao Google Maps Android API.

E agora no Android Studio o que temos que fazer? Corre lá pegar um café e se prepara que demora #sqn


Primeira coisa que deve ser feita é colocar no seu arquivo do gradle a seguinte dependência:

compile 'com.google.android.gms:play-services-maps:8.4.0'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services-maps:8.4.0'
}

Adiciona as permissões no seu AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="22" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="22" />

Adicione também a meta-data dentro do application:

<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />

No arquivo string.xml adicione a tag:

<string name="google_maps_key">AQUI_VOCE_COLOCA_A_CHAVE_GERADA_NO_CONSOLE</string>

Agora vamos criar um xml de layout, e insira o trecho de código abaixo para exibir o fragmento do mapa no seu app:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />

Crie uma classe onde vai carregar o mapa, configure ela no manifest e adicione os seguintes trechos de código:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

SupportMapFragment mapFragment =
(SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

}
@Override
public void onMapReady(GoogleMap map) {2
map.addMarker(new MarkerOptions().position(new LatLng(-25.443150, -49.238243)).title("Jardim Botânico"));
}

E finalmente chegamos ao final, seu app já vai estar funcionando e ira exibir a tela abaixo:

O que podemos fazer a mais, podemos adicionar mais "makers" e ajustar o zoom da câmera com o seguinte código:

map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, longitude), 11));

Também podemos mostrar a localização atual do dispositivo:

map.setMyLocationEnabled(true);

Informações de tráfico:

map.setTrafficEnabled(true);
Aqui temos as informações do tráfico, a minha localização e os makers

Temos mais opções que podem ser habilitadas no mapa como, exbir os botões de zoom, bússola, trocar a imagem dos "makers". Todas essas outras funcionalidades você pode encontrar exemplos nos demos e na documentação do Google Maps Android API.

Links

Código fonte desse app demo

Demos de outras implementações do Google Maps Android API

Documentação da Google Maps Android API

Espero que eu tenha ajudado, qualquer dúvida só mandar no twitter ou nos comentários aqui.

Abraço do Gordinho ;)