Professional Documents
Culture Documents
Google Maps
<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
Avisa ao usurio e ao sistema operacional que este aplicativo
vai receber mapas dos servidores da Google
<permission
android:name= "br.edu.ufam.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission
android:name="br.edu.ufam.permission.MAPS_RECEIVE" />
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
<uses-permission
android:name=
android:name=
"com.google.android.providers.gsf.permission.READ_GSERVICES" />
"com.google.android.providers.gsf.permission.READ_GSERVICES"/>
Configurando as permitions e features no
AndroidManifest.XML
Informa aos futuros usurios que somente os devices com
suporte OpenGL conseguem instalar a aplicao
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
http://developer.android.com/reference/android/Manifest.per
mission.html
Mostrando o mapa na aplicao
Selecione um LinerLayout para sua
aplicao e dentro dele coloque um
fragmente conforme cdigo abaixo:
<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>
Agora execute a aplicao.
Aplicao 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 turstico e de
interesse pblico de Manaus.
Adicionando pontos de Interesse (POI)
Para adicionar um ponto de interesse
precisamos de uma instncia 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 atravs
de uma instancia da classe
Para testar este recurso vamos adicionar no
nosso mapa os pontos IFAM, UFAM e 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");
// criar marcador
MarkerOptions marker = new
MarkerOptions().position(
new LatLng(latitude,longitude)).
title("UFAM");
// 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 tambm 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 posio desejada
dando a seo de uma cmera.
O mtodo moveCamera de GoogleMap
recebe como parmetro uma instancia de
CameraUpdate
A classe CameraUpdateFactory recebe uma
srie de mtodos estticos que retornam
CameraUpdate
Centralizando o mapa
O mtodo recebe o parmetro da classe LatLng e
o outro o zoom, que varia entre 2.0 e 21.0.
Sendo:
2.0 o nvel mximo de zoom out
21.0 o nvel mximo de zoom in
mMap.moveCamera(
CameraUpdateFactory.newLatLngZoom(
new LatLng(latitude,longitude),10));
Centralizando o mapa com animao da
cmera
Vamos substituir o cdigo 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 animao da
cmera
Vamos substituir o cdigo do slide anterior por
este:
CameraPosition cameraPos=new
CameraPosition.Builder()
Alvo e .target(new LatLng(latitude, longitude))
zoom .zoom(17)
.bearing(90)
.tilt(60)
.build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPos));
Centralizando o mapa com animao da
cmera
Vamos substituir o cdigo do slide anterior por
este:
CameraPosition cameraPos=new
CameraPosition.Builder()
Alvo e .target(new LatLng(latitude, longitude))
zoom .zoom(17)
.bearing(90) Define a posio da bssola
.tilt(60)
.build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPos));
Centralizando o mapa com animao da
cmera
Vamos substituir o cdigo do slide anterior por
este:
CameraPosition cameraPos=new
CameraPosition.Builder()
Alvo e .target(new LatLng(latitude, longitude))
zoom .zoom(17)
.bearing(90) Define o ngulo da exibio do
.tilt(60) mapa
.build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPos));
Centralizando o mapa com animao da
cmera
Vamos substituir o cdigo do slide anterior por
este:
CameraPosition cameraPos=new
CameraPosition.Builder()
Alvo e .target(new LatLng(latitude, longitude))
zoom .zoom(17)
.bearing(90) Constri uma instancia de
.tilt(60) CameraPosition
.build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPos));
Alterando o tipo de Mapa
Tire o comentrio do cdigo um de cada vez e rode a
aplicao para ver a diferena
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 srie 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 cdigo abaixo habilita o boto local atual
mMap.setMyLocationEnabled(true);
mMap.getUiSettings().
setMyLocationButtonEnabled(true);