Buscar

Aula09 UsandoGoogleMaps

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula 09 – Usando o Google API –
Google Maps
Prof. Dr. Jucimar Souza
jucibs@gmail.com
Serviços da Google
 O Google disponibiliza diversos serviços 
relacionados aos seus produtos que podem 
ser utilizados gratuitamente por nos, 
desenvolvedores. 
 Esses serviços também são conhecidos 
como Google APIs. 
 Places API
 Tasks API
 Google Maps API
 Drive API para integracao com o Google Drive.
Serviços da Google
 Geralmente são acessados via HTTP
 Aplicativo cliente deve realizar a autenticação
 Executar as requisições
 Processar a resposta do serviço
 Google APIs Clients Libraries
 São bibliotecas disponibilizadas em diversas 
linguagens
 Nesta aula vamos usar a Google Maps Android
API v2
Preparando o Ambiente para usar a API 
Google Maps
 Acesse o SDK Manager 
 Acesse Extras 
 Instale Google Play Services
Preparando o Ambiente para usar a API 
Google Maps
 Acesse o SDK Manager 
 Acesse Extras 
 Instale Google Play Services
Preparando o Ambiente - Importar 
Google Play Services como biblioteca
 No Eclipse
 File / Import / Android / Existing Android
Code Into Workspace
 Selecionar o diretório da biblioteca do Google 
Play Services do SDK
 .\adt-bundle-windows-x86_64-
20140702\sdk\extras\google\google_play_services
 Não esqueça de marcar a opção Copy Project into
Workspace
Preparando o Ambiente - Importar 
Google Play Services como biblioteca
Preparando o Ambiente - Importar 
Google Play Services como biblioteca
 Vamos criar o nosso projeto 
ExemploGoogleMaps
 Após criar o projeto você deve: 
 Importar o projeto googleplay-service-lib como 
biblioteca para o projeto recém criado
 Isso deve ser feito através da opção de 
propriedade do projeto 
Preparando o Ambiente - Importar 
Google Play Services como biblioteca
Gerando a API Key de Mapas
 É uma forma curta de certificado digital que 
é utilizado para assinar o aplicativo Android.
 Conhecido como sha-1 fingerprint e é informado 
no Google API Console, juntamente com o 
package name da aplicação
 O Android SDK já traz um keystore em sua 
aplicação
 Chave é utilizada como debug e acionada sempre 
que plugamos um smartphone no PC e testamos 
nele
 Sem percebermos o projeto é compactado em um apk
e assinado digitalmente antes de carregar no device
Gerando a API Key de Mapas
 Obtendo o SHA1 fingerprint do sdk
 Acesse Window > Preference > Android > Build
 Copie o campo SHA1 – fingerprint
 Outra formar é usando o Keytool
 Linux e MacOS
 keytool -list -v -keystore ~/.android/debug.keystore-alias 
androiddebugkey -storepass android –keypass android
 Windows
 keytool -list -v -keystore "%USERPROFILE 
%\.android\debug.keystore" -alias androiddebugkey -
storepass android -keypass android
 Mais detalhes em:
 https://developers.google.com/maps/documentation/
Gerando a API Key de Mapas
Requisitando o serviço da Google 
Console API
 Acesse 
https://code.google.com/apis/console/
 Faça o login e acesse o botão para abilitar
API 
Requisitando o serviço da Google 
Console API
 Procure a API de nome:
 Google Maps Android API v2
 Altere o status para ON dando um clique duplo 
no botão
 Confirme que você aceita os termos de uso
 Agora vamos nos credenciar para acessar a 
API
 Clique em Creditials e depois no botão Create
new key
Requisitando o serviço da Google 
Console API
Requisitando o serviço da Google 
Console API
 Selecione Android Key
Requisitando o serviço da Google 
Console API
 Copie o SHA 1 para esta janela, digite um ; e na 
sequencia o pacote principal do projeto
Requisitando o serviço da Google 
Console API
 A chave foi gerada. Copie para colarmos no 
AndroidManifest.xml
Projetos que usam o GoogleMaps devem 
configurar o AndroidManifest.XML
 Dentro da Tag Aplication
 Usado por todos os MapFragments da 
aplicação
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" />
Aqui você informa a 
chave obtida no site
Projetos que usam o GoogleMaps devem 
configurar o AndroidManifest.XML
 Inclua também a versão do GoogleMaps no 
manifesto dentro da tag Aplicaction
<application
.
.
.
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Configurando as permitions e features no 
AndroidManifest.XML
<permission
android:name= "br.edu.ufam.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission
android:name="br.edu.ufam.permission.MAPS_RECEIVE" />
Avisa ao usuário e ao sistema operacional que este aplicativo 
vai receber mapas dos servidores da Google
<uses-permission
android:name="android.permission.INTERNET" />
Permissão para usar a Internet
Configurando as permitions e features no 
AndroidManifest.XML
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"
/>
Permite que a aplicação acesse o estado da conectividade de 
rede do aparelho
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE
" />
Permissão a aplicação escrever em memoria externa
Configurando as permitions e features no 
AndroidManifest.XML
<uses-permission
android:name=
"com.google.android.providers.gsf.permission.READ_GSERVICES" />
Avisa ao usuário e ao sistema operacional que este aplicativo 
vai receber mapas dos servidores da Google
<uses-permission
android:name=
"com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission
android:name=
"com.google.android.providers.gsf.permission.READ_GSERVICES"/>
Configurando as permitions e features no 
AndroidManifest.XML
Informa aos futuros usuários que somente os devices com 
suporte à OpenGL conseguem instalar a aplicação 
Mais informações sobre permissões acesse:
http://developer.android.com/reference/android/Manifest.per
mission.html
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
Mostrando o mapa na aplicação
 Selecione um LinerLayout para sua 
aplicação e dentro dele coloque um 
fragmente conforme código abaixo:
Agora execute a aplicação.
<LinearLayout xmlns:and...
<fragment
android:id="@+id/fragment1"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp" />
</LinearLayout>
Aplicação rodando
 Aqui foi usado on
emulador 
Genymotion que 
roda no VirtualBox
 http://www.genymo
tion.com/
 Veja como instalar 
google app na 
Internet para poder 
instalar o 
GoogleMaps
Adicionando pontos de Interesse (POI)
 Vamos adicionar alguns pontos de 
interesse no mapa para deixa-lo com uma 
cara mais profissional. 
 Vamos colocar alguns pontos turístico e de 
interesse público de Manaus.
Adicionando pontos de Interesse (POI)
 Para adicionar um ponto de interesse 
precisamos de uma instância de 
GoogleMaps:
 Dentro da onCreate:
MapFragment mapFrag=
MapFragment)getFragmentManager().
findFragmentById(R.id.fragment1);
GoogleMap mMap=mapFrag.getMap();
Adicionando pontos de Interesse (POI)
 Para marcar um lugar no mapa precisamos 
de uma instancia da classe MarkerOption
passando a latitude, longitude e titulo.
 A latitude e longitude é fornecida através 
de uma instancia da classe 
 Para testar este recurso vamos adicionar no 
nosso mapa os pontos IFAM, UFAMe Teatro 
Amazonas
Adicionando o ponto UFAM
// latitude e longitude do IFAM
double latitude = -3.133995;
double longitude = - 60.012812;
// criar marcador
MarkerOptions marker = new 
MarkerOptions().position(
new LatLng(latitude,longitude)). 
title(“IFAM");
// adiciona o marcador no mapa
mMap.addMarker(marker);
Adicionando o ponto UFAM
// latitude e longitude da UFAM
double latitude = -3.090351;
double longitude = -59.963566;
// criar marcador
MarkerOptions marker = new 
MarkerOptions().position(
new LatLng(latitude,longitude)). 
title("UFAM");
// adiciona o marcador no mapa
mMap.addMarker(marker);
Adicionando o ponto Teatro Amazonas 
adicionando cores nos marcador
// latitude e longitude do Teatro Amazonas
latitude = -3.130058;
longitude = -60.023403;
// criar marcador
marker = new MarkerOptions().position(
new LatLng(latitude, longitude));
// Adicionando Titulo
marker.title("Teatro Amazonas");
marker.icon(BitmapDescriptorFactory.
defaultMarker(BitmapDescriptorFactory.HUE_ROSE));
// adicionar marcador
mMap.addMarker(marker);
Cores dos Marcadores
Você também pode usar um um ícone 
como marcador
// latitude e longitude do Teatro Amazonas
latitude = -3.130058;
longitude = -60.023403;
// criar marcador
marker = new MarkerOptions().position(
new LatLng(latitude, longitude));
// Adicionando Titulo
marker.title("Teatro Amazonas");
marker.icon(
BitmapDescriptorFactory.fromResource(
R.drawable.emo_im_laughing));
// adicionar marcador
mMap.addMarker(marker);
Centralizando o mapa
 Existe um recurso no mapa que ele 
movimenta o mapa para posição desejada 
dando a seção de uma câmera.
 O método moveCamera de GoogleMap
recebe como parâmetro uma instancia de 
CameraUpdate
 A classe CameraUpdateFactory recebe uma 
série de métodos estáticos que retornam 
CameraUpdate
Centralizando o mapa
 O método recebe o parâmetro da classe LatLng e 
o outro é o zoom, que varia entre 2.0 e 21.0. 
Sendo:
 2.0 o nível máximo de zoom out
 21.0 o nível máximo de zoom in
mMap.moveCamera(
CameraUpdateFactory.newLatLngZoom(
new LatLng(latitude,longitude),10));
Centralizando o mapa com animação da 
câmera
 Vamos substituir o código do slide anterior por 
este:
CameraPosition cameraPos=new 
CameraPosition.Builder()
.target(new LatLng(latitude, longitude))
.zoom(17)
.bearing(90)
.tilt(60)
.build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPos));
Centralizando o mapa com animação da 
câmera
 Vamos substituir o código do slide anterior por 
este:
CameraPosition cameraPos=new 
CameraPosition.Builder()
.target(new LatLng(latitude, longitude))
.zoom(17)
.bearing(90)
.tilt(60)
.build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPos));
Alvo e 
zoom
Centralizando o mapa com animação da 
câmera
 Vamos substituir o código do slide anterior por 
este:
CameraPosition cameraPos=new 
CameraPosition.Builder()
.target(new LatLng(latitude, longitude))
.zoom(17)
.bearing(90)
.tilt(60)
.build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPos));
Alvo e 
zoom
Define a posição da bússola
Centralizando o mapa com animação da 
câmera
 Vamos substituir o código do slide anterior por 
este:
CameraPosition cameraPos=new 
CameraPosition.Builder()
.target(new LatLng(latitude, longitude))
.zoom(17)
.bearing(90)
.tilt(60)
.build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPos));
Alvo e 
zoom
Define o ângulo da exibição do 
mapa
Centralizando o mapa com animação da 
câmera
 Vamos substituir o código do slide anterior por 
este:
CameraPosition cameraPos=new 
CameraPosition.Builder()
.target(new LatLng(latitude, longitude))
.zoom(17)
.bearing(90)
.tilt(60)
.build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPos));
Alvo e 
zoom
Constrói uma instancia de 
CameraPosition
Alterando o tipo de Mapa
 Tire o comentário do código um de cada vez e rode a 
aplicação para ver a diferença
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
mMap.setMapType(GoogleMap.MAP_TYPE_NONE);
As vezes você precisa marca uma área 
no mapa
 Polyline
 Conjunto de LatLng
 Cria uma série de segmentos de reta
 GoogleMap.addPolyline(opcoes)
 Exemplo:
PolylineOptions rectOptions = new PolylineOptions()
.add(new LatLng(-3.129892, -60.024078))
.add(new LatLng(-3.129914, -60.022812))
.add(new LatLng(-3.130846, -60.022833))
.add(new LatLng(-3.130782, -60.024131))
.add(new LatLng(-3.129892, -60.024078));
Polyline polyline = mMap.addPolyline(rectOptions);
Acessando seu local atual
 O código abaixo habilita o botão local atual
 mMap.setMyLocationEnabled(true);
 mMap.getUiSettings(). 
setMyLocationButtonEnabled(true);
 Para fazer uso deste recurso você deve 
permitir sua aplicação acessar localização 
fina
 <uses-permission android:name
="android.permission.ACCESS_FINE_LOCATION" />
Acessando os Botões de Zoom e função 
de Bussola
 Você pode desabilitar o botão de zoom 
utilizando este método:
mMap.getUiSettings().setZoomControlsEnabled(false);
 Funcionalidade de Bussola pode ser obtida 
usando:
mMap.getUiSettings().setCompassEnabled(true);
Dúvidas ??

Outros materiais