Este documento descreve o desenvolvimento de uma aplicação GPS para Android com as seguintes funcionalidades: mostrar a localização do dispositivo no mapa, calcular rotas entre dois pontos e pesquisar locais. A aplicação foi desenvolvida em Java usando o Eclipse IDE e testada em dispositivos com versões de 4.2 a 4.4 do Android. O documento explica em detalhe como inserir o mapa, adicionar a localização do dispositivo, pesquisar locais e calcular rotas na aplicação.
1. IMP.ETPM.023-01
TÉCNICO DE GESTÃO DE EQUIPAMENTOS INFORMÁTICOS
PROVA DE APTIDÃO PROFISSIONAL
DESENVOLVIMENTO DE UMA APLICAÇÃO GPS PARA O SISTEMA
MÓVEL ANDROID
TRIÉNIO DE 2012/2015
AUTOR:
RICARDO GONÇALVES, N.º23
PROFESSOR ORIENTADOR:
CLÉON ADÓNIS
Escola Técnica e Profissional de Mafra, 16 de março de 2015
2. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA i
3º/TGEI
IMP.ETPM.023-01
ÍNDICE
1 - Resumo............................................................................................................................ 1
2 - Abstract ........................................................................................................................... 2
3 - Introdução........................................................................................................................ 3
4 - Descrição do problema.................................................................................................... 4
5 - Desenvolvimento............................................................................................................. 5
5.1. Materiais ...................................................................................................................... 5
5.2. Equipamentos .............................................................................................................. 6
5.3. Métodos ....................................................................................................................... 7
5.3.1. Inserir o Mapa ...................................................................................................... 7
5.3.2. Camera Position ................................................................................................. 10
5.3.3. Location.............................................................................................................. 10
5.3.4. Rotas................................................................................................................... 11
5.3.5. Camera Position/Zoom/Map Type Programado ................................................ 12
5.3.6. Location Search/Markers ................................................................................... 12
5.3.7. Botões de Action Bar ......................................................................................... 13
6 - Resultados ..................................................................................................................... 16
6.1. Análise dos Resultados.............................................................................................. 16
7 - Conclusões .................................................................................................................... 18
8 - Referências.................................................................................................................... 19
9 - Anexos........................................................................................................................... 20
9.1. Código Camera Position............................................................................................ 20
3. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 1
3º/TGEI
IMP.ETPM.023-01
1 -RESUMO
Este trabalho consiste numa aplicação GPS para equipamentos móveis com o sistema
Android com função de resolver o problema de nem todas as pessoas possuírem um
equipamento GPS devido ao custo do mesmo. A aplicação é baseada na linguagem de
programação Java, criada a partir do IDE Eclipse e compilada para as versões 4.2 até 4.4,
possuindo funcionalidades como localizar o dispositivo no mapa, fazer rotas entre dois pontos
e pesquisar localizações desejadas pelo usuário apesar de ter um bug nesta funcionalidade que
se manifesta se o utilizador não tiver com acesso à Internet.
O GPS está totalmente em português e ao abrir a aplicação o mapa estará focado em
Portugal numa visão de satélite, porém é possível alterar a visão para um modo de mapa apenas
com estradas e nomes de localidades assinalados, sem terreno nem visão aérea.
4. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 2
3º/TGEI
IMP.ETPM.023-01
2 -ABSTRACT
This project is a GPS application to mobile devices with Android OS with the function to
solve the problem of not all the people own a GPS equipment due to the cost of the same. The
application is based on Java programming language, built in Eclipse IDE and compiled for
versions 4.2 to 4.4, having features like find the device in the map, making routes between two
points and search for user-desired locations despite having a bug in this feature that manifests
itself if the user does not have with Internet access.
The GPS is entirely in Portuguese and when the application is opened the map will focus
on Portugal in a satellite view, but it is able to change the view to a map with only roads and
location names, without ground or aerial view.
5. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 3
3º/TGEI
IMP.ETPM.023-01
3 -INTRODUÇÃO
Este projeto consiste num GPS para o sistema operativo móvel Android em que as
funcionalidades são mostrar a localização atual do dispositivo, fazer a rota entre duas
localizações inseridas pelo usuário mostrando o caminho mais rápido, pesquisar locais, inserir
markers para uma mais fácil visualização da localização no mapa do local pesquisado, e um
botão para alternar o mapa entre Normal e Hybrid. Esta aplicação foi desenvolvida para as
versões 4.2 até 4.4 de Android podendo ser estendida se assim for necessário necessitando de
uma permanente conecção à Internet para todas as funcionalidades estarem ativas. Este GPS
pode ser aplicado em setores de turismo por ser grátis e user friendly ajudando assim as pessoas
a guiarem-se facilmente dentro do país.
O projeto foi decidido no âmbito de adquirir e melhorar as capacidades de desenvolvimento
em sistemas móveis por ser uma área de interesse e que também por ser um setor da informática
que fornece lucro.
6. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 4
3º/TGEI
IMP.ETPM.023-01
4 -DESCRIÇÃO DO PROBLEMA
Atualmente os aparelhos GPS são muito utilizados, especialmente quando se viaja para
locais desconhecidos, porém nem todas as pessoas possuem posses para possuir tais
dispositivos então “Seria possível criar um GPS totalmente grátis, user friendly e em português
para um dispositivo móvel?”.
Para responder à pergunta de partida foi decidido que o sistema móvel escolhido seria o
Android por ser um dos líderes do mercado de sistemas móveis e por questões de testes de
desenvolvimento será criado para as versões 4.2 até para 4.4 o que significa 66.2% do mercado
Android segundo as Dashboards.
Os objetivos impostos inicialmente para o projeto são ter o mapa, o foco em Portugal, a
localização do utilizador, a pesquisa de localidades e as rotas. Isto tudo é o mínimo necessário
para que a aplicação seja um GPS.
7. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 5
3º/TGEI
IMP.ETPM.023-01
5 -DESENVOLVIMENTO
5.1. MATERIAIS
Para este projeto foi utilizado o Eclipse que é um IDE Open Source utilizado para fazer
programas em diversas linguagens. Instalando o plugin “Android SDK” é possível programar
aplicações de android usando a linguagem Java. Foi utilizado este no projeto devido a ser de
fácil utilização e compreensão para quem ainda é novo nesta área de aplicações. Existe um
outro IDE de desenvolvimento de aplicações chamado “Android Studio” que requer já um bom
conhecimento na área para ser devidamente utilizado.
8. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 6
3º/TGEI
IMP.ETPM.023-01
5.2. EQUIPAMENTOS
Foram utilizados equipamentos móveis com o sistema android 4.2 e 4.4 para poder testar a
aplicação devido ao facto que o emulador do SDK não suporta o API V2 do Google Maps e o
Genymotion, outro emulador, não ser possível instalar o “Google Play Services”, o que é
necessário para mostrar o mapa.
9. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 7
3º/TGEI
IMP.ETPM.023-01
5.3. MÉTODOS
5.3.1. INSERIR O MAPA
Após criado o projeto, mas não modificado deve-se adicionar a biblioteca “Google Play
Services lib” ao projeto. Para isso é necessário fazer o download de “Google Play Services” no
Android SDK, importar a biblioteca para o eclipse e clicar botão direito no que irá o ser o GPS,
ir em Properties > Android > Add > google-play-services_lib. Após adicionar a biblioteca ao
projeto GPS é necessário dar Build ao projeto da biblioteca no Eclipse. Isto irá fornecer todas
as funções android necessárias para colocar o mapa.
O primeiro é adicionar o mapa do Google Maps na aplicação e o primeiro passo é obter a
API Key. Para obter a API Key devemos:
Acessar o website https://code.google.com/apis/console/;
Carregar em “Creat New Project”;
Ativar o serviço “Google Maps Android API v2”;
Ir em APIs e autentificação > Credenciais > Criar nova chave > Chave do Android;
A caixa de texto deve-se preencher com a Impressão digital do certeficado SHA1 única
da máquina que se pode ver dentro do IDE Eclipse em Window > Preferences > Android
> Build;
Preenchendo a caixa de texto e clicando em “Criar” irá se obter a API Key.
O método aplicado no projeto para colocar o mapa na aplicação é utilizável do API 12
(Android 3.1) para cima. Nesse método é necessário editar apenas os ficheiros
“AndroidManifest.xml”, “activity_main.xml” e “MainActivity.java”.
Dentro do “AndroidManifest.xml” comecei por adicionar as permissões “INTERNET”,
“ACCESS_NETWORK_STATE” e “WRITE_EXTERNAL_STORAGE”. A permissão
“INTERNET irá permitir a aplicação de fazer o download dos mapas a partir dos servidores do
Google Maps; a permissão “ACCESS_NETWORK_STATE” irá verificar o estado de conecção
à internet para determinar os dados possíveis de se fazer download; a permissão
10. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 8
3º/TGEI
IMP.ETPM.023-01
“WRITE_EXTERNAL_STORAGE” serve para fazer cache dos mapas que se fez download
numa memória externa.
Dentro deste ficheiro é ainda necessário adicionar também a versão do “Google Play
Services” de modo a que a aplicação o use, o que é necessário para abrir o mapa. Para isso
adiciona-se o seguinte código dentro do elemento “<application>”:
Para colocar a API Key dentro do “AndroidManifest” de modo a ter acesso ao mapa é
necessário colocar o seguinte código ainda dentro do elemento <application>:
Onde em “API KEY” deve-se colocar a key obtida pelo método explicado
anteriormente.
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="API KEY"/>
11. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 9
3º/TGEI
IMP.ETPM.023-01
Por último, dentro do manifest, deve adicionar a versão 2 do “Open GL ES“ que serve
para fazer o render do mapa na aplicação, sem isto o mapa nunca irá aparecer. Para adicionar
basta colocar o seguinte código fora do elemento <application> mas dentro do elemento
<manifest>:
Dentro do “activity_main” iremos ao “Graphical Layout” e em “Layouts” arrasta-se o
“Fragment” para a preview layout selecionando “MapFragment”. Dentro do xml é necessário
editar o elemento fragment para o seguinte:
Dentro do MainActivity elimina-se todas as funções exceto a função “OnCreate”.
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
12. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 10
3º/TGEI
IMP.ETPM.023-01
5.3.2. CAMERA POSITION
O Camera Position é o lugar do mapa para onde a câmera vai estar a apontar quando
abrimos a aplicação. Para colocar o Camera Position e mais opções de mudança de layout
substitui-se o “activity_main.xml” pelo código 9.1 nos anexos. A coordenadas colocadas nesse
código representam o centro de Portugal e o zoom em 7 serve para poder se visualizar o país
inteiro na aplicação. No caso a aplicação foi deixada como “hybrid” que é um modo em que
mo mapa fica com uma visão em modo satélite, mas existem outros modos que são, Normal,
Satellite (igual ao Hybrid porém neste modo não assinala as estradas nem mostra os nomes das
ruas, localidades, etc), Terrain e None. O “cameraBearing” é a rotação do mapa em graus
quando abrimos a aplicação, basta deixa-lo em 0 para que quando seja aberto esteja direito. No
“Tilt” que é a inclinação é bom deixar uma pequena inclinação. O resto das opções são opções
de layout que para ativar basta escrever “true” e para desativar é escrever “false”.
5.3.3. LOCATION
O “Location Layer” é um pequeno botão que clicado irá mostrar a localização atual do
dispositivo através do sistema GPS do aparelho ou de conecção à rede. Para poder receber esses
dados de localização é necessário adicionar duas permissões dentro do “AndroidManifest”
chamadas ACCESS_COARSE_LOCATION que serve para deixar o API usar a conecção à
internet para determinar o lugar do dispositivo, e ACCESS_FINE_LOCATION que serve para
determinar a localização através do sistema GPS.
Para adicionar o botão deve-se primeiro ir ao “MainActivity” e alterar a função:
Para a função:
Isto serve para especificarmos que iremos apenas adicionar coisas ao fragment e não a outra
coisa.
public class MainActivity extends Activity {
public class MainActivity extends FragmentActivity {
13. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 11
3º/TGEI
IMP.ETPM.023-01
Para adicionar o botão em si devemos atribuir “GoogleMap” a uma variável, que no caso
foi chamado de “mMap”, isto fora da função “onCreate”. Logo após deve-se ativar o
“setMyLocationEnabled”, que será colocado dentro da função “onCreate”.
Também foi adicionado um pequeno código que serve para carregar o fragment na aplicação
a partir da activity onde se encontra e também para verificar se o dispositivo onde a aplicação
se encontra contém o “Google Play Services” instalado. Também foi trocado no xml o
“MapFragment” para “SupportMapFragment” de modo a usar o código de encontrar o fragment
dentro da activity e poder mostrá-lo:
5.3.4. ROTAS
Foram adicionadas ao layout duas caixas de texto e um botão para poderem receber do
utilizador a origem e o destino pretendidos. Estes dados iriam ser enviados primeiro à função
“getRoutByGMAV2()” que iria atribuir os dados a variáveis “string” para enviá-los para a
função “main” das rotas denominada de “getRoute()”. Nesta função é feita feita uma connecção
HTTP para receber as direções e interliga a função “buildJSONRoute”, que pertence à saída
JSON que serve para enviar à função “main” as coordenadas da origem e do destino bem como
outro dados, e a função “drawRoute()”, que tem como utilidade desenhar a rota no mapa a partir
dos dados que recebe da saída JSON e das direções recebidas a partir da conecção HTTP.
GoogleMap mMap;
…..
mMap.setMyLocationEnabled(true);
SupportMapFragment mapFrag =
(SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map);
14. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 12
3º/TGEI
IMP.ETPM.023-01
5.3.5. CAMERA POSITION/ZOOM/MAP TYPE PROGRAMADO
Devido à adição das 2 caixas de texto e do botão no 5.3.4 o xml adicionado ao fragment
em 5.3.2 já não é funcional, então os parâmetros estabelecidos lá tiveram que ser feitos
programavelmente em “MainActivity.java”. Para isso criei três variáveis, denominadas de
PORTUGAL_LAT, onde coloco a latitude do centro de Portugal, PORTUGAL_LNG, onde
coloco a longitude do centro de Portugal, e ZOOM onde coloco o zoom default utilizado na
aplicação sendo escolhido o 7 pois mostra o país inteiro. Dentro da função do “if” da função
“initMap()” localizada dentro do “if” da função “servicesOK()” que posterioremente está
dentro da função “onCreate()” foi adicionado o seguinte código:
Esta linha serve para quando a aplicação aberta o mapa esteja nas coordenadas e no
zoom anteriormente definidos nas variáveis utilizando a função “gotoLocation()” criada
para mover a câmera automaticamente para as coordenadas desejadas.
Para que o mapa esteja em modo “hybrid”, com os controlos de zoom e com a bússola
ativos foi necessário adicionar dentro da mesma função o seguinte código:
5.3.6. LOCATION SEARCH/MARKERS
Foi adicionado mais uma caixa de pesquisa e um botão ao “activity_map” que irá interligar
com a função “geoLocate()” no “MainActivity”. Esta função irá servir para transformar a
localidade pesquisada em coordenadas e então chamar a função “gotoLocation” para a câmera
para essas coordenadas.
gotoLocation(PORTUGAL_LAT, PORTUGAL_LNG, ZOOM);
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.getUiSettings().setCompassEnabled(true);
15. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 13
3º/TGEI
IMP.ETPM.023-01
Foi adicionado o seguinte código também dentro da função “geoLocate()”:
Este código tem a função de definir as opções do Marker que são, colocar o título da
localidade por cima do marker e colocar o marker nas coordenadas recebidas. A última linha
serve para adicionar o markerno mapa com as opções definidas anteriormente. Antes do código
de adição de markers foi ainda adicionado um código que irá remover os markers caso exista
algum para que quando seja pesquisado múltiplas localizações não sejam criados vários
markers e assim o anterior seja sempre removido.
5.3.7. BOTÕES DE ACTION BAR
Dentro da pasta “menu” existe um ficheiro denominado de “main.xml” onde é criado os
botões para a action bar. Para adicionar um botão deve-se seguir este padrão de código dentro
do xml:
O objeto “item” deve ser adicionado dentro do objeto “menu”. O icon vem de um pack
fornecido no website de desenvolvimento de Android e deve ser adicionado ao projeto dentro
das pastas “drawable” colocando devidamente segundo o tamanho do icon. Caso não seja
Marker maker;
…
MarkerOptions options = new MarkerOptions()
.title(locality)
.position(new LatLng(lat, lng));
marker = mMap.addMarker(options);
<item
android:id="@+id/mapTypeNormal"
android:icon="@drawable/ic_action_map"
android:title="@string/normal"
android:showAsAction="always"/>
16. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 14
3º/TGEI
IMP.ETPM.023-01
colocado um icon o botão adicionado irá aparecer com o nome atribuído em “strings.xml”. Para
que o botão apareça sempre na action bar e não fique na action overflow devemos colocar
“always” em “android:showAsAction”.
Para poder adicionar ações aos botões é necessário adicionar as funções
“onCreateOptionsMenu()” e “onOptionsItemsSelected”. A função “onCreateOptionsMenu()”
será para criar o “menu”, ou seja colocar os botões na action bar a partir do que está no
“main.xml” e para isso deve-se colocar essa função da seguinte forma:
Dentro da função “onOptionsItemsSelected” é necessário criar um switch em que cada case
é o id de cada botão para adicionar a função desejada.
Para o botão de alternar o mapa entre normal e hybrid foi adicionado um variável
denominada “CHECK” a que foi atribuído o número 1 e dentro do case do botão foi adicionado
uma função if em que caso a variável “CHECK” seja 1 o tipo de mapa altera para normal e
atribui o número 2 à variável “CHECK”, caso a variável não seja 1 o tipo de mapa altera para
hybrid e atribui o número 1 à variável “CHECK”.
Para o botão de remover makers foi adicionado uma função if em que caso marker seja
diferente null, ou seja, caso exista algum marker no mapa o mesmo irá ser removido.
Quanto ao botão about com easter egg, foi criado outra variável denominada “CHECK1” e
atribuído o número 1 à mesma. Dentro do case do botão foi adicionada uma função if que caso
“CHECK1” seja menor que 10 é criada e mostrada uma mensagem que diz "Aplicação criada
@Override
public boolean onCreateOptionsMenu (Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
17. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 15
3º/TGEI
IMP.ETPM.023-01
por Ricardo Gonçalves" e é adicionado “+1” ao número que já havia em “CHECK1”. Caso o
número da variável seja 10 é selecionada uma música dentro da pasta “raw” no projeto da
aplicação, sendo atribuído um “false” em “setLooping” para que não reproduza desde o começo
quando terminada, e reproduzida. É atribuído o número “1” a “CHECK1” de novo para poder
recomeçar o ciclo de clicks para o easter egg.
18. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 16
3º/TGEI
IMP.ETPM.023-01
6 -RESULTADOS
A aplicação possui um map fragment que ao inicia em modo hybrid centrado em Portugal,
controlos de zoom, bússola e um botão para detetar a localização do dispositivo, um
LinearLayout com duas caixas de texto para a origem e o destino e um botão para assim calcular
a rota entre os dois pontos, e acima disso possui mais um LinerLayout com uma caixa de texto
e um botão que tem a funcionalidade de pesquisar e marcar localizações inseridas pelo
utilizador.
O projeto contém também uma action bar personalizada com 3 botões, o primeiro que
mostra a informação de quem desenvolveu a aplicação, o segundo que tem como função
remover os markers colocados pela funcionalidade de pesquisa e o terceiro botão que serve
para alternar o tipo de mapa entre hybrid e normal.
6.1. ANÁLISE DOS RESULTADOS
No que diz respeito ao aparecer o mapa, ele carrega o fragment com sucesso desde que o
utilizador tenha o “Google Play Services” instalado no equipamento devido a ser necessário
este serviço para fazer o render do mapa. Ao iniciar a aplicação o o mapa carrega já nas
coordenadas do centro de Portugal com o zoom em 7 para que o país apareça por inteiro ou
quase por inteiro, dependendo do tamanho do visor do equipamento, e com a bússola e os
controlos de zoom também ativos.
Quanto à localização, aparece o layer no fragment que ao clicado o mapa irá se mover e
ampliar a localização do dispositivo, porém com um circulo em volta que serve como margem
de erro. A probabilidade de errar o lugar exato depende do sistema GPS do dispositivo ou da
internet, dependendo de qual o utilizador esteja a utilizar para obter a localização.
Na pesquisa de localidades o utilizador tem que escrever o nome do lugar e clicar no botão
“Ir” que ele irá mover a câmera do mapa e ampliar o local pesquisado, bem como adicionar um
marker para se o utilizador quiser diminuir o zoom possa ver claramente o local em comparação
à sua localização atual. Ao pesquisar outra localização ele não irá adicionar múltiplos markers,
19. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 17
3º/TGEI
IMP.ETPM.023-01
irá remover o anterior e adicionar um na nova localização pesquisada. Se o utilizador quiser
pesquisar localizações mais específicas deverá colocar pontos de referência como o concelho,
a cidade e o distrito (exemplo: Rua do Moinho Velho, Malveira, Lisboa). Esta funcionalidade
possuir um bug, se o utilizador pesquisar uma localização sem que esteja conectado à Internet
a aplicação irá dar um crash.
Na parte das rotas existem duas caixas de texto, a primeira que diz respeito ao local de
origem, e a segunda que diz respeito ao destino e com um botão que irá fazer a rota entre os
dois pontos pretendidos. Esta funcionalidade irá desenhar uma linha preta pelo caminho mais
rápido entre os dois pontos pelas estradas disponíveis, quer sejam estradas públicas ou
autoestradas. A escrita dos pontos funciona como a pesquisa de localidades, se for algo mais
específico necessitará de pontos de referência para ser localizado.
20. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 18
3º/TGEI
IMP.ETPM.023-01
7 -CONCLUSÕES
O objetivo principal deste projeto acabou sendo realizado, que era fazer uma aplicação open
scource e user friendly para o sistema móvel Android com as funcionalidades mínimas para se
tornar num GPS.
Também foram adicionadas algumas funcionalidades adicionais como a alternação de mapa
entre hybrid e normal, que no começo seria apenas para deixar em hybrid sem o botão de
alternação, a funcionalidade de adição e remoção de markers, onde no começo seria apenas
para haver uma pesquisa de localizações sem adicionar um marker e também o botão de
informações que contém um pequeno easter egg ao ser clicado dez vezes.
Apesar do bug na pesquisa de localizações, que devido ao utilizador não ter acesso à internet
a aplicação irá dar um crash o projeto apresenta-se utilizável porque o utilizador tem a
capacidade de ver a sua localização, fazer as rotas entre localizações desejadas e pesquisar as
localidades que desejar, desde que tenha acesso à internet enquanto estiver a utilizar a aplicação.
21. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 19
3º/TGEI
IMP.ETPM.023-01
8 -REFERÊNCIAS
Carvalho, A. (2012). Exercícios de Java: Algoritmia e Programação Estruturada. Lisboa: FCA
- Editora de Informática.
22. DESENVOLVIM ENT O DE UMA APLICAÇÃO GPS PARA O SISTEMA MÓVEL ANDROID
ESCOLA TÉCNICA E PROFISSIONAL DE MAFRA ANO LETIVO 2014/2015 PÁGINA 20
3º/TGEI
IMP.ETPM.023-01
9 -ANEXOS
9.1. CÓDIGO CAMERA POSITION
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"
map:cameraBearing="0"
map:cameraTargetLat="39.708771"
map:cameraTargetLng="-8.096923"
map:cameraTilt="30"
map:cameraZoom="7"
map:mapType="hybrid"
map:uiCompass="true"
map:uiRotateGestures="true"
map:uiScrollGestures="true"
map:uiTiltGestures="true"
map:uiZoomControls="true"
map:uiZoomGestures="true"/>