19
Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro 1 Sandro / Sang / Pedro Unicamp – Ci&T

Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

1

Sandro / Sang / Pedro Unicamp – Ci&T

Page 2: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

2

Introdução

•  API Google Maps: não é “nativa”

•  Maps API: Internet!

•  Necessária chave de acesso à API •  http://code.google.com/intl/pt-BR/android/add-ons/google-apis/mapkey.html

•  http://code.google.com/intl/pt-BR/android/maps-api-signup.html

Page 3: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

3

Introdução

•  Mapa da configuração (desenvolvimento) –  Criar um certificado de depuração (<nome>.keystore)

–  Obter o fingerprint deste certificado (keytool)

–  Gerar uma chave de acesso à Maps API utilizando este fingerprint

–  Configurar sua IDE para assinar seus APK utilizando essa keystore

–  Atribuir a chave gerada aos componentes de mapa de seus projetos Recomendado em projetos:

- Utilização de chave compartilhada de depuração - Utilização de chave específica para produção

Page 4: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

4

Gerando um certificado

•  Ferramenta: keytool (JDK) –  http://developer.android.com/guide/publishing/app-signing.html

–  keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

•  Modo de desenvolvimento (debug) –  Nome do arquivo: livre escolha

–  Senha do arquivo de certificado: "android”

–  Key password: "android”

–  Alias para o arquivo: livre escolha

–  Região da máquina geradora: United States (Brasil não funciona)

Page 5: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

5

Obtenção do fingerprint

•  Ferramenta: keytool (JDK)

keytool -list -alias alias_name -keystore my-release-key.keystore

Exemplo de Fingerprint:

94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98

Esta é a chave que deve ser usada para obtenção de uma chave de acesso à API de mapas do Google.

Page 6: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

6

Projetos com Maps API

Apenas reforçando, Maps API não é nativa da plataforma

Page 7: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

7

Map View

•  Widget: MapView

0LloyheZs6Qmc56pd7QvJHVJ1mhExKhDk6Bn-yg

Page 8: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

8

Map Controller •  Todo widget de mapa tem seu controlador •  Alguns controles disponíveis para mapas ...

–  Aumento / diminuição do zoom

–  Nível inicial de zoom no mapa

–  Centralização em algum ponto / região

–  Animação até algum ponto do mapa, dentre outros

Page 9: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

9

Pontos - GeoPoint

•  Pontos em um mapa - microdegrees –  Latitude – (latitude real * 1E6) –  Longitude – (longitude real * 1E6)

–  Representação de pontos: com.google.android.maps.GeoPoint

Documentação da classe GeoPoint

Page 10: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

10

Pontos em um Mapa

Page 11: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

11

Modos de exibição de mapas

•  Street view –  Modo de exibição em blocos padrão

•  Satélite –  Mapas reais, fotos de satélite

•  Traffic –  Exibição de tráfego, incompatível com

o modo de exibição street view

Page 12: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

12

Overlays •  Utilizados para destacar pontos em um mapa

Page 13: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

13

GPS

Page 14: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

14

Serviço de GPS

•  Ativando o serviço ...

...

•  Ativando a “escuta” ...

Permissões de acesso: COARSE (grosseiro) vs. FINE (precisa)

Page 15: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

15

A escuta de eventos de localização

Page 16: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

16

ItemizedOverlay e OverlayItem •  Facilita o trabalho de posicionar vários pontos em um mapa

•  Facilita o controle do clique sobre um item

•  Uma instância de ItemizedOverlay = N instâncias de OverlayItem

Overlay

ItemizedOverlay

MyOverlay

Page 17: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

17

Usando o emulador

Arquivos no formato KML a partir do Google Maps

Page 18: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

18

Usando a perspectiva DDMS

•  Simulação de coordenadas de GPS via DDMS –  Manual: entrada manual de localizações

–  GPX: entrada de arquivos no formato GPX

–  KML: entrada de arquivos no formato KML

Page 19: Sandro / Sang / Pedro Unicamp – Ci&Tsandro/cursos/mc933/... · Desenvolvimento de Aplicações Móveis sandro 2 Introdução • API Google Maps: não é “nativa” • Maps API:

Desenvolvimento de Aplicações Móveis http://www.ic.unicamp.br/~sandro

19

Geolocalização reversa

public Geocoder (Context)   Context: contexto em que a aplicação se encontra

Normalmente um serviço, uma atividade ou uma aplicação. Verifique a documentação de Context para mais informações.

public Geocoder (Context, Locale)   Context: introduzido acima

  Locale: utilizados para definir linguagem, país, e suas respectivas convenções para representação de dados como moedas e datas. Existem constantes para representar todas as localizações suportadas. Verifique a documentação de Locale para mais informações.

Através de uma instância de Geocoder é possível:

  Buscar coordenadas a partir de um endereço

  Buscar endereços a partir de uma coordenada

Verifique a documentação da classe Geocoder para maiores informações.