Você está na página 1de 67

Capítulo 12: Google Maps

Capítulo 12: Google Maps

Instrutor

P r o g r a m a d o r d e s d e 2 0 0 0

Mestre em informática pelo ICOMP/UFAM

Doutorando do mesmo instituto

Pesquisador da área de banco

de dados e recuperação da informação

CSD, CSM e CSPO

● CSD, CSM e CSPO ● marcio.palheta@gmail.com ● https://github.com/marciopalheta ●

sites.google.com/site/marciopalheta

Agenda

Trabalhando com mapas

Criação de chaves SHA1

Liberação do acesso da Google Maps API

Primeira Activity de mapa

Exibição do mapa

Adicionando marcadores

Definições de títulos e snippets

Busca por coordenadas baseada em texto

M.Sc. Márcio Palheta

3/67
3/67

Atividade concluída

M.Sc. Márcio Palheta 4/67
M.Sc. Márcio Palheta
4/67

Nova atividade

M.Sc. Márcio Palheta 5/67
M.Sc. Márcio Palheta
5/67

Começando com mapas

Chegamos à reta final do nosso treinamento \o/

Agora, estamos interessados em criar uma nova funcionalidade que permita que o usuário visualize os endereços de professores em um mapa.

Em android, o uso de mapas está normalmente associado ao uso da Google Maps API, criada e mantida pela Google

Para que nossa app possa utilizar essa API, precisamos definir uma chave para a ferramenta, a partir do comando keytool

O código de hash gerado pelo algoritmo SHA1 deve ser registrado no console do Google Maps

6/67
6/67

M.Sc. Márcio Palheta

Exercício 1: Criação da chave

A estratégia para criação da chave varia de acordo com o sistema operacional utilizado

Abra o terminal e execute os comandos abaixo

LINUX e MAC:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Windows 7:

7/67
7/67

“C:\Users\usuario\.android\debug.keystore” -alias androiddebugkey -storepass android -keypass android

M.Sc. Márcio Palheta

Resultado do processamento

M.Sc. Márcio Palheta 8/67
M.Sc. Márcio Palheta
8/67

Exercício 2: Registro da chave

Acesse: https://console.developers.google.com/project

M.Sc. Márcio Palheta 9/67
M.Sc. Márcio Palheta
9/67

Exercício 2: Registro da chave

Acesse: https://console.developers.google.com/project

Novo projeto M.Sc. Márcio Palheta 10/67
Novo projeto
M.Sc. Márcio Palheta
10/67

Exercício 2: Registro da chave

Acesse: https://console.developers.google.com/project

Informe o nome do projeto M.Sc. Márcio Palheta
Informe o nome
do projeto
M.Sc. Márcio Palheta
11/67
11/67

Exercício 2: Registro da chave

M.Sc. Márcio Palheta 12/67
M.Sc. Márcio Palheta
12/67

Exercício 2: Registro da chave

Vamos habilitar a API M.Sc. Márcio Palheta 13/67
Vamos habilitar
a API
M.Sc. Márcio Palheta
13/67

Exercício 2: Registro da chave

M.Sc. Márcio Palheta 14/67
M.Sc. Márcio Palheta
14/67

Exercício 2: Registro da chave

Habilite a Google Maps Android API M.Sc. Márcio Palheta 15/67
Habilite a Google
Maps Android API
M.Sc. Márcio Palheta
15/67

Exercício 2: Registro da chave

M.Sc. Márcio Palheta 16/67
M.Sc. Márcio Palheta
16/67

Exercício 2: Registro da chave

Habilite a Google Maps Android API M.Sc. Márcio Palheta 17/67
Habilite a Google
Maps Android API
M.Sc. Márcio Palheta
17/67

Exercício 2: Registro da chave

M.Sc. Márcio Palheta 18/67
M.Sc. Márcio Palheta
18/67

Exercício 2: Registro da chave

Cadastro da nossa chave pública M.Sc. Márcio Palheta 19/67
Cadastro da nossa
chave pública
M.Sc. Márcio Palheta
19/67

Exercício 2: Registro da chave

M.Sc. Márcio Palheta 20/67
M.Sc. Márcio Palheta
20/67

Exercício 2: Registro da chave

Criação da nova chave pública M.Sc. Márcio Palheta 21/67
Criação da nova
chave pública
M.Sc. Márcio Palheta
21/67

Exercício 2: Registro da chave

M.Sc. Márcio Palheta

M.Sc. Márcio Palheta

22/67
22/67

Exercício 2: Registro da chave

Registro da nossa Chave pública
Registro da nossa
Chave pública

M.Sc. Márcio Palheta

23/67
23/67

Exercício 2: Registro da chave

M.Sc. Márcio Palheta 24/67
M.Sc. Márcio Palheta
24/67

Exercício 2: Registro da chave

Concatene a chave SHA1 gerada (keytool) e o pacote principal da app, separados por Ponto
Concatene a chave SHA1 gerada (keytool)
e o pacote principal da app, separados por
Ponto e Vírgula (;)
M.Sc. Márcio Palheta
25/67

Resultado do processamento

M.Sc. Márcio Palheta 26/67
M.Sc. Márcio Palheta
26/67

Resultado do processamento

Chave da API. Usaremos na App M.Sc. Márcio Palheta 27/67
Chave da API.
Usaremos na App
M.Sc. Márcio Palheta
27/67

Exercício 3: Activity para o mapa

M.Sc. Márcio Palheta 28/67
M.Sc. Márcio Palheta
28/67

Exercício 3: Activity para o mapa

Nova Activity M.Sc. Márcio Palheta 29/67
Nova Activity
M.Sc. Márcio Palheta
29/67

Exercício 3: Activity para o mapa

Nova Activity Google Maps Activity M.Sc. Márcio Palheta 30/67
Nova Activity
Google Maps Activity
M.Sc. Márcio Palheta
30/67

Exercício 3: Activity para o mapa

Vamos criar uma Activity e um novo layout para o Mapa

É gerado, automaticamente o arquivo de configurações:

res/values/google_maps_api.xml

M.Sc. Márcio Palheta 31/67
M.Sc. Márcio Palheta
31/67

Arquivos gerados: Google Maps API

M.Sc. Márcio Palheta 32/67
M.Sc. Márcio Palheta
32/67

Arquivos gerados: Google Maps API

Ponto onde vamos Informar a chave gerada pelo Google M.Sc. Márcio Palheta 33/67
Ponto onde vamos
Informar a chave
gerada pelo Google
M.Sc. Márcio Palheta
33/67

Arquivos gerados: Activity

M.Sc. Márcio Palheta 34/67
M.Sc. Márcio Palheta
34/67

Arquivos gerados: Activity

Arquivos gerados: Activity Código gerado automaticamente M.Sc. Márcio Palheta 35/67
Código gerado automaticamente M.Sc. Márcio Palheta 35/67
Código gerado
automaticamente
M.Sc. Márcio Palheta
35/67

Arquivos gerados: Layout

O layout gerado apresenta apenas um componente Fragment, com id = “@+id/map

● O layout gerado apresenta apenas um componente Fragment, com id = “ @+id/map ” M.Sc.

M.Sc. Márcio Palheta

36/67
36/67

AndroidManifest atualizado

AndroidManifest atualizado M.Sc. Márcio Palheta 37/67
M.Sc. Márcio Palheta 37/67
M.Sc. Márcio Palheta
37/67

AndroidManifest editado

AndroidManifest editado M.Sc. Márcio Palheta 38/67
M.Sc. Márcio Palheta 38/67
M.Sc. Márcio Palheta
38/67

Exercício 4: Configuração de acesso

Vamos atualizar o arquivo de configurações

Informe o código da chave que você gerou no console da Google Maps API

M.Sc. Márcio Palheta 39/67
M.Sc. Márcio Palheta
39/67

Exercício 4: Configuração de acesso

Vamos atualizar o arquivo de configurações

Informe o código da chave que você gerou no site da Google Maps API

Chave gerada pelo site da API M.Sc. Márcio Palheta 40/67
Chave gerada pelo
site da API
M.Sc. Márcio Palheta
40/67

Exercício 5: Carregar Mapa na tela

M.Sc. Márcio Palheta 41/67
M.Sc. Márcio Palheta
41/67

Exercício 5: Carregar Mapa na tela

Atualize o método De ProfessorLista M.Sc. Márcio Palheta 42/67
Atualize o método
De ProfessorLista
M.Sc. Márcio Palheta
42/67

Exercício 5: Carregar Mapa na tela

Atualize o método De ProfessorLista Exibe o mapa M.Sc. Márcio Palheta 43/67
Atualize o método
De ProfessorLista
Exibe o mapa
M.Sc. Márcio Palheta
43/67

Rede a aplicação

M.Sc. Márcio Palheta
M.Sc. Márcio Palheta
44/67
44/67
Click para exibir o Mapa
Click para exibir o
Mapa

Rede a aplicação

M.Sc. Márcio Palheta
M.Sc. Márcio Palheta
45/67
45/67

Rede a aplicação – Mapa exibido

M.Sc. Márcio Palheta
M.Sc. Márcio Palheta
46/67
46/67

Exercício 6: Coordenadas e câmera

Atualize o método setUpMap() da classe MapsActivity

Adicione uma marcação apontando para a Buritech

M.Sc. Márcio Palheta 47/67
M.Sc. Márcio Palheta
47/67

Exercício 6: Coordenadas e câmera

Atualize o método setUpMap() da classe MapsActivity

Adicione uma marcação apontando para a Buritech

Definição de coordenadas M.Sc. Márcio Palheta 48/67
Definição de
coordenadas
M.Sc. Márcio Palheta
48/67

Exercício 6: Coordenadas e câmera

Atualize o método setUpMap() da classe MapsActivity

Adicione uma marcação apontando para a Buritech

Adição de marcação M.Sc. Márcio Palheta 49/67
Adição de
marcação
M.Sc. Márcio Palheta
49/67

Exercício 6: Coordenadas e câmera

Atualize o método setUpMap() da classe MapsActivity

Adicione uma marcação apontando para a Buritech

Atualização de Zoom da câmera M.Sc. Márcio Palheta 50/67
Atualização de
Zoom da câmera
M.Sc. Márcio Palheta
50/67

Execute a App novamente

M.Sc. Márcio Palheta
M.Sc. Márcio Palheta
51/67
51/67

Execute a App novamente

Selecione o marcador M.Sc. Márcio Palheta
Selecione o
marcador
M.Sc. Márcio Palheta
52/67
52/67

Execute a App novamente

M.Sc. Márcio Palheta
M.Sc. Márcio Palheta
53/67
53/67

Adicionando professores ao mapa

Agora que o mapa está funcionando, gostaríamos de exibir os endereços de professores

Contudo, normalmente não temos as informações de latitude e longitude

A Google Maps API nos oferece uma opção para buscar um ponto geográfico, a partir de um endereço.

A classe GeoCoder é especialista neste tipo de atividade

Em nosso projeto, vamos criar uma classe para isolar o código de localização de endereços

54/67
54/67

M.Sc. Márcio Palheta

Exercício 7: Nova classe Localizador

M.Sc. Márcio Palheta 55/67
M.Sc. Márcio Palheta
55/67
Novo pacote
Novo pacote

Exercício 7: Nova classe Localizador

M.Sc. Márcio Palheta 56/67
M.Sc. Márcio Palheta
56/67

Exercício 7: Nova classe Localizador

Nova classe
Nova classe
M.Sc. Márcio Palheta 57/67
M.Sc. Márcio Palheta
57/67

Exercício 7: Nova classe Localizador

Busca coordenadas M.Sc. Márcio Palheta 58/67
Busca coordenadas
M.Sc. Márcio Palheta
58/67

Exercício 8: Atualize a MapsActivity

Sobrescreva o método onResumeFragments()

M.Sc. Márcio Palheta 59/67
M.Sc. Márcio Palheta
59/67

Exercício 8: Atualize a MapsActivity

Sobrescreva o método onResumeFragments()

Novo método M.Sc. Márcio Palheta 60/67
Novo método
M.Sc. Márcio Palheta
60/67

Exercício 8: Atualize a MapsActivity

Sobrescreva o método onResumeFragments()

Adição de marcadores M.Sc. Márcio Palheta 61/67
Adição de marcadores
M.Sc. Márcio Palheta
61/67

Execute a aplicação novamente

M.Sc. Márcio Palheta
M.Sc. Márcio Palheta
62/67
62/67

Atividade concluída

M.Sc. Márcio Palheta 63/67
M.Sc. Márcio Palheta
63/67

Fim de curso :-)

M.Sc. Márcio Palheta 64/67
M.Sc. Márcio Palheta
64/67

O que vem a seguir?

BuriCurso de Android Avançado

Criação de um webservice com JEE

Controle de dependências JEE com Maven

Serviço web com Tomcat, Jersey e Gson

De volta ao mobile: dependências com Gradle

Persistência com ORMLite

Cancelamento de AsyncTask

Diminuindo acoplamento com Delegate

Baixa assíncrona de imagens da WEB

M.Sc. Márcio Palheta

65/67
65/67

Referências

d . a n d r o i d . c o m

LECHETA, Ricardo. Google Android, 3a edição, Novatec, São Paulo, 2013

LECHETA, Ricardo. Google Android para tablets, 3a edição, Novatec, São Paulo, 2012

BURTON, Michael. Desenvolvimento de aplicativos Android para leigos. Alta books, Rio de Janeiro, 2014

66/67
66/67

M.Sc. Márcio Palheta

Capítulo 12: Google Maps

Capítulo 12: Google Maps