revista da faculdade senai fatesg · pensei que se marcasse o caminho com o bar-bante, eu...

46

Upload: vonhan

Post on 30-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Revista da Faculdade SENAIFATESG

v3 n3 (jandez2015)

Diretor Regional SENAIPaulo Vargas

Diretora de Educaccedilatildeo e TecnologiaIvone Maria Elias Moreyra

Gerente de Educaccedilatildeo ProfissionalJorge Quirino Pereira Sobrinho

Gerente de Tecnologia e InovaccedilatildeoCristiane dos Reis Brandatildeo Neves

Diretor da Faculdade SENAI FATESGDario Queija de Siqueira

Supervisor de Educaccedilatildeo e Tecnologia Weysller Matuzinhos de Moura

Coordenadora PedagoacutegicaMarta Rodrigues de Almeida

Coordenadora de Poacutes-Graduaccedilatildeo e PesquisaElizabeth Maria de Souza

Coordenadora dos Cursos de GraduaccedilatildeoAna Flavia Marinho de Lima Garrote

Coordenador dos Cursos TeacutecnicosAlessandro Caetano Neves

Coordenador de Cursos de Aperfeiccediloamento e Exten-satildeoGiuliano Yudi Matunaga Batista

NUacuteCLEO DE ESTUDOS E PESQUISA ndash NEPCoordenadorJoseacute Luiz de Freitas Juacutenior

Conselho Editorial Antocircnio Pires de Castro JuacuteniorAna Flaacutevia Marinho de Lima GarroteDario Queija de Siqueira Edjalma Queiroz da SilvaEugecircnio Juacutelio Messala Cacircndido CarvalhoJoatildeo Caetano NetoJoseacute Luiz de Freitas JuacuteniorMaacutercio Giovane Cunha Fernandes Ricardo de Andrade Kratz

Ano 3nordm 03JulDez

2015

Revista Tecnologia da Informaccedilatildeo Aplicada SENAI Departamento Regional de Goiaacutes - v3 n3 (jandez2015) Goiacircnia SENAIDRGerecircncia de Educaccedilatildeo Profissional Faculdade de Tecnologia Senai de Desenvolvimento Gerencial - FATESG 2015

Periodicidade AnualEditada pelo NUacuteCLEO DE ESTUDOS E PESQUISA ndash NEP da FATESGDesigner Ricardo de Andrade Kratz

ISSN 2238-8532

Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial - FATESG Rua 227-A - Leste Universitaacuterio CEP 74610-060 Goiacircnia - GOFone (62) 3269-1200 wwwsenaigocombr

Sumaacuterio

Textos

08Poemas Existencial Harpa eVocecirc canta uma muacutesica para mim

Artigos

12Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades Mencionadas Aplicados a Mapas de Calor Adeilton Alves Santos Cleiton de Saacute Silva Ricardo Saul Santos Lopes Prof Orientador Weysller Matuzinhos de Moura MSc

Artigo 2

20Sistema Android To Do ListLeonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Artigo 3

24O Uso de Dispositivos Moacuteveis para Mensurar TerrenosWanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Artigo 4

32Georreferenciamento para a plataforma AndroidLeandro Rezende Carneiro de Mendonccedila Gustavo Gomes da Feacute

44

Dicas do Professor

Sites Sugeridos Prof Ricardo de Andrade Kratz

10A BUSCA DE UMA EacuteTICA DA VIDA MOBILE

Artigo 1

Poemas

Editorial

As instituiccedilotildees de ensino superior possuem um importante compromisso junto agrave sociedade no tocante a dissemi-naccedilatildeo do conhecimento Este processo de disseminaccedilatildeo eacute fundamentado em trecircs pilares baacutesicos ensino pesquisa e ex-tensatildeo O ensino transmite e instiga a construccedilatildeo do conhecimento junto ao aluno A extensatildeo indissociaacutevel do ensino e da pesquisa propaga o conhecimento acumulado visando a sua socializaccedilatildeo e interaccedilatildeo com a comunidade A pesquisa tem como objetivo a criaccedilatildeo a produccedilatildeo o desenvolvimento e a consequente difusatildeo do conhecimento

Nesta visatildeo a Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) que jaacute possuiacutea uma for-te estrutura em seus pilares do ensino e extensatildeo criou o Nuacutecleo de Estudos e Pesquisa (NEP) O NEP que eacute vinculado ao setor de Serviccedilos Teacutecnicos e Tecnoloacutegicos (STT) eacute um oacutergatildeo de apoio operacional que tem como objetivo principal promover a realizaccedilatildeo de estudos pesquisas e serviccedilos teacutecnicos aplicados sobre a demanda das instituiccedilotildees industriais do mercado e da sociedade

Para o fortalecimento da pesquisa eacute fundamental o envolvimento dos professores e alunos atraveacutes da introduccedilatildeo dos alunos no processo de iniciaccedilatildeo cientiacutefica vinculada a pesquisa aplicada A iniciaccedilatildeo cientiacutefica caracteriza se como uma accedilatildeo institucional que permite introduzir os estudantes de graduaccedilatildeo na pesquisa cientiacutefica colocando o aluno em contato direto com problemas e os meacutetodos de produccedilatildeo do conhecimento cientiacutefico

A FATESG juntamente com seu qualificado quadro de pesquisadores proporciona um momento privilegiado para a formaccedilatildeo de uma nova mentalidade em seus alunos pesquisadores os quais podem ainda pleitear uma bolsa de iniciaccedilatildeo cientiacutefica atraveacutes do Programa de Bolsa de Iniciaccedilatildeo Cientiacutefica da FATESG Desta forma alunos com um perfil e potencial para a pesquisa tecircm a oportunidade de desenvolver o conhecimento com o objetivo de inovar as soluccedilotildees existentes no mercado o que lhes proporcionaraacute um salto em sua formaccedilatildeo acadecircmica e profissional

A revista eletrocircnica da FATESG vem potencializar os benefiacutecios oriundos da pesquisa na unidade por prover um canal de divulgaccedilatildeo dos trabalhos de pesquisa atraveacutes de artigos cientiacuteficos Assim professores e alunos pesquisadores tecircm seus nomes projetados no meio acadecircmico o que fortaleceraacute seus curriacuteculos e auxiliaraacute em sua evoluccedilatildeo acadecircmica

Atualmente o NEP possui dois projetos de pesquisa em andamento um na aacuterea de seguranccedila forense e outro na aacuterea de desenvolvimento e banco de dados Entendo que esse nuacutemero de projetos tende a aumentar consideravelmente nos proacuteximos semestres na medida em que os alunos amadurecerem sua visatildeo quanto aos benefiacutecios oriundos da pesquisa aplicada

Neste cenaacuterio a FATESG consolida seu papel frente agrave sociedade e o setor industrial por proporcionar um ambiente completo para a formaccedilatildeo de seus alunos e para o desenvolvimento acadecircmico de seu corpo docente

Referecircncias Bibliograacuteficas

Nezello F Soll J and Zanon S O Papel da Universidade na Sociedade do Conhecimento Universidade Tecnoloacutegica Federal do Paranaacute 2006

Brito Cruz C H Pesquisa e Universidade Instituto de Estudos Avanccedilados da Universidade de Satildeo Paulo 2009

Soares V L Universidade e Sociedade - A Contribuiccedilatildeo da Extensatildeo para o Fortalecimento dessa Relaccedilatildeo Associaccedilatildeo Brasileira de Mantedoras do Ensino Superior (ABMES) 2005

Vilaccedila M L C Pesquisa e ensino consideraccedilotildees e reflexotildees UNIGRANRIO 2010

Nuacutecleo de Estudos e Pesquisa Regimento interno de pesquisa Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial 2010

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 20128

Poemas

Gessyca Pereira da Silva nasceu em 19021991 na cidade de Goiacircnia ndash GO Eacute for-mada em Letras Portuguecircs Inglecircs pela PUC-GO onde pesquisou Literatura Compara-da e foi bolsista BIC - PUC e PIBIC ndashCnpq durante a graduaccedilatildeo Atualmente eacute tutora em educaccedilatildeo a distacircncia e trabalha para Nuacutecleo Integrado de Educaccedilatildeo a Distacircncia do SESISENAI (NIEaD) Eacute poacutes-graduanda em Letramento Informacional pelo CIAR ndash UFG e pretende continuar estudando assuntos voltados agrave comunicaccedilatildeo e informaccedilatildeo

Curriacuteculo Lattes httpbuscatextualcnpqbrbuscatextualvisualizacvdoid=K4438681D6Gessyca Pereira da Silva

Existencial

Como me reencontrar se dentro de mim exis-tem diversas galaacutexias Em meu universo infinito acabo me perdendo de mim mesma e quando me perco nem mesmo o espelho consegue refletir minha face Se ateacute minha face desconheccedilo que diraacute meus sonhos Natildeo sei se satildeo se foram ou se seratildeo Vivo cada instante cada momento Algumas vezes percebo que estou proacuteximo do reencontro mas logo me desfaccedilo e desfaleccedilo Toda fita todo laccedilo embaraccedilo Natildeo haacute noacute que eu natildeo conheccedila Eu que os construiacute Pensei que se marcasse o caminho com o bar-bante eu conseguiria retornar Retornar ao princiacutepio agrave primeira ideia ao primeiro ldquoporquecircrdquo Por muito tem-po eu pensei que tudo era amor que ateacute o oacutedio era pas-siacutevel de ser amado Talvez porque o amor pareccedila ser um sentimento faacutecil por ser muito bonito quando represen-tado Eu pensava que o amor era capaz de superar tudo que era ele o responsaacutevel eternizaccedilatildeo de muitas coisas Na verdade isso tudo eacute consequecircncia das pala-vras Se elas natildeo existissem eu natildeo pensaria tanto natildeo me sentiria saturada delas dentro de mim Natildeo precisa-ria de quando em quando vomitaacute-las jaacute que muitas de-las natildeo satildeo digeriacuteveis Eacute por isso que natildeo se pode comer palavras pela boca jaacute que a ironia e ambiguidade po-dem tornar palavras aparentemente boas venenosas Com tanta informaccedilatildeo e tantos recados mal passados viveriacuteamos hospitalizados Palavras correm nas veias orbitam pensamen-tos permeiam ateacute superfiacutecies impermeaacuteveis O segredo eacute encontrar a palavra certa Seraacute meu infinito cons-truiacutedo pela uniatildeo das letras Seraacute que todos esses noacutes podem ser apagados para que uma nova histoacuteria seja escrita por cima da cicatriz deixada pela sombra do rabisco feito agrave laacutepis no papel

Goiacircnia 210215

Harpa

Meus versos satildeo como aacutegua voam como aacuteguia Ao mesmo tempo que eu tenho a densidade me perco na vastidatildeo Natildeo tenho motivos nem razotildees Soacute uma vida cheia um coraccedilatildeo valente Ah Meu coraccedilatildeo eacute vida meu pensamento eacute sonho Minhas matildeos satildeo o pulsar o trabalho o arpejo Com elas dedilho a harpa cada corda uma alma em cada alma minha essecircncia minhas asas Com as matildeos constituo meus caminhos atraveacutes de ondas infinitas em mundos risonhos de sau-dades O tempo que pulsa a cada compasso minha muacute-sica imperfeita incoerente dissonante O meu eu cons-tituiacutedo de cordas que desafinam que arrebentam que se trocam

Goiacircnia 16012014

Desde pequena a magia da combinaccedilatildeo das palavras me fascina Sempre gostei do fato de poder fazer o que quiser com as palavras criar

destruir reconstruir mudar o rumo da situaccedilatildeo Poder contar a mesma histoacuteria de diferentes maneiras dar diferentes sentidos agrave mesma coisa eacute magniacutefico

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada9

Vocecirc canta uma muacutesica para mim

Como negar o pedido daqueles olhos expectantes de crianccedila para um estranho na rua querendo tirar dali algo que os aproximasse Natildeo sei por que razatildeo ela queria que eu cantasse Cabeccedila quente nada que viesse espontane-amente Precisei de alguns minutos para recobrar a consciecircncia verificar se ela natildeo estava sozinha sem algum res-ponsaacutevel Para meu aliacutevio a matildee dela estava por ali observando sem entender a atitude da filha de quatro anos

Entatildeo finalmente me lembrei de uma muacutesica qualquer que ouvia na infacircncia Internamente relutante por conta do meu horaacuterio tentando demonstrar simpatia comecei a cantar Confesso que com algum descaso aparente querendo me livrar logo da situaccedilatildeo Do nada a menina se assentou na cadeira que estava proacutexima a ela e parou para me ouvir como se estivesse de frente a um palco assistido a um espetaacuteculo magniacutefico Ficou me olhando com tanta admiraccedilatildeo parecia ateacute que aquele momento era o melhor da sua vida seus olhos cintilavam ela ganhara o dia Quando me dei conta eu estava cantando com entusiasmo olhando dentro dos olhos dela e sorrindo Ela conseguira tirar de mim uma voz doce suave instaurou a paz que precisava para continuar o dia Impossiacutevel esquecer aqueles olhos Impossiacutevel esquecer a emoccedilatildeo de uma crianccedila um anjo que me dera uma rosa celestial um abraccedilo um sorriso e um ateacute logo

Goiacircnia 2014

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201210

Abelardo Rodrigues de Almeida Nascido em Inhumas - GO eacute Bacharel em Teologia pelo STBSB-RJ Especialista em Teologia Sistemaacutetica pelo STBSB-RJ Mestre em Filosofia Poliacutetica pela UFG doutorando em Teologia pela CPAJ-Machenzi-SP RTS-EUA

Abelardo Rodrigues de Almeida

JanDez 2015

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE Novas tecnologias novos desafios novos comportamentos novas aprendizagens novos entre-tenimentos novas enfermidades A vida entrou em um acelerador de novidades e upgrades tecnoloacutegicos que exige toda a capacidade intelectual e motora do indiviacuteduo O que representa para noacutes esta avalanche virtual e como surfar nestas ondas Como experimen-tar esta realidade liacutequida sem sucumbir no glamour das ofertas e perder o domiacutenio de si Como consumir sem ser consumido ou sem extinguir a fonte dos futu-ros seres

Haacute mais mobilidade hoje do que jamais se pensou A mobilidade que mais importa eacute da cone-xatildeo Mobilidade total significa conexatildeo ininterrupta Todos aspiram habitar na Rede permanecer na Rede integrar a Rede Transcender para o virtual O mundo para na estaccedilatildeo da palma da matildeo Natildeo apenas o apa-relho eacute uma ceacutelula mobile mas o proacuteprio indiviacuteduo eacute um roteador mobile Haacute uma sensaccedilatildeo de poder de liberdade mas tambeacutem de escamoteamento de refuacute-gio de ocultamento e de fuga da realidade

Precisamos criar uma eacutetica nova para a era da pessoa mobile e da sociedade em rede Esta nova eacuteti-ca deve antes de tudo ser humana e solidaacuteria O ser humano precisa se revestir de um conjunto de paracirc-metros que lhe sirva de morada segura Ou seja o ser concreto do homem deve se orientar por criteacuterios de bem ou mal que preserve e desenvolva sua essecircncia O bem e o mal satildeo juiacutezos de valor essenciais que estimu-lam o bem maior do ser e previnem contra os elemen-tos deterioradores corruptores e viciantes do ser

A eacutetica faz o ser humano voltar sobre sua es-secircncia e projetar o seu futuro ideal Para um dos maio-res pensadores de nosso tempo Hans Kung em sua obra Uma Eacutetica Global para a Poliacutetica e a Economia

Mundiais uma coisa ldquoeacute incontestaacutevel depende intei-ramente de nossa motivaccedilatildeo eacutetica se nos decidimos por fazer com que para a geraccedilatildeo de nossos filhos as coisas corram tatildeo bem como para noacutes ou melhor ou piorrdquo Nossas decisotildees seratildeo boas se baseadas em uma eacutetica reflexiva sobre noacutes e o futuro

A eacutetica implica uma tomada de consciecircncia radical e autecircntica sobre nossa finitude fragilidade e alienaccedilatildeo ou alienabilidade perante a forccedila das novas tecnologias e o risco do desvio do real para o virtual Pense no ser si mesmo pense no ser presente pense no ser futuro Natildeo seja um ser ausente da vida concre-ta nem da famiacutelia nem da convivialidade dos amigos e parentes A eacutetica do humano exige presenccedila e cor-poralidade diaacutelogo e abraccedilo autenticidade e cuidado com o futuro de si e dos outros A Eacutetica eacute o ser total agindo reflexivamente na antecipaccedilatildeo do futuro sus-tentaacutevel

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada11

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201212

Artigo 1

Revista Tecnologia da Informaccedilatildeo Aplicada JanDez 2015

Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades

Mencionadas Aplicados a Mapas de Calor

ADEILTON ALVES SANTOSsup1CLEITON DE SAacute SILVAsup2

RICARDO SAUL SANTOS LOPESsup3WEYSLLER MATUZINHOS DE MOURA4

1 2 e 3 Faculdade de Ciecircncia da Computaccedilatildeo ndash Instituto Unificado de Ensino Superior Objetivo (IUESO)Av T-02 nordm 1993 - Setor Bueno ndash Goiacircnia ndash GO ndash Brasil

4 Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

cleitonssricardosauladeiltonalvessantosweysllergmailcom weysllersenaisistemafiegorgbr

Abstract Find relevant information among the large amount of data produced on the Internet is a task with a high level of difficulty Every day people produce more and more content especially on social networks where it concentrates a large part of the Internet users With the purpose of facilitating access to information is presented in this work the technique of Named Entity Recognition (NER) which was used in the development of the application Traffic Monitor which seeks real-time tra-ffic information on the social network Twittertrade In addition the developed application displays the mined information in graphical form (heat map) providing the user with an easier and faster interpretationKey-words Mobile Traffic Monitor and Heat Map

Resumo Encontrar informaccedilotildees relevantes em meio agrave grande quantidade de dados gerados na Internet constitui uma tarefa com alto grau de dificuldade A cada dia as pessoas produzem mais e mais conteuacutedo em especial nas redes sociais onde se concentra uma grande parte dos internautas De forma a facilitar o acesso agrave informaccedilatildeo eacute apresentada nesse trabalho a teacutec-nica de Reconhecimento de Entidades Mencionadas a qual foi utilizada no desenvolvimento do aplicativo Traffic Monitor que busca em tempo real informaccedilotildees de tracircnsito na rede social Twittertrade Aleacutem disso o aplicativo desenvolvido exibe as informaccedilotildees mineradas em forma graacutefica (mapa de calor) proporcionando ao usuaacuterio uma interpretaccedilatildeo mais faacutecil e raacutepidaPalavras-chaves Moacutevel Monitoramento de Traacutefego e Mapa de Calor

1 Introduccedilatildeo

Um dos grandes desafios da computaccedilatildeo na aacuterea da Inteligecircn-cia Artificial (IA) eacute aproximar a linguagem natural da linguagem de maacutequina a fim de automatizar tarefas como a traduccedilatildeo de textos correccedilatildeo ortograacutefica extraccedilatildeo de informaccedilotildees a partir de dados da internet entre outras Atualmente eacute possiacutevel encontrar diversos aplicativos que executam tais tarefasos quais estatildeo pre-sentes no dia-a-dia de muitas pessoasporeacutem devido agrave comple-xidade da interpretaccedilatildeo da linguagem natural pelo computador esses aplicativos natildeo apresentam desempenho satisfatoacuterio em consequecircncia disso essa eacute uma aacuterea que necessita de constantes melhorias A simples busca de um termo (palavra ou expressatildeo qualquer) na internet por exemplo requer paciecircncia visto que quase sempre o resultado retornado possui outras informaccedilotildees aleacutem daquelas que usuaacuterio realmente necessita consequente-mente isso leva a um consumo de tempo na busca por infor-maccedilotildees relevantes (mineraccedilatildeo dos dados) O Processamento de Linguagem Natural (PLN) tambeacutem conhecido como Linguiacutestica Computacional busca justamente resolver essa lacuna que haacute na comunicaccedilatildeo entre homem e computador automatizando o pro-cesso de interpretaccedilatildeo de linguagem natural para linguagem de maacutequina proporcionando assim uma experiecircncia mais eficiente e agradaacutevel aos usuaacuterios

Se o internauta necessita de uma informaccedilatildeo em tem-po real por exemplo do tracircnsito aiacute o processo de busca pode ser ainda mais aacuterduo Em uma pesquisa no Googletrade pelo termo lsquoTransito em Goiacircniarsquo a notiacutecia mais recente retornada foi a de um dia anterior aoda pesquisa e ainda assim natildeo trazia infor-maccedilotildees relevantes da situaccedilatildeo do tracircnsito em Goiacircnia naquele instante Veja a seguir o termo mais recente que foi retornado em uma busca feita em 24062013 ldquoMotociclista eacute socorrido com fratura exposta apoacutes acidente em Goiacircniardquo1 Como alternativa ao Googletrade na tentativa de melhores resultados foi efetuada uma pesquisa no Twittertrade da Rede Me-tropolitana de Transporte Coletivo da Grande Goiacircnia (RMTC) que alimenta seu perfil nessa rede social com diversas informa-ccedilotildees dentre as quais informaccedilotildees sobre o tracircnsito na capital goiana Os cinco primeiros tweets da pesquisa realizada tambeacutem no dia 24062013 foram os seguintes

1 Informaccedilotildees sobre o tracircnsito da Regiatildeo Metropolitana em tempo real vocecirc encontra aqui Siga a RMTC no Twit-ter e fique bem informado )2 ederjcunha Sim Todas as linhas que trafegam pela re-giatildeo central de Goiacircnia seguem com o trajeto normal sem alteraccedilotildees3 Imediaccedilotildees do Terminal da Praccedila da Biacuteblia estatildeo livres fluxo vai sendo normalizado aos poucos Linhas voltam ao

1G1 Goiaacutes Tracircnsito Disponiacutevel em lthttpg1globocomgoiastransitonoticia201306motociclista-e-socorrido-com-fratura-exposta-apos-a-cidente-em-goianiahtmlgt Acesso em 24 jun 2013

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada13

JanDez 2015 Revista Tecnologia da Informaccedilatildeo Aplicada

trajeto normal4 DiasGuerreiro Linha 280 segue seu trajeto normal sem alteraccedilotildees ou interdiccedilotildees5 leo_ssousa Manifestantes seguem pela Av Anhanguera com destino agrave BR-153 impedindo o fluxo de veiacuteculos no local

Eacute possiacutevel perceber a partir da amostra acima que ain-da haacute necessidade de filtrar os dados retornados a fim de chegar agraves informaccedilotildees concretas sobre o tracircnsito que neste caso se en-contram nos tweets 3 e 5 respectivamente Como automatizar este processo de busca por informa-ccedilatildeo a partir de dados recebidos da internet e ainda tornar sua in-terpretaccedilatildeo mais faacutecil ao usuaacuterio atraveacutes de representaccedilotildees graacute-ficas (mapas de calor) eacute a proposta apresentada nesse trabalho Para tanto foi desenvolvido um aplicativo para dis-positivos moacuteveis que gera mapa de calor com informaccedilotildees de tracircnsito a partir da mineraccedilatildeo de dados (busca por informa-ccedilotildees relevantes) feita no perfil da RMTC no Twittertrade Na etapa de mineraccedilatildeo de dados foi usada a teacutecnica de Reconhecimento de Entidades Mencionadas (REM) tarefa da aacuterea da Extraccedilatildeo de Informaccedilatildeo que tem como objetivo a localizaccedilatildeo e classificaccedilatildeo de elementos (Entidade Mencionadas) como acontecimentos nome de pessoas organizaccedilotildees locais datas dentre outros pre-sentes em textos natildeo estruturados No desenvolvimento da apli-caccedilatildeo foram utilizadas tambeacutem as seguintes ferramentas Goo-gle AppEngine Twitter4J Google Maps API Google Geocoding API Jersey ndashRESTfulWeb Services e AndroidAPI

2 Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) campo da In-teligecircncia Artificial aborda conceitos necessaacuterios para o desen-volvimento de sistemas de geraccedilatildeo e interpretaccedilatildeo de linguagem natural que aproximem cada vez mais a linguagem humana da linguagem de maacutequina permitindo dessa forma que os humanos possam se comunicar com computadores vice-versa de forma mais natural e eficiente utilizando para isso sua linguagem nata Apesar dos avanccedilos no campo do PLN ainda haacute muitas implicaccedilotildees que expotildeem a necessidade de estudos e melhorias nessa aacutereaUm exemplo onde eacute visiacutevel essa necessidade eacuteem pro-gramas editores de texto que embora uacuteteis ainda natildeo apresen-tam um desempenho ideal quando usados para correccedilotildees orto-graacuteficas Outro exemplo satildeo os sistemas de traduccedilatildeo automaacutetica que apenas auxiliam na traduccedilatildeo das palavras mas que precisam da intervenccedilatildeo humana se o usuaacuterio quer um texto coerente e compreensiacutevel Recentemente dada a relevacircncia da aacuterea de PLN para a computaccedilatildeo foi criada a Comissatildeo Especial de Processamen-to de Linguagem Natural (CE-PLN) aprovada durante o XXVII Congresso da Sociedade Brasileira de Computaccedilatildeo realizado no Rio de Janeiro-RJ em 20072

21 Extraccedilatildeo de InformaccedilatildeoCom grande quantidade de dados produzidos a todo instante a Internet tornou-se um campo bastante interessante para aplica-ccedilatildeo de teacutecnicas de PLN

Surgida na deacutecada de 60 como uma proposta militar e restrita a poucos usuaacuterios hoje a Internet apresenta um cenaacuterio bastante diferente Com um vasto nuacutemero de usuaacuterios crescendo a cada dia segundo Instituto Brasileiro de Geografia e Estatiacutes-tica (IBGE)3 entre 2005 e 2011 o nuacutemero de internautas acima de 10 anos de idade aumentou 1438 no Brasil esse ambiente livre e colaborativo eacute uma oacutetima fonte de informaccedilotildees desde que o conteuacutedo produzido por seus usuaacuterios seja devidamente filtrado trazendo assim aquilo que eacute relevante

Outro levantamento feito pelo IBOPE4 divulgado em 2013 aponta 535 milhotildees de usuaacuterios ativos de Internet no Brasil dos quais 46 milhotildees ou seja 86 dos internautas ativos acessam algum tipo de rede social ou comunidade virtual (blogs micro-blogs e foacuteruns)

Dentre esses sites ainda segundo pesquisa IBOPE Face-booktrade e Twittertrade satildeo os que ganham mais atenccedilatildeo e tempo dos brasileiros que navegam na rede sendo que haacute uma grande produccedilatildeo de conteuacutedo nessas duas redes como mostrado em nuacute-meros5

- Facebooktrade

85962 - nuacutemero mensal de posts somente no Brasil (monitoradas 836 paacuteginas no Facebooktrade no Brasil o paiacutes mais ativo nesta rede) 1 bilhatildeo - nuacutemero mensal de usuaacuterios ativos no Facebooktrade em todo mundo (ateacute outubro de 2012)

- Twittertrade

175 milhotildees - meacutedia de tweets enviados por dia ao longo de 2012 200 milhotildees - satildeo os usuaacuterios mensais ativos no Twittertrade

Como eacute possiacutevel perceber haacute uma grande quantidade de dados produzidos na internet em especial nas redes sociais de onde o aplicativo desenvolvido nesse trabalho recolhe amostra de dados em busca de informaccedilotildees Essa etapa tambeacutem eacute conhe-cida como Extraccedilatildeo de Informaccedilatildeoum estaacutegio consequente agrave mineraccedilatildeo de dados que tem como propoacutesito segundo Riloff e Jones (1999) extrair informaccedilotildees especiacuteficas de texto em liacuten-gua natural Sendo assim partindo de uma amostra de dados eacute possiacutevel chegar agrave informaccedilatildeo A figura 1 exemplifica onde estaacute posicionada a informaccedilatildeo na piracircmide do conhecimento

3 Reconhecimento de Entidades Mencionadas (REM)

Subaeacuterea da Extraccedilatildeo de Informaccedilatildeo o Reconhecimento de Entidades Mencionadas tem como objetivo a localizaccedilatildeo e

2Sociedade Brasileira de Computaccedilatildeo Processamento de Linguagem Natural Disponiacutevel emlthttpsbcorgbrindexphpoption=com_conten-tampview=categoryamplayout=blogampid=50ampItemid=71gt Acesso em 27 set 20133Portal Brasil Nuacutemero de usuaacuterios de internet e de pessoas com celular cresceu mais de 100 no Brasil Disponiacutevel emlthttpwwwbrasilgovbrnoticiasarquivos20130516numero-de-usuarios-de-internet-e-de-pessoas-com-celular-cresceu-mais-de-100-no-brasilgt Acesso em 27 set 20134IBOPE Nuacutemero de usuaacuterios de redes sociais ultrapassa 46 milhotildees de brasileiros Disponiacutevel emlthttpwwwibopecombrpt-brnoticiaspagi-nasnumero-de-usuarios-de-redes-sociais-ultrapassa-46-milhoes-de-brasileirosaspxgt Acesso em 24 jun 20135Royal Pingdom Internet 2012 in numbers Disponiacutevel emlthttproyalpingdomcom20130116internet-2012-in-numbersgt Acesso em 24 jun 2013

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 2: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Diretor Regional SENAIPaulo Vargas

Diretora de Educaccedilatildeo e TecnologiaIvone Maria Elias Moreyra

Gerente de Educaccedilatildeo ProfissionalJorge Quirino Pereira Sobrinho

Gerente de Tecnologia e InovaccedilatildeoCristiane dos Reis Brandatildeo Neves

Diretor da Faculdade SENAI FATESGDario Queija de Siqueira

Supervisor de Educaccedilatildeo e Tecnologia Weysller Matuzinhos de Moura

Coordenadora PedagoacutegicaMarta Rodrigues de Almeida

Coordenadora de Poacutes-Graduaccedilatildeo e PesquisaElizabeth Maria de Souza

Coordenadora dos Cursos de GraduaccedilatildeoAna Flavia Marinho de Lima Garrote

Coordenador dos Cursos TeacutecnicosAlessandro Caetano Neves

Coordenador de Cursos de Aperfeiccediloamento e Exten-satildeoGiuliano Yudi Matunaga Batista

NUacuteCLEO DE ESTUDOS E PESQUISA ndash NEPCoordenadorJoseacute Luiz de Freitas Juacutenior

Conselho Editorial Antocircnio Pires de Castro JuacuteniorAna Flaacutevia Marinho de Lima GarroteDario Queija de Siqueira Edjalma Queiroz da SilvaEugecircnio Juacutelio Messala Cacircndido CarvalhoJoatildeo Caetano NetoJoseacute Luiz de Freitas JuacuteniorMaacutercio Giovane Cunha Fernandes Ricardo de Andrade Kratz

Ano 3nordm 03JulDez

2015

Revista Tecnologia da Informaccedilatildeo Aplicada SENAI Departamento Regional de Goiaacutes - v3 n3 (jandez2015) Goiacircnia SENAIDRGerecircncia de Educaccedilatildeo Profissional Faculdade de Tecnologia Senai de Desenvolvimento Gerencial - FATESG 2015

Periodicidade AnualEditada pelo NUacuteCLEO DE ESTUDOS E PESQUISA ndash NEP da FATESGDesigner Ricardo de Andrade Kratz

ISSN 2238-8532

Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial - FATESG Rua 227-A - Leste Universitaacuterio CEP 74610-060 Goiacircnia - GOFone (62) 3269-1200 wwwsenaigocombr

Sumaacuterio

Textos

08Poemas Existencial Harpa eVocecirc canta uma muacutesica para mim

Artigos

12Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades Mencionadas Aplicados a Mapas de Calor Adeilton Alves Santos Cleiton de Saacute Silva Ricardo Saul Santos Lopes Prof Orientador Weysller Matuzinhos de Moura MSc

Artigo 2

20Sistema Android To Do ListLeonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Artigo 3

24O Uso de Dispositivos Moacuteveis para Mensurar TerrenosWanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Artigo 4

32Georreferenciamento para a plataforma AndroidLeandro Rezende Carneiro de Mendonccedila Gustavo Gomes da Feacute

44

Dicas do Professor

Sites Sugeridos Prof Ricardo de Andrade Kratz

10A BUSCA DE UMA EacuteTICA DA VIDA MOBILE

Artigo 1

Poemas

Editorial

As instituiccedilotildees de ensino superior possuem um importante compromisso junto agrave sociedade no tocante a dissemi-naccedilatildeo do conhecimento Este processo de disseminaccedilatildeo eacute fundamentado em trecircs pilares baacutesicos ensino pesquisa e ex-tensatildeo O ensino transmite e instiga a construccedilatildeo do conhecimento junto ao aluno A extensatildeo indissociaacutevel do ensino e da pesquisa propaga o conhecimento acumulado visando a sua socializaccedilatildeo e interaccedilatildeo com a comunidade A pesquisa tem como objetivo a criaccedilatildeo a produccedilatildeo o desenvolvimento e a consequente difusatildeo do conhecimento

Nesta visatildeo a Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) que jaacute possuiacutea uma for-te estrutura em seus pilares do ensino e extensatildeo criou o Nuacutecleo de Estudos e Pesquisa (NEP) O NEP que eacute vinculado ao setor de Serviccedilos Teacutecnicos e Tecnoloacutegicos (STT) eacute um oacutergatildeo de apoio operacional que tem como objetivo principal promover a realizaccedilatildeo de estudos pesquisas e serviccedilos teacutecnicos aplicados sobre a demanda das instituiccedilotildees industriais do mercado e da sociedade

Para o fortalecimento da pesquisa eacute fundamental o envolvimento dos professores e alunos atraveacutes da introduccedilatildeo dos alunos no processo de iniciaccedilatildeo cientiacutefica vinculada a pesquisa aplicada A iniciaccedilatildeo cientiacutefica caracteriza se como uma accedilatildeo institucional que permite introduzir os estudantes de graduaccedilatildeo na pesquisa cientiacutefica colocando o aluno em contato direto com problemas e os meacutetodos de produccedilatildeo do conhecimento cientiacutefico

A FATESG juntamente com seu qualificado quadro de pesquisadores proporciona um momento privilegiado para a formaccedilatildeo de uma nova mentalidade em seus alunos pesquisadores os quais podem ainda pleitear uma bolsa de iniciaccedilatildeo cientiacutefica atraveacutes do Programa de Bolsa de Iniciaccedilatildeo Cientiacutefica da FATESG Desta forma alunos com um perfil e potencial para a pesquisa tecircm a oportunidade de desenvolver o conhecimento com o objetivo de inovar as soluccedilotildees existentes no mercado o que lhes proporcionaraacute um salto em sua formaccedilatildeo acadecircmica e profissional

A revista eletrocircnica da FATESG vem potencializar os benefiacutecios oriundos da pesquisa na unidade por prover um canal de divulgaccedilatildeo dos trabalhos de pesquisa atraveacutes de artigos cientiacuteficos Assim professores e alunos pesquisadores tecircm seus nomes projetados no meio acadecircmico o que fortaleceraacute seus curriacuteculos e auxiliaraacute em sua evoluccedilatildeo acadecircmica

Atualmente o NEP possui dois projetos de pesquisa em andamento um na aacuterea de seguranccedila forense e outro na aacuterea de desenvolvimento e banco de dados Entendo que esse nuacutemero de projetos tende a aumentar consideravelmente nos proacuteximos semestres na medida em que os alunos amadurecerem sua visatildeo quanto aos benefiacutecios oriundos da pesquisa aplicada

Neste cenaacuterio a FATESG consolida seu papel frente agrave sociedade e o setor industrial por proporcionar um ambiente completo para a formaccedilatildeo de seus alunos e para o desenvolvimento acadecircmico de seu corpo docente

Referecircncias Bibliograacuteficas

Nezello F Soll J and Zanon S O Papel da Universidade na Sociedade do Conhecimento Universidade Tecnoloacutegica Federal do Paranaacute 2006

Brito Cruz C H Pesquisa e Universidade Instituto de Estudos Avanccedilados da Universidade de Satildeo Paulo 2009

Soares V L Universidade e Sociedade - A Contribuiccedilatildeo da Extensatildeo para o Fortalecimento dessa Relaccedilatildeo Associaccedilatildeo Brasileira de Mantedoras do Ensino Superior (ABMES) 2005

Vilaccedila M L C Pesquisa e ensino consideraccedilotildees e reflexotildees UNIGRANRIO 2010

Nuacutecleo de Estudos e Pesquisa Regimento interno de pesquisa Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial 2010

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 20128

Poemas

Gessyca Pereira da Silva nasceu em 19021991 na cidade de Goiacircnia ndash GO Eacute for-mada em Letras Portuguecircs Inglecircs pela PUC-GO onde pesquisou Literatura Compara-da e foi bolsista BIC - PUC e PIBIC ndashCnpq durante a graduaccedilatildeo Atualmente eacute tutora em educaccedilatildeo a distacircncia e trabalha para Nuacutecleo Integrado de Educaccedilatildeo a Distacircncia do SESISENAI (NIEaD) Eacute poacutes-graduanda em Letramento Informacional pelo CIAR ndash UFG e pretende continuar estudando assuntos voltados agrave comunicaccedilatildeo e informaccedilatildeo

Curriacuteculo Lattes httpbuscatextualcnpqbrbuscatextualvisualizacvdoid=K4438681D6Gessyca Pereira da Silva

Existencial

Como me reencontrar se dentro de mim exis-tem diversas galaacutexias Em meu universo infinito acabo me perdendo de mim mesma e quando me perco nem mesmo o espelho consegue refletir minha face Se ateacute minha face desconheccedilo que diraacute meus sonhos Natildeo sei se satildeo se foram ou se seratildeo Vivo cada instante cada momento Algumas vezes percebo que estou proacuteximo do reencontro mas logo me desfaccedilo e desfaleccedilo Toda fita todo laccedilo embaraccedilo Natildeo haacute noacute que eu natildeo conheccedila Eu que os construiacute Pensei que se marcasse o caminho com o bar-bante eu conseguiria retornar Retornar ao princiacutepio agrave primeira ideia ao primeiro ldquoporquecircrdquo Por muito tem-po eu pensei que tudo era amor que ateacute o oacutedio era pas-siacutevel de ser amado Talvez porque o amor pareccedila ser um sentimento faacutecil por ser muito bonito quando represen-tado Eu pensava que o amor era capaz de superar tudo que era ele o responsaacutevel eternizaccedilatildeo de muitas coisas Na verdade isso tudo eacute consequecircncia das pala-vras Se elas natildeo existissem eu natildeo pensaria tanto natildeo me sentiria saturada delas dentro de mim Natildeo precisa-ria de quando em quando vomitaacute-las jaacute que muitas de-las natildeo satildeo digeriacuteveis Eacute por isso que natildeo se pode comer palavras pela boca jaacute que a ironia e ambiguidade po-dem tornar palavras aparentemente boas venenosas Com tanta informaccedilatildeo e tantos recados mal passados viveriacuteamos hospitalizados Palavras correm nas veias orbitam pensamen-tos permeiam ateacute superfiacutecies impermeaacuteveis O segredo eacute encontrar a palavra certa Seraacute meu infinito cons-truiacutedo pela uniatildeo das letras Seraacute que todos esses noacutes podem ser apagados para que uma nova histoacuteria seja escrita por cima da cicatriz deixada pela sombra do rabisco feito agrave laacutepis no papel

Goiacircnia 210215

Harpa

Meus versos satildeo como aacutegua voam como aacuteguia Ao mesmo tempo que eu tenho a densidade me perco na vastidatildeo Natildeo tenho motivos nem razotildees Soacute uma vida cheia um coraccedilatildeo valente Ah Meu coraccedilatildeo eacute vida meu pensamento eacute sonho Minhas matildeos satildeo o pulsar o trabalho o arpejo Com elas dedilho a harpa cada corda uma alma em cada alma minha essecircncia minhas asas Com as matildeos constituo meus caminhos atraveacutes de ondas infinitas em mundos risonhos de sau-dades O tempo que pulsa a cada compasso minha muacute-sica imperfeita incoerente dissonante O meu eu cons-tituiacutedo de cordas que desafinam que arrebentam que se trocam

Goiacircnia 16012014

Desde pequena a magia da combinaccedilatildeo das palavras me fascina Sempre gostei do fato de poder fazer o que quiser com as palavras criar

destruir reconstruir mudar o rumo da situaccedilatildeo Poder contar a mesma histoacuteria de diferentes maneiras dar diferentes sentidos agrave mesma coisa eacute magniacutefico

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada9

Vocecirc canta uma muacutesica para mim

Como negar o pedido daqueles olhos expectantes de crianccedila para um estranho na rua querendo tirar dali algo que os aproximasse Natildeo sei por que razatildeo ela queria que eu cantasse Cabeccedila quente nada que viesse espontane-amente Precisei de alguns minutos para recobrar a consciecircncia verificar se ela natildeo estava sozinha sem algum res-ponsaacutevel Para meu aliacutevio a matildee dela estava por ali observando sem entender a atitude da filha de quatro anos

Entatildeo finalmente me lembrei de uma muacutesica qualquer que ouvia na infacircncia Internamente relutante por conta do meu horaacuterio tentando demonstrar simpatia comecei a cantar Confesso que com algum descaso aparente querendo me livrar logo da situaccedilatildeo Do nada a menina se assentou na cadeira que estava proacutexima a ela e parou para me ouvir como se estivesse de frente a um palco assistido a um espetaacuteculo magniacutefico Ficou me olhando com tanta admiraccedilatildeo parecia ateacute que aquele momento era o melhor da sua vida seus olhos cintilavam ela ganhara o dia Quando me dei conta eu estava cantando com entusiasmo olhando dentro dos olhos dela e sorrindo Ela conseguira tirar de mim uma voz doce suave instaurou a paz que precisava para continuar o dia Impossiacutevel esquecer aqueles olhos Impossiacutevel esquecer a emoccedilatildeo de uma crianccedila um anjo que me dera uma rosa celestial um abraccedilo um sorriso e um ateacute logo

Goiacircnia 2014

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201210

Abelardo Rodrigues de Almeida Nascido em Inhumas - GO eacute Bacharel em Teologia pelo STBSB-RJ Especialista em Teologia Sistemaacutetica pelo STBSB-RJ Mestre em Filosofia Poliacutetica pela UFG doutorando em Teologia pela CPAJ-Machenzi-SP RTS-EUA

Abelardo Rodrigues de Almeida

JanDez 2015

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE Novas tecnologias novos desafios novos comportamentos novas aprendizagens novos entre-tenimentos novas enfermidades A vida entrou em um acelerador de novidades e upgrades tecnoloacutegicos que exige toda a capacidade intelectual e motora do indiviacuteduo O que representa para noacutes esta avalanche virtual e como surfar nestas ondas Como experimen-tar esta realidade liacutequida sem sucumbir no glamour das ofertas e perder o domiacutenio de si Como consumir sem ser consumido ou sem extinguir a fonte dos futu-ros seres

Haacute mais mobilidade hoje do que jamais se pensou A mobilidade que mais importa eacute da cone-xatildeo Mobilidade total significa conexatildeo ininterrupta Todos aspiram habitar na Rede permanecer na Rede integrar a Rede Transcender para o virtual O mundo para na estaccedilatildeo da palma da matildeo Natildeo apenas o apa-relho eacute uma ceacutelula mobile mas o proacuteprio indiviacuteduo eacute um roteador mobile Haacute uma sensaccedilatildeo de poder de liberdade mas tambeacutem de escamoteamento de refuacute-gio de ocultamento e de fuga da realidade

Precisamos criar uma eacutetica nova para a era da pessoa mobile e da sociedade em rede Esta nova eacuteti-ca deve antes de tudo ser humana e solidaacuteria O ser humano precisa se revestir de um conjunto de paracirc-metros que lhe sirva de morada segura Ou seja o ser concreto do homem deve se orientar por criteacuterios de bem ou mal que preserve e desenvolva sua essecircncia O bem e o mal satildeo juiacutezos de valor essenciais que estimu-lam o bem maior do ser e previnem contra os elemen-tos deterioradores corruptores e viciantes do ser

A eacutetica faz o ser humano voltar sobre sua es-secircncia e projetar o seu futuro ideal Para um dos maio-res pensadores de nosso tempo Hans Kung em sua obra Uma Eacutetica Global para a Poliacutetica e a Economia

Mundiais uma coisa ldquoeacute incontestaacutevel depende intei-ramente de nossa motivaccedilatildeo eacutetica se nos decidimos por fazer com que para a geraccedilatildeo de nossos filhos as coisas corram tatildeo bem como para noacutes ou melhor ou piorrdquo Nossas decisotildees seratildeo boas se baseadas em uma eacutetica reflexiva sobre noacutes e o futuro

A eacutetica implica uma tomada de consciecircncia radical e autecircntica sobre nossa finitude fragilidade e alienaccedilatildeo ou alienabilidade perante a forccedila das novas tecnologias e o risco do desvio do real para o virtual Pense no ser si mesmo pense no ser presente pense no ser futuro Natildeo seja um ser ausente da vida concre-ta nem da famiacutelia nem da convivialidade dos amigos e parentes A eacutetica do humano exige presenccedila e cor-poralidade diaacutelogo e abraccedilo autenticidade e cuidado com o futuro de si e dos outros A Eacutetica eacute o ser total agindo reflexivamente na antecipaccedilatildeo do futuro sus-tentaacutevel

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada11

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201212

Artigo 1

Revista Tecnologia da Informaccedilatildeo Aplicada JanDez 2015

Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades

Mencionadas Aplicados a Mapas de Calor

ADEILTON ALVES SANTOSsup1CLEITON DE SAacute SILVAsup2

RICARDO SAUL SANTOS LOPESsup3WEYSLLER MATUZINHOS DE MOURA4

1 2 e 3 Faculdade de Ciecircncia da Computaccedilatildeo ndash Instituto Unificado de Ensino Superior Objetivo (IUESO)Av T-02 nordm 1993 - Setor Bueno ndash Goiacircnia ndash GO ndash Brasil

4 Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

cleitonssricardosauladeiltonalvessantosweysllergmailcom weysllersenaisistemafiegorgbr

Abstract Find relevant information among the large amount of data produced on the Internet is a task with a high level of difficulty Every day people produce more and more content especially on social networks where it concentrates a large part of the Internet users With the purpose of facilitating access to information is presented in this work the technique of Named Entity Recognition (NER) which was used in the development of the application Traffic Monitor which seeks real-time tra-ffic information on the social network Twittertrade In addition the developed application displays the mined information in graphical form (heat map) providing the user with an easier and faster interpretationKey-words Mobile Traffic Monitor and Heat Map

Resumo Encontrar informaccedilotildees relevantes em meio agrave grande quantidade de dados gerados na Internet constitui uma tarefa com alto grau de dificuldade A cada dia as pessoas produzem mais e mais conteuacutedo em especial nas redes sociais onde se concentra uma grande parte dos internautas De forma a facilitar o acesso agrave informaccedilatildeo eacute apresentada nesse trabalho a teacutec-nica de Reconhecimento de Entidades Mencionadas a qual foi utilizada no desenvolvimento do aplicativo Traffic Monitor que busca em tempo real informaccedilotildees de tracircnsito na rede social Twittertrade Aleacutem disso o aplicativo desenvolvido exibe as informaccedilotildees mineradas em forma graacutefica (mapa de calor) proporcionando ao usuaacuterio uma interpretaccedilatildeo mais faacutecil e raacutepidaPalavras-chaves Moacutevel Monitoramento de Traacutefego e Mapa de Calor

1 Introduccedilatildeo

Um dos grandes desafios da computaccedilatildeo na aacuterea da Inteligecircn-cia Artificial (IA) eacute aproximar a linguagem natural da linguagem de maacutequina a fim de automatizar tarefas como a traduccedilatildeo de textos correccedilatildeo ortograacutefica extraccedilatildeo de informaccedilotildees a partir de dados da internet entre outras Atualmente eacute possiacutevel encontrar diversos aplicativos que executam tais tarefasos quais estatildeo pre-sentes no dia-a-dia de muitas pessoasporeacutem devido agrave comple-xidade da interpretaccedilatildeo da linguagem natural pelo computador esses aplicativos natildeo apresentam desempenho satisfatoacuterio em consequecircncia disso essa eacute uma aacuterea que necessita de constantes melhorias A simples busca de um termo (palavra ou expressatildeo qualquer) na internet por exemplo requer paciecircncia visto que quase sempre o resultado retornado possui outras informaccedilotildees aleacutem daquelas que usuaacuterio realmente necessita consequente-mente isso leva a um consumo de tempo na busca por infor-maccedilotildees relevantes (mineraccedilatildeo dos dados) O Processamento de Linguagem Natural (PLN) tambeacutem conhecido como Linguiacutestica Computacional busca justamente resolver essa lacuna que haacute na comunicaccedilatildeo entre homem e computador automatizando o pro-cesso de interpretaccedilatildeo de linguagem natural para linguagem de maacutequina proporcionando assim uma experiecircncia mais eficiente e agradaacutevel aos usuaacuterios

Se o internauta necessita de uma informaccedilatildeo em tem-po real por exemplo do tracircnsito aiacute o processo de busca pode ser ainda mais aacuterduo Em uma pesquisa no Googletrade pelo termo lsquoTransito em Goiacircniarsquo a notiacutecia mais recente retornada foi a de um dia anterior aoda pesquisa e ainda assim natildeo trazia infor-maccedilotildees relevantes da situaccedilatildeo do tracircnsito em Goiacircnia naquele instante Veja a seguir o termo mais recente que foi retornado em uma busca feita em 24062013 ldquoMotociclista eacute socorrido com fratura exposta apoacutes acidente em Goiacircniardquo1 Como alternativa ao Googletrade na tentativa de melhores resultados foi efetuada uma pesquisa no Twittertrade da Rede Me-tropolitana de Transporte Coletivo da Grande Goiacircnia (RMTC) que alimenta seu perfil nessa rede social com diversas informa-ccedilotildees dentre as quais informaccedilotildees sobre o tracircnsito na capital goiana Os cinco primeiros tweets da pesquisa realizada tambeacutem no dia 24062013 foram os seguintes

1 Informaccedilotildees sobre o tracircnsito da Regiatildeo Metropolitana em tempo real vocecirc encontra aqui Siga a RMTC no Twit-ter e fique bem informado )2 ederjcunha Sim Todas as linhas que trafegam pela re-giatildeo central de Goiacircnia seguem com o trajeto normal sem alteraccedilotildees3 Imediaccedilotildees do Terminal da Praccedila da Biacuteblia estatildeo livres fluxo vai sendo normalizado aos poucos Linhas voltam ao

1G1 Goiaacutes Tracircnsito Disponiacutevel em lthttpg1globocomgoiastransitonoticia201306motociclista-e-socorrido-com-fratura-exposta-apos-a-cidente-em-goianiahtmlgt Acesso em 24 jun 2013

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada13

JanDez 2015 Revista Tecnologia da Informaccedilatildeo Aplicada

trajeto normal4 DiasGuerreiro Linha 280 segue seu trajeto normal sem alteraccedilotildees ou interdiccedilotildees5 leo_ssousa Manifestantes seguem pela Av Anhanguera com destino agrave BR-153 impedindo o fluxo de veiacuteculos no local

Eacute possiacutevel perceber a partir da amostra acima que ain-da haacute necessidade de filtrar os dados retornados a fim de chegar agraves informaccedilotildees concretas sobre o tracircnsito que neste caso se en-contram nos tweets 3 e 5 respectivamente Como automatizar este processo de busca por informa-ccedilatildeo a partir de dados recebidos da internet e ainda tornar sua in-terpretaccedilatildeo mais faacutecil ao usuaacuterio atraveacutes de representaccedilotildees graacute-ficas (mapas de calor) eacute a proposta apresentada nesse trabalho Para tanto foi desenvolvido um aplicativo para dis-positivos moacuteveis que gera mapa de calor com informaccedilotildees de tracircnsito a partir da mineraccedilatildeo de dados (busca por informa-ccedilotildees relevantes) feita no perfil da RMTC no Twittertrade Na etapa de mineraccedilatildeo de dados foi usada a teacutecnica de Reconhecimento de Entidades Mencionadas (REM) tarefa da aacuterea da Extraccedilatildeo de Informaccedilatildeo que tem como objetivo a localizaccedilatildeo e classificaccedilatildeo de elementos (Entidade Mencionadas) como acontecimentos nome de pessoas organizaccedilotildees locais datas dentre outros pre-sentes em textos natildeo estruturados No desenvolvimento da apli-caccedilatildeo foram utilizadas tambeacutem as seguintes ferramentas Goo-gle AppEngine Twitter4J Google Maps API Google Geocoding API Jersey ndashRESTfulWeb Services e AndroidAPI

2 Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) campo da In-teligecircncia Artificial aborda conceitos necessaacuterios para o desen-volvimento de sistemas de geraccedilatildeo e interpretaccedilatildeo de linguagem natural que aproximem cada vez mais a linguagem humana da linguagem de maacutequina permitindo dessa forma que os humanos possam se comunicar com computadores vice-versa de forma mais natural e eficiente utilizando para isso sua linguagem nata Apesar dos avanccedilos no campo do PLN ainda haacute muitas implicaccedilotildees que expotildeem a necessidade de estudos e melhorias nessa aacutereaUm exemplo onde eacute visiacutevel essa necessidade eacuteem pro-gramas editores de texto que embora uacuteteis ainda natildeo apresen-tam um desempenho ideal quando usados para correccedilotildees orto-graacuteficas Outro exemplo satildeo os sistemas de traduccedilatildeo automaacutetica que apenas auxiliam na traduccedilatildeo das palavras mas que precisam da intervenccedilatildeo humana se o usuaacuterio quer um texto coerente e compreensiacutevel Recentemente dada a relevacircncia da aacuterea de PLN para a computaccedilatildeo foi criada a Comissatildeo Especial de Processamen-to de Linguagem Natural (CE-PLN) aprovada durante o XXVII Congresso da Sociedade Brasileira de Computaccedilatildeo realizado no Rio de Janeiro-RJ em 20072

21 Extraccedilatildeo de InformaccedilatildeoCom grande quantidade de dados produzidos a todo instante a Internet tornou-se um campo bastante interessante para aplica-ccedilatildeo de teacutecnicas de PLN

Surgida na deacutecada de 60 como uma proposta militar e restrita a poucos usuaacuterios hoje a Internet apresenta um cenaacuterio bastante diferente Com um vasto nuacutemero de usuaacuterios crescendo a cada dia segundo Instituto Brasileiro de Geografia e Estatiacutes-tica (IBGE)3 entre 2005 e 2011 o nuacutemero de internautas acima de 10 anos de idade aumentou 1438 no Brasil esse ambiente livre e colaborativo eacute uma oacutetima fonte de informaccedilotildees desde que o conteuacutedo produzido por seus usuaacuterios seja devidamente filtrado trazendo assim aquilo que eacute relevante

Outro levantamento feito pelo IBOPE4 divulgado em 2013 aponta 535 milhotildees de usuaacuterios ativos de Internet no Brasil dos quais 46 milhotildees ou seja 86 dos internautas ativos acessam algum tipo de rede social ou comunidade virtual (blogs micro-blogs e foacuteruns)

Dentre esses sites ainda segundo pesquisa IBOPE Face-booktrade e Twittertrade satildeo os que ganham mais atenccedilatildeo e tempo dos brasileiros que navegam na rede sendo que haacute uma grande produccedilatildeo de conteuacutedo nessas duas redes como mostrado em nuacute-meros5

- Facebooktrade

85962 - nuacutemero mensal de posts somente no Brasil (monitoradas 836 paacuteginas no Facebooktrade no Brasil o paiacutes mais ativo nesta rede) 1 bilhatildeo - nuacutemero mensal de usuaacuterios ativos no Facebooktrade em todo mundo (ateacute outubro de 2012)

- Twittertrade

175 milhotildees - meacutedia de tweets enviados por dia ao longo de 2012 200 milhotildees - satildeo os usuaacuterios mensais ativos no Twittertrade

Como eacute possiacutevel perceber haacute uma grande quantidade de dados produzidos na internet em especial nas redes sociais de onde o aplicativo desenvolvido nesse trabalho recolhe amostra de dados em busca de informaccedilotildees Essa etapa tambeacutem eacute conhe-cida como Extraccedilatildeo de Informaccedilatildeoum estaacutegio consequente agrave mineraccedilatildeo de dados que tem como propoacutesito segundo Riloff e Jones (1999) extrair informaccedilotildees especiacuteficas de texto em liacuten-gua natural Sendo assim partindo de uma amostra de dados eacute possiacutevel chegar agrave informaccedilatildeo A figura 1 exemplifica onde estaacute posicionada a informaccedilatildeo na piracircmide do conhecimento

3 Reconhecimento de Entidades Mencionadas (REM)

Subaeacuterea da Extraccedilatildeo de Informaccedilatildeo o Reconhecimento de Entidades Mencionadas tem como objetivo a localizaccedilatildeo e

2Sociedade Brasileira de Computaccedilatildeo Processamento de Linguagem Natural Disponiacutevel emlthttpsbcorgbrindexphpoption=com_conten-tampview=categoryamplayout=blogampid=50ampItemid=71gt Acesso em 27 set 20133Portal Brasil Nuacutemero de usuaacuterios de internet e de pessoas com celular cresceu mais de 100 no Brasil Disponiacutevel emlthttpwwwbrasilgovbrnoticiasarquivos20130516numero-de-usuarios-de-internet-e-de-pessoas-com-celular-cresceu-mais-de-100-no-brasilgt Acesso em 27 set 20134IBOPE Nuacutemero de usuaacuterios de redes sociais ultrapassa 46 milhotildees de brasileiros Disponiacutevel emlthttpwwwibopecombrpt-brnoticiaspagi-nasnumero-de-usuarios-de-redes-sociais-ultrapassa-46-milhoes-de-brasileirosaspxgt Acesso em 24 jun 20135Royal Pingdom Internet 2012 in numbers Disponiacutevel emlthttproyalpingdomcom20130116internet-2012-in-numbersgt Acesso em 24 jun 2013

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 3: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Sumaacuterio

Textos

08Poemas Existencial Harpa eVocecirc canta uma muacutesica para mim

Artigos

12Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades Mencionadas Aplicados a Mapas de Calor Adeilton Alves Santos Cleiton de Saacute Silva Ricardo Saul Santos Lopes Prof Orientador Weysller Matuzinhos de Moura MSc

Artigo 2

20Sistema Android To Do ListLeonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Artigo 3

24O Uso de Dispositivos Moacuteveis para Mensurar TerrenosWanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Artigo 4

32Georreferenciamento para a plataforma AndroidLeandro Rezende Carneiro de Mendonccedila Gustavo Gomes da Feacute

44

Dicas do Professor

Sites Sugeridos Prof Ricardo de Andrade Kratz

10A BUSCA DE UMA EacuteTICA DA VIDA MOBILE

Artigo 1

Poemas

Editorial

As instituiccedilotildees de ensino superior possuem um importante compromisso junto agrave sociedade no tocante a dissemi-naccedilatildeo do conhecimento Este processo de disseminaccedilatildeo eacute fundamentado em trecircs pilares baacutesicos ensino pesquisa e ex-tensatildeo O ensino transmite e instiga a construccedilatildeo do conhecimento junto ao aluno A extensatildeo indissociaacutevel do ensino e da pesquisa propaga o conhecimento acumulado visando a sua socializaccedilatildeo e interaccedilatildeo com a comunidade A pesquisa tem como objetivo a criaccedilatildeo a produccedilatildeo o desenvolvimento e a consequente difusatildeo do conhecimento

Nesta visatildeo a Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) que jaacute possuiacutea uma for-te estrutura em seus pilares do ensino e extensatildeo criou o Nuacutecleo de Estudos e Pesquisa (NEP) O NEP que eacute vinculado ao setor de Serviccedilos Teacutecnicos e Tecnoloacutegicos (STT) eacute um oacutergatildeo de apoio operacional que tem como objetivo principal promover a realizaccedilatildeo de estudos pesquisas e serviccedilos teacutecnicos aplicados sobre a demanda das instituiccedilotildees industriais do mercado e da sociedade

Para o fortalecimento da pesquisa eacute fundamental o envolvimento dos professores e alunos atraveacutes da introduccedilatildeo dos alunos no processo de iniciaccedilatildeo cientiacutefica vinculada a pesquisa aplicada A iniciaccedilatildeo cientiacutefica caracteriza se como uma accedilatildeo institucional que permite introduzir os estudantes de graduaccedilatildeo na pesquisa cientiacutefica colocando o aluno em contato direto com problemas e os meacutetodos de produccedilatildeo do conhecimento cientiacutefico

A FATESG juntamente com seu qualificado quadro de pesquisadores proporciona um momento privilegiado para a formaccedilatildeo de uma nova mentalidade em seus alunos pesquisadores os quais podem ainda pleitear uma bolsa de iniciaccedilatildeo cientiacutefica atraveacutes do Programa de Bolsa de Iniciaccedilatildeo Cientiacutefica da FATESG Desta forma alunos com um perfil e potencial para a pesquisa tecircm a oportunidade de desenvolver o conhecimento com o objetivo de inovar as soluccedilotildees existentes no mercado o que lhes proporcionaraacute um salto em sua formaccedilatildeo acadecircmica e profissional

A revista eletrocircnica da FATESG vem potencializar os benefiacutecios oriundos da pesquisa na unidade por prover um canal de divulgaccedilatildeo dos trabalhos de pesquisa atraveacutes de artigos cientiacuteficos Assim professores e alunos pesquisadores tecircm seus nomes projetados no meio acadecircmico o que fortaleceraacute seus curriacuteculos e auxiliaraacute em sua evoluccedilatildeo acadecircmica

Atualmente o NEP possui dois projetos de pesquisa em andamento um na aacuterea de seguranccedila forense e outro na aacuterea de desenvolvimento e banco de dados Entendo que esse nuacutemero de projetos tende a aumentar consideravelmente nos proacuteximos semestres na medida em que os alunos amadurecerem sua visatildeo quanto aos benefiacutecios oriundos da pesquisa aplicada

Neste cenaacuterio a FATESG consolida seu papel frente agrave sociedade e o setor industrial por proporcionar um ambiente completo para a formaccedilatildeo de seus alunos e para o desenvolvimento acadecircmico de seu corpo docente

Referecircncias Bibliograacuteficas

Nezello F Soll J and Zanon S O Papel da Universidade na Sociedade do Conhecimento Universidade Tecnoloacutegica Federal do Paranaacute 2006

Brito Cruz C H Pesquisa e Universidade Instituto de Estudos Avanccedilados da Universidade de Satildeo Paulo 2009

Soares V L Universidade e Sociedade - A Contribuiccedilatildeo da Extensatildeo para o Fortalecimento dessa Relaccedilatildeo Associaccedilatildeo Brasileira de Mantedoras do Ensino Superior (ABMES) 2005

Vilaccedila M L C Pesquisa e ensino consideraccedilotildees e reflexotildees UNIGRANRIO 2010

Nuacutecleo de Estudos e Pesquisa Regimento interno de pesquisa Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial 2010

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 20128

Poemas

Gessyca Pereira da Silva nasceu em 19021991 na cidade de Goiacircnia ndash GO Eacute for-mada em Letras Portuguecircs Inglecircs pela PUC-GO onde pesquisou Literatura Compara-da e foi bolsista BIC - PUC e PIBIC ndashCnpq durante a graduaccedilatildeo Atualmente eacute tutora em educaccedilatildeo a distacircncia e trabalha para Nuacutecleo Integrado de Educaccedilatildeo a Distacircncia do SESISENAI (NIEaD) Eacute poacutes-graduanda em Letramento Informacional pelo CIAR ndash UFG e pretende continuar estudando assuntos voltados agrave comunicaccedilatildeo e informaccedilatildeo

Curriacuteculo Lattes httpbuscatextualcnpqbrbuscatextualvisualizacvdoid=K4438681D6Gessyca Pereira da Silva

Existencial

Como me reencontrar se dentro de mim exis-tem diversas galaacutexias Em meu universo infinito acabo me perdendo de mim mesma e quando me perco nem mesmo o espelho consegue refletir minha face Se ateacute minha face desconheccedilo que diraacute meus sonhos Natildeo sei se satildeo se foram ou se seratildeo Vivo cada instante cada momento Algumas vezes percebo que estou proacuteximo do reencontro mas logo me desfaccedilo e desfaleccedilo Toda fita todo laccedilo embaraccedilo Natildeo haacute noacute que eu natildeo conheccedila Eu que os construiacute Pensei que se marcasse o caminho com o bar-bante eu conseguiria retornar Retornar ao princiacutepio agrave primeira ideia ao primeiro ldquoporquecircrdquo Por muito tem-po eu pensei que tudo era amor que ateacute o oacutedio era pas-siacutevel de ser amado Talvez porque o amor pareccedila ser um sentimento faacutecil por ser muito bonito quando represen-tado Eu pensava que o amor era capaz de superar tudo que era ele o responsaacutevel eternizaccedilatildeo de muitas coisas Na verdade isso tudo eacute consequecircncia das pala-vras Se elas natildeo existissem eu natildeo pensaria tanto natildeo me sentiria saturada delas dentro de mim Natildeo precisa-ria de quando em quando vomitaacute-las jaacute que muitas de-las natildeo satildeo digeriacuteveis Eacute por isso que natildeo se pode comer palavras pela boca jaacute que a ironia e ambiguidade po-dem tornar palavras aparentemente boas venenosas Com tanta informaccedilatildeo e tantos recados mal passados viveriacuteamos hospitalizados Palavras correm nas veias orbitam pensamen-tos permeiam ateacute superfiacutecies impermeaacuteveis O segredo eacute encontrar a palavra certa Seraacute meu infinito cons-truiacutedo pela uniatildeo das letras Seraacute que todos esses noacutes podem ser apagados para que uma nova histoacuteria seja escrita por cima da cicatriz deixada pela sombra do rabisco feito agrave laacutepis no papel

Goiacircnia 210215

Harpa

Meus versos satildeo como aacutegua voam como aacuteguia Ao mesmo tempo que eu tenho a densidade me perco na vastidatildeo Natildeo tenho motivos nem razotildees Soacute uma vida cheia um coraccedilatildeo valente Ah Meu coraccedilatildeo eacute vida meu pensamento eacute sonho Minhas matildeos satildeo o pulsar o trabalho o arpejo Com elas dedilho a harpa cada corda uma alma em cada alma minha essecircncia minhas asas Com as matildeos constituo meus caminhos atraveacutes de ondas infinitas em mundos risonhos de sau-dades O tempo que pulsa a cada compasso minha muacute-sica imperfeita incoerente dissonante O meu eu cons-tituiacutedo de cordas que desafinam que arrebentam que se trocam

Goiacircnia 16012014

Desde pequena a magia da combinaccedilatildeo das palavras me fascina Sempre gostei do fato de poder fazer o que quiser com as palavras criar

destruir reconstruir mudar o rumo da situaccedilatildeo Poder contar a mesma histoacuteria de diferentes maneiras dar diferentes sentidos agrave mesma coisa eacute magniacutefico

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada9

Vocecirc canta uma muacutesica para mim

Como negar o pedido daqueles olhos expectantes de crianccedila para um estranho na rua querendo tirar dali algo que os aproximasse Natildeo sei por que razatildeo ela queria que eu cantasse Cabeccedila quente nada que viesse espontane-amente Precisei de alguns minutos para recobrar a consciecircncia verificar se ela natildeo estava sozinha sem algum res-ponsaacutevel Para meu aliacutevio a matildee dela estava por ali observando sem entender a atitude da filha de quatro anos

Entatildeo finalmente me lembrei de uma muacutesica qualquer que ouvia na infacircncia Internamente relutante por conta do meu horaacuterio tentando demonstrar simpatia comecei a cantar Confesso que com algum descaso aparente querendo me livrar logo da situaccedilatildeo Do nada a menina se assentou na cadeira que estava proacutexima a ela e parou para me ouvir como se estivesse de frente a um palco assistido a um espetaacuteculo magniacutefico Ficou me olhando com tanta admiraccedilatildeo parecia ateacute que aquele momento era o melhor da sua vida seus olhos cintilavam ela ganhara o dia Quando me dei conta eu estava cantando com entusiasmo olhando dentro dos olhos dela e sorrindo Ela conseguira tirar de mim uma voz doce suave instaurou a paz que precisava para continuar o dia Impossiacutevel esquecer aqueles olhos Impossiacutevel esquecer a emoccedilatildeo de uma crianccedila um anjo que me dera uma rosa celestial um abraccedilo um sorriso e um ateacute logo

Goiacircnia 2014

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201210

Abelardo Rodrigues de Almeida Nascido em Inhumas - GO eacute Bacharel em Teologia pelo STBSB-RJ Especialista em Teologia Sistemaacutetica pelo STBSB-RJ Mestre em Filosofia Poliacutetica pela UFG doutorando em Teologia pela CPAJ-Machenzi-SP RTS-EUA

Abelardo Rodrigues de Almeida

JanDez 2015

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE Novas tecnologias novos desafios novos comportamentos novas aprendizagens novos entre-tenimentos novas enfermidades A vida entrou em um acelerador de novidades e upgrades tecnoloacutegicos que exige toda a capacidade intelectual e motora do indiviacuteduo O que representa para noacutes esta avalanche virtual e como surfar nestas ondas Como experimen-tar esta realidade liacutequida sem sucumbir no glamour das ofertas e perder o domiacutenio de si Como consumir sem ser consumido ou sem extinguir a fonte dos futu-ros seres

Haacute mais mobilidade hoje do que jamais se pensou A mobilidade que mais importa eacute da cone-xatildeo Mobilidade total significa conexatildeo ininterrupta Todos aspiram habitar na Rede permanecer na Rede integrar a Rede Transcender para o virtual O mundo para na estaccedilatildeo da palma da matildeo Natildeo apenas o apa-relho eacute uma ceacutelula mobile mas o proacuteprio indiviacuteduo eacute um roteador mobile Haacute uma sensaccedilatildeo de poder de liberdade mas tambeacutem de escamoteamento de refuacute-gio de ocultamento e de fuga da realidade

Precisamos criar uma eacutetica nova para a era da pessoa mobile e da sociedade em rede Esta nova eacuteti-ca deve antes de tudo ser humana e solidaacuteria O ser humano precisa se revestir de um conjunto de paracirc-metros que lhe sirva de morada segura Ou seja o ser concreto do homem deve se orientar por criteacuterios de bem ou mal que preserve e desenvolva sua essecircncia O bem e o mal satildeo juiacutezos de valor essenciais que estimu-lam o bem maior do ser e previnem contra os elemen-tos deterioradores corruptores e viciantes do ser

A eacutetica faz o ser humano voltar sobre sua es-secircncia e projetar o seu futuro ideal Para um dos maio-res pensadores de nosso tempo Hans Kung em sua obra Uma Eacutetica Global para a Poliacutetica e a Economia

Mundiais uma coisa ldquoeacute incontestaacutevel depende intei-ramente de nossa motivaccedilatildeo eacutetica se nos decidimos por fazer com que para a geraccedilatildeo de nossos filhos as coisas corram tatildeo bem como para noacutes ou melhor ou piorrdquo Nossas decisotildees seratildeo boas se baseadas em uma eacutetica reflexiva sobre noacutes e o futuro

A eacutetica implica uma tomada de consciecircncia radical e autecircntica sobre nossa finitude fragilidade e alienaccedilatildeo ou alienabilidade perante a forccedila das novas tecnologias e o risco do desvio do real para o virtual Pense no ser si mesmo pense no ser presente pense no ser futuro Natildeo seja um ser ausente da vida concre-ta nem da famiacutelia nem da convivialidade dos amigos e parentes A eacutetica do humano exige presenccedila e cor-poralidade diaacutelogo e abraccedilo autenticidade e cuidado com o futuro de si e dos outros A Eacutetica eacute o ser total agindo reflexivamente na antecipaccedilatildeo do futuro sus-tentaacutevel

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada11

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201212

Artigo 1

Revista Tecnologia da Informaccedilatildeo Aplicada JanDez 2015

Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades

Mencionadas Aplicados a Mapas de Calor

ADEILTON ALVES SANTOSsup1CLEITON DE SAacute SILVAsup2

RICARDO SAUL SANTOS LOPESsup3WEYSLLER MATUZINHOS DE MOURA4

1 2 e 3 Faculdade de Ciecircncia da Computaccedilatildeo ndash Instituto Unificado de Ensino Superior Objetivo (IUESO)Av T-02 nordm 1993 - Setor Bueno ndash Goiacircnia ndash GO ndash Brasil

4 Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

cleitonssricardosauladeiltonalvessantosweysllergmailcom weysllersenaisistemafiegorgbr

Abstract Find relevant information among the large amount of data produced on the Internet is a task with a high level of difficulty Every day people produce more and more content especially on social networks where it concentrates a large part of the Internet users With the purpose of facilitating access to information is presented in this work the technique of Named Entity Recognition (NER) which was used in the development of the application Traffic Monitor which seeks real-time tra-ffic information on the social network Twittertrade In addition the developed application displays the mined information in graphical form (heat map) providing the user with an easier and faster interpretationKey-words Mobile Traffic Monitor and Heat Map

Resumo Encontrar informaccedilotildees relevantes em meio agrave grande quantidade de dados gerados na Internet constitui uma tarefa com alto grau de dificuldade A cada dia as pessoas produzem mais e mais conteuacutedo em especial nas redes sociais onde se concentra uma grande parte dos internautas De forma a facilitar o acesso agrave informaccedilatildeo eacute apresentada nesse trabalho a teacutec-nica de Reconhecimento de Entidades Mencionadas a qual foi utilizada no desenvolvimento do aplicativo Traffic Monitor que busca em tempo real informaccedilotildees de tracircnsito na rede social Twittertrade Aleacutem disso o aplicativo desenvolvido exibe as informaccedilotildees mineradas em forma graacutefica (mapa de calor) proporcionando ao usuaacuterio uma interpretaccedilatildeo mais faacutecil e raacutepidaPalavras-chaves Moacutevel Monitoramento de Traacutefego e Mapa de Calor

1 Introduccedilatildeo

Um dos grandes desafios da computaccedilatildeo na aacuterea da Inteligecircn-cia Artificial (IA) eacute aproximar a linguagem natural da linguagem de maacutequina a fim de automatizar tarefas como a traduccedilatildeo de textos correccedilatildeo ortograacutefica extraccedilatildeo de informaccedilotildees a partir de dados da internet entre outras Atualmente eacute possiacutevel encontrar diversos aplicativos que executam tais tarefasos quais estatildeo pre-sentes no dia-a-dia de muitas pessoasporeacutem devido agrave comple-xidade da interpretaccedilatildeo da linguagem natural pelo computador esses aplicativos natildeo apresentam desempenho satisfatoacuterio em consequecircncia disso essa eacute uma aacuterea que necessita de constantes melhorias A simples busca de um termo (palavra ou expressatildeo qualquer) na internet por exemplo requer paciecircncia visto que quase sempre o resultado retornado possui outras informaccedilotildees aleacutem daquelas que usuaacuterio realmente necessita consequente-mente isso leva a um consumo de tempo na busca por infor-maccedilotildees relevantes (mineraccedilatildeo dos dados) O Processamento de Linguagem Natural (PLN) tambeacutem conhecido como Linguiacutestica Computacional busca justamente resolver essa lacuna que haacute na comunicaccedilatildeo entre homem e computador automatizando o pro-cesso de interpretaccedilatildeo de linguagem natural para linguagem de maacutequina proporcionando assim uma experiecircncia mais eficiente e agradaacutevel aos usuaacuterios

Se o internauta necessita de uma informaccedilatildeo em tem-po real por exemplo do tracircnsito aiacute o processo de busca pode ser ainda mais aacuterduo Em uma pesquisa no Googletrade pelo termo lsquoTransito em Goiacircniarsquo a notiacutecia mais recente retornada foi a de um dia anterior aoda pesquisa e ainda assim natildeo trazia infor-maccedilotildees relevantes da situaccedilatildeo do tracircnsito em Goiacircnia naquele instante Veja a seguir o termo mais recente que foi retornado em uma busca feita em 24062013 ldquoMotociclista eacute socorrido com fratura exposta apoacutes acidente em Goiacircniardquo1 Como alternativa ao Googletrade na tentativa de melhores resultados foi efetuada uma pesquisa no Twittertrade da Rede Me-tropolitana de Transporte Coletivo da Grande Goiacircnia (RMTC) que alimenta seu perfil nessa rede social com diversas informa-ccedilotildees dentre as quais informaccedilotildees sobre o tracircnsito na capital goiana Os cinco primeiros tweets da pesquisa realizada tambeacutem no dia 24062013 foram os seguintes

1 Informaccedilotildees sobre o tracircnsito da Regiatildeo Metropolitana em tempo real vocecirc encontra aqui Siga a RMTC no Twit-ter e fique bem informado )2 ederjcunha Sim Todas as linhas que trafegam pela re-giatildeo central de Goiacircnia seguem com o trajeto normal sem alteraccedilotildees3 Imediaccedilotildees do Terminal da Praccedila da Biacuteblia estatildeo livres fluxo vai sendo normalizado aos poucos Linhas voltam ao

1G1 Goiaacutes Tracircnsito Disponiacutevel em lthttpg1globocomgoiastransitonoticia201306motociclista-e-socorrido-com-fratura-exposta-apos-a-cidente-em-goianiahtmlgt Acesso em 24 jun 2013

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada13

JanDez 2015 Revista Tecnologia da Informaccedilatildeo Aplicada

trajeto normal4 DiasGuerreiro Linha 280 segue seu trajeto normal sem alteraccedilotildees ou interdiccedilotildees5 leo_ssousa Manifestantes seguem pela Av Anhanguera com destino agrave BR-153 impedindo o fluxo de veiacuteculos no local

Eacute possiacutevel perceber a partir da amostra acima que ain-da haacute necessidade de filtrar os dados retornados a fim de chegar agraves informaccedilotildees concretas sobre o tracircnsito que neste caso se en-contram nos tweets 3 e 5 respectivamente Como automatizar este processo de busca por informa-ccedilatildeo a partir de dados recebidos da internet e ainda tornar sua in-terpretaccedilatildeo mais faacutecil ao usuaacuterio atraveacutes de representaccedilotildees graacute-ficas (mapas de calor) eacute a proposta apresentada nesse trabalho Para tanto foi desenvolvido um aplicativo para dis-positivos moacuteveis que gera mapa de calor com informaccedilotildees de tracircnsito a partir da mineraccedilatildeo de dados (busca por informa-ccedilotildees relevantes) feita no perfil da RMTC no Twittertrade Na etapa de mineraccedilatildeo de dados foi usada a teacutecnica de Reconhecimento de Entidades Mencionadas (REM) tarefa da aacuterea da Extraccedilatildeo de Informaccedilatildeo que tem como objetivo a localizaccedilatildeo e classificaccedilatildeo de elementos (Entidade Mencionadas) como acontecimentos nome de pessoas organizaccedilotildees locais datas dentre outros pre-sentes em textos natildeo estruturados No desenvolvimento da apli-caccedilatildeo foram utilizadas tambeacutem as seguintes ferramentas Goo-gle AppEngine Twitter4J Google Maps API Google Geocoding API Jersey ndashRESTfulWeb Services e AndroidAPI

2 Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) campo da In-teligecircncia Artificial aborda conceitos necessaacuterios para o desen-volvimento de sistemas de geraccedilatildeo e interpretaccedilatildeo de linguagem natural que aproximem cada vez mais a linguagem humana da linguagem de maacutequina permitindo dessa forma que os humanos possam se comunicar com computadores vice-versa de forma mais natural e eficiente utilizando para isso sua linguagem nata Apesar dos avanccedilos no campo do PLN ainda haacute muitas implicaccedilotildees que expotildeem a necessidade de estudos e melhorias nessa aacutereaUm exemplo onde eacute visiacutevel essa necessidade eacuteem pro-gramas editores de texto que embora uacuteteis ainda natildeo apresen-tam um desempenho ideal quando usados para correccedilotildees orto-graacuteficas Outro exemplo satildeo os sistemas de traduccedilatildeo automaacutetica que apenas auxiliam na traduccedilatildeo das palavras mas que precisam da intervenccedilatildeo humana se o usuaacuterio quer um texto coerente e compreensiacutevel Recentemente dada a relevacircncia da aacuterea de PLN para a computaccedilatildeo foi criada a Comissatildeo Especial de Processamen-to de Linguagem Natural (CE-PLN) aprovada durante o XXVII Congresso da Sociedade Brasileira de Computaccedilatildeo realizado no Rio de Janeiro-RJ em 20072

21 Extraccedilatildeo de InformaccedilatildeoCom grande quantidade de dados produzidos a todo instante a Internet tornou-se um campo bastante interessante para aplica-ccedilatildeo de teacutecnicas de PLN

Surgida na deacutecada de 60 como uma proposta militar e restrita a poucos usuaacuterios hoje a Internet apresenta um cenaacuterio bastante diferente Com um vasto nuacutemero de usuaacuterios crescendo a cada dia segundo Instituto Brasileiro de Geografia e Estatiacutes-tica (IBGE)3 entre 2005 e 2011 o nuacutemero de internautas acima de 10 anos de idade aumentou 1438 no Brasil esse ambiente livre e colaborativo eacute uma oacutetima fonte de informaccedilotildees desde que o conteuacutedo produzido por seus usuaacuterios seja devidamente filtrado trazendo assim aquilo que eacute relevante

Outro levantamento feito pelo IBOPE4 divulgado em 2013 aponta 535 milhotildees de usuaacuterios ativos de Internet no Brasil dos quais 46 milhotildees ou seja 86 dos internautas ativos acessam algum tipo de rede social ou comunidade virtual (blogs micro-blogs e foacuteruns)

Dentre esses sites ainda segundo pesquisa IBOPE Face-booktrade e Twittertrade satildeo os que ganham mais atenccedilatildeo e tempo dos brasileiros que navegam na rede sendo que haacute uma grande produccedilatildeo de conteuacutedo nessas duas redes como mostrado em nuacute-meros5

- Facebooktrade

85962 - nuacutemero mensal de posts somente no Brasil (monitoradas 836 paacuteginas no Facebooktrade no Brasil o paiacutes mais ativo nesta rede) 1 bilhatildeo - nuacutemero mensal de usuaacuterios ativos no Facebooktrade em todo mundo (ateacute outubro de 2012)

- Twittertrade

175 milhotildees - meacutedia de tweets enviados por dia ao longo de 2012 200 milhotildees - satildeo os usuaacuterios mensais ativos no Twittertrade

Como eacute possiacutevel perceber haacute uma grande quantidade de dados produzidos na internet em especial nas redes sociais de onde o aplicativo desenvolvido nesse trabalho recolhe amostra de dados em busca de informaccedilotildees Essa etapa tambeacutem eacute conhe-cida como Extraccedilatildeo de Informaccedilatildeoum estaacutegio consequente agrave mineraccedilatildeo de dados que tem como propoacutesito segundo Riloff e Jones (1999) extrair informaccedilotildees especiacuteficas de texto em liacuten-gua natural Sendo assim partindo de uma amostra de dados eacute possiacutevel chegar agrave informaccedilatildeo A figura 1 exemplifica onde estaacute posicionada a informaccedilatildeo na piracircmide do conhecimento

3 Reconhecimento de Entidades Mencionadas (REM)

Subaeacuterea da Extraccedilatildeo de Informaccedilatildeo o Reconhecimento de Entidades Mencionadas tem como objetivo a localizaccedilatildeo e

2Sociedade Brasileira de Computaccedilatildeo Processamento de Linguagem Natural Disponiacutevel emlthttpsbcorgbrindexphpoption=com_conten-tampview=categoryamplayout=blogampid=50ampItemid=71gt Acesso em 27 set 20133Portal Brasil Nuacutemero de usuaacuterios de internet e de pessoas com celular cresceu mais de 100 no Brasil Disponiacutevel emlthttpwwwbrasilgovbrnoticiasarquivos20130516numero-de-usuarios-de-internet-e-de-pessoas-com-celular-cresceu-mais-de-100-no-brasilgt Acesso em 27 set 20134IBOPE Nuacutemero de usuaacuterios de redes sociais ultrapassa 46 milhotildees de brasileiros Disponiacutevel emlthttpwwwibopecombrpt-brnoticiaspagi-nasnumero-de-usuarios-de-redes-sociais-ultrapassa-46-milhoes-de-brasileirosaspxgt Acesso em 24 jun 20135Royal Pingdom Internet 2012 in numbers Disponiacutevel emlthttproyalpingdomcom20130116internet-2012-in-numbersgt Acesso em 24 jun 2013

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 4: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Editorial

As instituiccedilotildees de ensino superior possuem um importante compromisso junto agrave sociedade no tocante a dissemi-naccedilatildeo do conhecimento Este processo de disseminaccedilatildeo eacute fundamentado em trecircs pilares baacutesicos ensino pesquisa e ex-tensatildeo O ensino transmite e instiga a construccedilatildeo do conhecimento junto ao aluno A extensatildeo indissociaacutevel do ensino e da pesquisa propaga o conhecimento acumulado visando a sua socializaccedilatildeo e interaccedilatildeo com a comunidade A pesquisa tem como objetivo a criaccedilatildeo a produccedilatildeo o desenvolvimento e a consequente difusatildeo do conhecimento

Nesta visatildeo a Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) que jaacute possuiacutea uma for-te estrutura em seus pilares do ensino e extensatildeo criou o Nuacutecleo de Estudos e Pesquisa (NEP) O NEP que eacute vinculado ao setor de Serviccedilos Teacutecnicos e Tecnoloacutegicos (STT) eacute um oacutergatildeo de apoio operacional que tem como objetivo principal promover a realizaccedilatildeo de estudos pesquisas e serviccedilos teacutecnicos aplicados sobre a demanda das instituiccedilotildees industriais do mercado e da sociedade

Para o fortalecimento da pesquisa eacute fundamental o envolvimento dos professores e alunos atraveacutes da introduccedilatildeo dos alunos no processo de iniciaccedilatildeo cientiacutefica vinculada a pesquisa aplicada A iniciaccedilatildeo cientiacutefica caracteriza se como uma accedilatildeo institucional que permite introduzir os estudantes de graduaccedilatildeo na pesquisa cientiacutefica colocando o aluno em contato direto com problemas e os meacutetodos de produccedilatildeo do conhecimento cientiacutefico

A FATESG juntamente com seu qualificado quadro de pesquisadores proporciona um momento privilegiado para a formaccedilatildeo de uma nova mentalidade em seus alunos pesquisadores os quais podem ainda pleitear uma bolsa de iniciaccedilatildeo cientiacutefica atraveacutes do Programa de Bolsa de Iniciaccedilatildeo Cientiacutefica da FATESG Desta forma alunos com um perfil e potencial para a pesquisa tecircm a oportunidade de desenvolver o conhecimento com o objetivo de inovar as soluccedilotildees existentes no mercado o que lhes proporcionaraacute um salto em sua formaccedilatildeo acadecircmica e profissional

A revista eletrocircnica da FATESG vem potencializar os benefiacutecios oriundos da pesquisa na unidade por prover um canal de divulgaccedilatildeo dos trabalhos de pesquisa atraveacutes de artigos cientiacuteficos Assim professores e alunos pesquisadores tecircm seus nomes projetados no meio acadecircmico o que fortaleceraacute seus curriacuteculos e auxiliaraacute em sua evoluccedilatildeo acadecircmica

Atualmente o NEP possui dois projetos de pesquisa em andamento um na aacuterea de seguranccedila forense e outro na aacuterea de desenvolvimento e banco de dados Entendo que esse nuacutemero de projetos tende a aumentar consideravelmente nos proacuteximos semestres na medida em que os alunos amadurecerem sua visatildeo quanto aos benefiacutecios oriundos da pesquisa aplicada

Neste cenaacuterio a FATESG consolida seu papel frente agrave sociedade e o setor industrial por proporcionar um ambiente completo para a formaccedilatildeo de seus alunos e para o desenvolvimento acadecircmico de seu corpo docente

Referecircncias Bibliograacuteficas

Nezello F Soll J and Zanon S O Papel da Universidade na Sociedade do Conhecimento Universidade Tecnoloacutegica Federal do Paranaacute 2006

Brito Cruz C H Pesquisa e Universidade Instituto de Estudos Avanccedilados da Universidade de Satildeo Paulo 2009

Soares V L Universidade e Sociedade - A Contribuiccedilatildeo da Extensatildeo para o Fortalecimento dessa Relaccedilatildeo Associaccedilatildeo Brasileira de Mantedoras do Ensino Superior (ABMES) 2005

Vilaccedila M L C Pesquisa e ensino consideraccedilotildees e reflexotildees UNIGRANRIO 2010

Nuacutecleo de Estudos e Pesquisa Regimento interno de pesquisa Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial 2010

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 20128

Poemas

Gessyca Pereira da Silva nasceu em 19021991 na cidade de Goiacircnia ndash GO Eacute for-mada em Letras Portuguecircs Inglecircs pela PUC-GO onde pesquisou Literatura Compara-da e foi bolsista BIC - PUC e PIBIC ndashCnpq durante a graduaccedilatildeo Atualmente eacute tutora em educaccedilatildeo a distacircncia e trabalha para Nuacutecleo Integrado de Educaccedilatildeo a Distacircncia do SESISENAI (NIEaD) Eacute poacutes-graduanda em Letramento Informacional pelo CIAR ndash UFG e pretende continuar estudando assuntos voltados agrave comunicaccedilatildeo e informaccedilatildeo

Curriacuteculo Lattes httpbuscatextualcnpqbrbuscatextualvisualizacvdoid=K4438681D6Gessyca Pereira da Silva

Existencial

Como me reencontrar se dentro de mim exis-tem diversas galaacutexias Em meu universo infinito acabo me perdendo de mim mesma e quando me perco nem mesmo o espelho consegue refletir minha face Se ateacute minha face desconheccedilo que diraacute meus sonhos Natildeo sei se satildeo se foram ou se seratildeo Vivo cada instante cada momento Algumas vezes percebo que estou proacuteximo do reencontro mas logo me desfaccedilo e desfaleccedilo Toda fita todo laccedilo embaraccedilo Natildeo haacute noacute que eu natildeo conheccedila Eu que os construiacute Pensei que se marcasse o caminho com o bar-bante eu conseguiria retornar Retornar ao princiacutepio agrave primeira ideia ao primeiro ldquoporquecircrdquo Por muito tem-po eu pensei que tudo era amor que ateacute o oacutedio era pas-siacutevel de ser amado Talvez porque o amor pareccedila ser um sentimento faacutecil por ser muito bonito quando represen-tado Eu pensava que o amor era capaz de superar tudo que era ele o responsaacutevel eternizaccedilatildeo de muitas coisas Na verdade isso tudo eacute consequecircncia das pala-vras Se elas natildeo existissem eu natildeo pensaria tanto natildeo me sentiria saturada delas dentro de mim Natildeo precisa-ria de quando em quando vomitaacute-las jaacute que muitas de-las natildeo satildeo digeriacuteveis Eacute por isso que natildeo se pode comer palavras pela boca jaacute que a ironia e ambiguidade po-dem tornar palavras aparentemente boas venenosas Com tanta informaccedilatildeo e tantos recados mal passados viveriacuteamos hospitalizados Palavras correm nas veias orbitam pensamen-tos permeiam ateacute superfiacutecies impermeaacuteveis O segredo eacute encontrar a palavra certa Seraacute meu infinito cons-truiacutedo pela uniatildeo das letras Seraacute que todos esses noacutes podem ser apagados para que uma nova histoacuteria seja escrita por cima da cicatriz deixada pela sombra do rabisco feito agrave laacutepis no papel

Goiacircnia 210215

Harpa

Meus versos satildeo como aacutegua voam como aacuteguia Ao mesmo tempo que eu tenho a densidade me perco na vastidatildeo Natildeo tenho motivos nem razotildees Soacute uma vida cheia um coraccedilatildeo valente Ah Meu coraccedilatildeo eacute vida meu pensamento eacute sonho Minhas matildeos satildeo o pulsar o trabalho o arpejo Com elas dedilho a harpa cada corda uma alma em cada alma minha essecircncia minhas asas Com as matildeos constituo meus caminhos atraveacutes de ondas infinitas em mundos risonhos de sau-dades O tempo que pulsa a cada compasso minha muacute-sica imperfeita incoerente dissonante O meu eu cons-tituiacutedo de cordas que desafinam que arrebentam que se trocam

Goiacircnia 16012014

Desde pequena a magia da combinaccedilatildeo das palavras me fascina Sempre gostei do fato de poder fazer o que quiser com as palavras criar

destruir reconstruir mudar o rumo da situaccedilatildeo Poder contar a mesma histoacuteria de diferentes maneiras dar diferentes sentidos agrave mesma coisa eacute magniacutefico

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada9

Vocecirc canta uma muacutesica para mim

Como negar o pedido daqueles olhos expectantes de crianccedila para um estranho na rua querendo tirar dali algo que os aproximasse Natildeo sei por que razatildeo ela queria que eu cantasse Cabeccedila quente nada que viesse espontane-amente Precisei de alguns minutos para recobrar a consciecircncia verificar se ela natildeo estava sozinha sem algum res-ponsaacutevel Para meu aliacutevio a matildee dela estava por ali observando sem entender a atitude da filha de quatro anos

Entatildeo finalmente me lembrei de uma muacutesica qualquer que ouvia na infacircncia Internamente relutante por conta do meu horaacuterio tentando demonstrar simpatia comecei a cantar Confesso que com algum descaso aparente querendo me livrar logo da situaccedilatildeo Do nada a menina se assentou na cadeira que estava proacutexima a ela e parou para me ouvir como se estivesse de frente a um palco assistido a um espetaacuteculo magniacutefico Ficou me olhando com tanta admiraccedilatildeo parecia ateacute que aquele momento era o melhor da sua vida seus olhos cintilavam ela ganhara o dia Quando me dei conta eu estava cantando com entusiasmo olhando dentro dos olhos dela e sorrindo Ela conseguira tirar de mim uma voz doce suave instaurou a paz que precisava para continuar o dia Impossiacutevel esquecer aqueles olhos Impossiacutevel esquecer a emoccedilatildeo de uma crianccedila um anjo que me dera uma rosa celestial um abraccedilo um sorriso e um ateacute logo

Goiacircnia 2014

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201210

Abelardo Rodrigues de Almeida Nascido em Inhumas - GO eacute Bacharel em Teologia pelo STBSB-RJ Especialista em Teologia Sistemaacutetica pelo STBSB-RJ Mestre em Filosofia Poliacutetica pela UFG doutorando em Teologia pela CPAJ-Machenzi-SP RTS-EUA

Abelardo Rodrigues de Almeida

JanDez 2015

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE Novas tecnologias novos desafios novos comportamentos novas aprendizagens novos entre-tenimentos novas enfermidades A vida entrou em um acelerador de novidades e upgrades tecnoloacutegicos que exige toda a capacidade intelectual e motora do indiviacuteduo O que representa para noacutes esta avalanche virtual e como surfar nestas ondas Como experimen-tar esta realidade liacutequida sem sucumbir no glamour das ofertas e perder o domiacutenio de si Como consumir sem ser consumido ou sem extinguir a fonte dos futu-ros seres

Haacute mais mobilidade hoje do que jamais se pensou A mobilidade que mais importa eacute da cone-xatildeo Mobilidade total significa conexatildeo ininterrupta Todos aspiram habitar na Rede permanecer na Rede integrar a Rede Transcender para o virtual O mundo para na estaccedilatildeo da palma da matildeo Natildeo apenas o apa-relho eacute uma ceacutelula mobile mas o proacuteprio indiviacuteduo eacute um roteador mobile Haacute uma sensaccedilatildeo de poder de liberdade mas tambeacutem de escamoteamento de refuacute-gio de ocultamento e de fuga da realidade

Precisamos criar uma eacutetica nova para a era da pessoa mobile e da sociedade em rede Esta nova eacuteti-ca deve antes de tudo ser humana e solidaacuteria O ser humano precisa se revestir de um conjunto de paracirc-metros que lhe sirva de morada segura Ou seja o ser concreto do homem deve se orientar por criteacuterios de bem ou mal que preserve e desenvolva sua essecircncia O bem e o mal satildeo juiacutezos de valor essenciais que estimu-lam o bem maior do ser e previnem contra os elemen-tos deterioradores corruptores e viciantes do ser

A eacutetica faz o ser humano voltar sobre sua es-secircncia e projetar o seu futuro ideal Para um dos maio-res pensadores de nosso tempo Hans Kung em sua obra Uma Eacutetica Global para a Poliacutetica e a Economia

Mundiais uma coisa ldquoeacute incontestaacutevel depende intei-ramente de nossa motivaccedilatildeo eacutetica se nos decidimos por fazer com que para a geraccedilatildeo de nossos filhos as coisas corram tatildeo bem como para noacutes ou melhor ou piorrdquo Nossas decisotildees seratildeo boas se baseadas em uma eacutetica reflexiva sobre noacutes e o futuro

A eacutetica implica uma tomada de consciecircncia radical e autecircntica sobre nossa finitude fragilidade e alienaccedilatildeo ou alienabilidade perante a forccedila das novas tecnologias e o risco do desvio do real para o virtual Pense no ser si mesmo pense no ser presente pense no ser futuro Natildeo seja um ser ausente da vida concre-ta nem da famiacutelia nem da convivialidade dos amigos e parentes A eacutetica do humano exige presenccedila e cor-poralidade diaacutelogo e abraccedilo autenticidade e cuidado com o futuro de si e dos outros A Eacutetica eacute o ser total agindo reflexivamente na antecipaccedilatildeo do futuro sus-tentaacutevel

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada11

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201212

Artigo 1

Revista Tecnologia da Informaccedilatildeo Aplicada JanDez 2015

Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades

Mencionadas Aplicados a Mapas de Calor

ADEILTON ALVES SANTOSsup1CLEITON DE SAacute SILVAsup2

RICARDO SAUL SANTOS LOPESsup3WEYSLLER MATUZINHOS DE MOURA4

1 2 e 3 Faculdade de Ciecircncia da Computaccedilatildeo ndash Instituto Unificado de Ensino Superior Objetivo (IUESO)Av T-02 nordm 1993 - Setor Bueno ndash Goiacircnia ndash GO ndash Brasil

4 Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

cleitonssricardosauladeiltonalvessantosweysllergmailcom weysllersenaisistemafiegorgbr

Abstract Find relevant information among the large amount of data produced on the Internet is a task with a high level of difficulty Every day people produce more and more content especially on social networks where it concentrates a large part of the Internet users With the purpose of facilitating access to information is presented in this work the technique of Named Entity Recognition (NER) which was used in the development of the application Traffic Monitor which seeks real-time tra-ffic information on the social network Twittertrade In addition the developed application displays the mined information in graphical form (heat map) providing the user with an easier and faster interpretationKey-words Mobile Traffic Monitor and Heat Map

Resumo Encontrar informaccedilotildees relevantes em meio agrave grande quantidade de dados gerados na Internet constitui uma tarefa com alto grau de dificuldade A cada dia as pessoas produzem mais e mais conteuacutedo em especial nas redes sociais onde se concentra uma grande parte dos internautas De forma a facilitar o acesso agrave informaccedilatildeo eacute apresentada nesse trabalho a teacutec-nica de Reconhecimento de Entidades Mencionadas a qual foi utilizada no desenvolvimento do aplicativo Traffic Monitor que busca em tempo real informaccedilotildees de tracircnsito na rede social Twittertrade Aleacutem disso o aplicativo desenvolvido exibe as informaccedilotildees mineradas em forma graacutefica (mapa de calor) proporcionando ao usuaacuterio uma interpretaccedilatildeo mais faacutecil e raacutepidaPalavras-chaves Moacutevel Monitoramento de Traacutefego e Mapa de Calor

1 Introduccedilatildeo

Um dos grandes desafios da computaccedilatildeo na aacuterea da Inteligecircn-cia Artificial (IA) eacute aproximar a linguagem natural da linguagem de maacutequina a fim de automatizar tarefas como a traduccedilatildeo de textos correccedilatildeo ortograacutefica extraccedilatildeo de informaccedilotildees a partir de dados da internet entre outras Atualmente eacute possiacutevel encontrar diversos aplicativos que executam tais tarefasos quais estatildeo pre-sentes no dia-a-dia de muitas pessoasporeacutem devido agrave comple-xidade da interpretaccedilatildeo da linguagem natural pelo computador esses aplicativos natildeo apresentam desempenho satisfatoacuterio em consequecircncia disso essa eacute uma aacuterea que necessita de constantes melhorias A simples busca de um termo (palavra ou expressatildeo qualquer) na internet por exemplo requer paciecircncia visto que quase sempre o resultado retornado possui outras informaccedilotildees aleacutem daquelas que usuaacuterio realmente necessita consequente-mente isso leva a um consumo de tempo na busca por infor-maccedilotildees relevantes (mineraccedilatildeo dos dados) O Processamento de Linguagem Natural (PLN) tambeacutem conhecido como Linguiacutestica Computacional busca justamente resolver essa lacuna que haacute na comunicaccedilatildeo entre homem e computador automatizando o pro-cesso de interpretaccedilatildeo de linguagem natural para linguagem de maacutequina proporcionando assim uma experiecircncia mais eficiente e agradaacutevel aos usuaacuterios

Se o internauta necessita de uma informaccedilatildeo em tem-po real por exemplo do tracircnsito aiacute o processo de busca pode ser ainda mais aacuterduo Em uma pesquisa no Googletrade pelo termo lsquoTransito em Goiacircniarsquo a notiacutecia mais recente retornada foi a de um dia anterior aoda pesquisa e ainda assim natildeo trazia infor-maccedilotildees relevantes da situaccedilatildeo do tracircnsito em Goiacircnia naquele instante Veja a seguir o termo mais recente que foi retornado em uma busca feita em 24062013 ldquoMotociclista eacute socorrido com fratura exposta apoacutes acidente em Goiacircniardquo1 Como alternativa ao Googletrade na tentativa de melhores resultados foi efetuada uma pesquisa no Twittertrade da Rede Me-tropolitana de Transporte Coletivo da Grande Goiacircnia (RMTC) que alimenta seu perfil nessa rede social com diversas informa-ccedilotildees dentre as quais informaccedilotildees sobre o tracircnsito na capital goiana Os cinco primeiros tweets da pesquisa realizada tambeacutem no dia 24062013 foram os seguintes

1 Informaccedilotildees sobre o tracircnsito da Regiatildeo Metropolitana em tempo real vocecirc encontra aqui Siga a RMTC no Twit-ter e fique bem informado )2 ederjcunha Sim Todas as linhas que trafegam pela re-giatildeo central de Goiacircnia seguem com o trajeto normal sem alteraccedilotildees3 Imediaccedilotildees do Terminal da Praccedila da Biacuteblia estatildeo livres fluxo vai sendo normalizado aos poucos Linhas voltam ao

1G1 Goiaacutes Tracircnsito Disponiacutevel em lthttpg1globocomgoiastransitonoticia201306motociclista-e-socorrido-com-fratura-exposta-apos-a-cidente-em-goianiahtmlgt Acesso em 24 jun 2013

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada13

JanDez 2015 Revista Tecnologia da Informaccedilatildeo Aplicada

trajeto normal4 DiasGuerreiro Linha 280 segue seu trajeto normal sem alteraccedilotildees ou interdiccedilotildees5 leo_ssousa Manifestantes seguem pela Av Anhanguera com destino agrave BR-153 impedindo o fluxo de veiacuteculos no local

Eacute possiacutevel perceber a partir da amostra acima que ain-da haacute necessidade de filtrar os dados retornados a fim de chegar agraves informaccedilotildees concretas sobre o tracircnsito que neste caso se en-contram nos tweets 3 e 5 respectivamente Como automatizar este processo de busca por informa-ccedilatildeo a partir de dados recebidos da internet e ainda tornar sua in-terpretaccedilatildeo mais faacutecil ao usuaacuterio atraveacutes de representaccedilotildees graacute-ficas (mapas de calor) eacute a proposta apresentada nesse trabalho Para tanto foi desenvolvido um aplicativo para dis-positivos moacuteveis que gera mapa de calor com informaccedilotildees de tracircnsito a partir da mineraccedilatildeo de dados (busca por informa-ccedilotildees relevantes) feita no perfil da RMTC no Twittertrade Na etapa de mineraccedilatildeo de dados foi usada a teacutecnica de Reconhecimento de Entidades Mencionadas (REM) tarefa da aacuterea da Extraccedilatildeo de Informaccedilatildeo que tem como objetivo a localizaccedilatildeo e classificaccedilatildeo de elementos (Entidade Mencionadas) como acontecimentos nome de pessoas organizaccedilotildees locais datas dentre outros pre-sentes em textos natildeo estruturados No desenvolvimento da apli-caccedilatildeo foram utilizadas tambeacutem as seguintes ferramentas Goo-gle AppEngine Twitter4J Google Maps API Google Geocoding API Jersey ndashRESTfulWeb Services e AndroidAPI

2 Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) campo da In-teligecircncia Artificial aborda conceitos necessaacuterios para o desen-volvimento de sistemas de geraccedilatildeo e interpretaccedilatildeo de linguagem natural que aproximem cada vez mais a linguagem humana da linguagem de maacutequina permitindo dessa forma que os humanos possam se comunicar com computadores vice-versa de forma mais natural e eficiente utilizando para isso sua linguagem nata Apesar dos avanccedilos no campo do PLN ainda haacute muitas implicaccedilotildees que expotildeem a necessidade de estudos e melhorias nessa aacutereaUm exemplo onde eacute visiacutevel essa necessidade eacuteem pro-gramas editores de texto que embora uacuteteis ainda natildeo apresen-tam um desempenho ideal quando usados para correccedilotildees orto-graacuteficas Outro exemplo satildeo os sistemas de traduccedilatildeo automaacutetica que apenas auxiliam na traduccedilatildeo das palavras mas que precisam da intervenccedilatildeo humana se o usuaacuterio quer um texto coerente e compreensiacutevel Recentemente dada a relevacircncia da aacuterea de PLN para a computaccedilatildeo foi criada a Comissatildeo Especial de Processamen-to de Linguagem Natural (CE-PLN) aprovada durante o XXVII Congresso da Sociedade Brasileira de Computaccedilatildeo realizado no Rio de Janeiro-RJ em 20072

21 Extraccedilatildeo de InformaccedilatildeoCom grande quantidade de dados produzidos a todo instante a Internet tornou-se um campo bastante interessante para aplica-ccedilatildeo de teacutecnicas de PLN

Surgida na deacutecada de 60 como uma proposta militar e restrita a poucos usuaacuterios hoje a Internet apresenta um cenaacuterio bastante diferente Com um vasto nuacutemero de usuaacuterios crescendo a cada dia segundo Instituto Brasileiro de Geografia e Estatiacutes-tica (IBGE)3 entre 2005 e 2011 o nuacutemero de internautas acima de 10 anos de idade aumentou 1438 no Brasil esse ambiente livre e colaborativo eacute uma oacutetima fonte de informaccedilotildees desde que o conteuacutedo produzido por seus usuaacuterios seja devidamente filtrado trazendo assim aquilo que eacute relevante

Outro levantamento feito pelo IBOPE4 divulgado em 2013 aponta 535 milhotildees de usuaacuterios ativos de Internet no Brasil dos quais 46 milhotildees ou seja 86 dos internautas ativos acessam algum tipo de rede social ou comunidade virtual (blogs micro-blogs e foacuteruns)

Dentre esses sites ainda segundo pesquisa IBOPE Face-booktrade e Twittertrade satildeo os que ganham mais atenccedilatildeo e tempo dos brasileiros que navegam na rede sendo que haacute uma grande produccedilatildeo de conteuacutedo nessas duas redes como mostrado em nuacute-meros5

- Facebooktrade

85962 - nuacutemero mensal de posts somente no Brasil (monitoradas 836 paacuteginas no Facebooktrade no Brasil o paiacutes mais ativo nesta rede) 1 bilhatildeo - nuacutemero mensal de usuaacuterios ativos no Facebooktrade em todo mundo (ateacute outubro de 2012)

- Twittertrade

175 milhotildees - meacutedia de tweets enviados por dia ao longo de 2012 200 milhotildees - satildeo os usuaacuterios mensais ativos no Twittertrade

Como eacute possiacutevel perceber haacute uma grande quantidade de dados produzidos na internet em especial nas redes sociais de onde o aplicativo desenvolvido nesse trabalho recolhe amostra de dados em busca de informaccedilotildees Essa etapa tambeacutem eacute conhe-cida como Extraccedilatildeo de Informaccedilatildeoum estaacutegio consequente agrave mineraccedilatildeo de dados que tem como propoacutesito segundo Riloff e Jones (1999) extrair informaccedilotildees especiacuteficas de texto em liacuten-gua natural Sendo assim partindo de uma amostra de dados eacute possiacutevel chegar agrave informaccedilatildeo A figura 1 exemplifica onde estaacute posicionada a informaccedilatildeo na piracircmide do conhecimento

3 Reconhecimento de Entidades Mencionadas (REM)

Subaeacuterea da Extraccedilatildeo de Informaccedilatildeo o Reconhecimento de Entidades Mencionadas tem como objetivo a localizaccedilatildeo e

2Sociedade Brasileira de Computaccedilatildeo Processamento de Linguagem Natural Disponiacutevel emlthttpsbcorgbrindexphpoption=com_conten-tampview=categoryamplayout=blogampid=50ampItemid=71gt Acesso em 27 set 20133Portal Brasil Nuacutemero de usuaacuterios de internet e de pessoas com celular cresceu mais de 100 no Brasil Disponiacutevel emlthttpwwwbrasilgovbrnoticiasarquivos20130516numero-de-usuarios-de-internet-e-de-pessoas-com-celular-cresceu-mais-de-100-no-brasilgt Acesso em 27 set 20134IBOPE Nuacutemero de usuaacuterios de redes sociais ultrapassa 46 milhotildees de brasileiros Disponiacutevel emlthttpwwwibopecombrpt-brnoticiaspagi-nasnumero-de-usuarios-de-redes-sociais-ultrapassa-46-milhoes-de-brasileirosaspxgt Acesso em 24 jun 20135Royal Pingdom Internet 2012 in numbers Disponiacutevel emlthttproyalpingdomcom20130116internet-2012-in-numbersgt Acesso em 24 jun 2013

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 5: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 20128

Poemas

Gessyca Pereira da Silva nasceu em 19021991 na cidade de Goiacircnia ndash GO Eacute for-mada em Letras Portuguecircs Inglecircs pela PUC-GO onde pesquisou Literatura Compara-da e foi bolsista BIC - PUC e PIBIC ndashCnpq durante a graduaccedilatildeo Atualmente eacute tutora em educaccedilatildeo a distacircncia e trabalha para Nuacutecleo Integrado de Educaccedilatildeo a Distacircncia do SESISENAI (NIEaD) Eacute poacutes-graduanda em Letramento Informacional pelo CIAR ndash UFG e pretende continuar estudando assuntos voltados agrave comunicaccedilatildeo e informaccedilatildeo

Curriacuteculo Lattes httpbuscatextualcnpqbrbuscatextualvisualizacvdoid=K4438681D6Gessyca Pereira da Silva

Existencial

Como me reencontrar se dentro de mim exis-tem diversas galaacutexias Em meu universo infinito acabo me perdendo de mim mesma e quando me perco nem mesmo o espelho consegue refletir minha face Se ateacute minha face desconheccedilo que diraacute meus sonhos Natildeo sei se satildeo se foram ou se seratildeo Vivo cada instante cada momento Algumas vezes percebo que estou proacuteximo do reencontro mas logo me desfaccedilo e desfaleccedilo Toda fita todo laccedilo embaraccedilo Natildeo haacute noacute que eu natildeo conheccedila Eu que os construiacute Pensei que se marcasse o caminho com o bar-bante eu conseguiria retornar Retornar ao princiacutepio agrave primeira ideia ao primeiro ldquoporquecircrdquo Por muito tem-po eu pensei que tudo era amor que ateacute o oacutedio era pas-siacutevel de ser amado Talvez porque o amor pareccedila ser um sentimento faacutecil por ser muito bonito quando represen-tado Eu pensava que o amor era capaz de superar tudo que era ele o responsaacutevel eternizaccedilatildeo de muitas coisas Na verdade isso tudo eacute consequecircncia das pala-vras Se elas natildeo existissem eu natildeo pensaria tanto natildeo me sentiria saturada delas dentro de mim Natildeo precisa-ria de quando em quando vomitaacute-las jaacute que muitas de-las natildeo satildeo digeriacuteveis Eacute por isso que natildeo se pode comer palavras pela boca jaacute que a ironia e ambiguidade po-dem tornar palavras aparentemente boas venenosas Com tanta informaccedilatildeo e tantos recados mal passados viveriacuteamos hospitalizados Palavras correm nas veias orbitam pensamen-tos permeiam ateacute superfiacutecies impermeaacuteveis O segredo eacute encontrar a palavra certa Seraacute meu infinito cons-truiacutedo pela uniatildeo das letras Seraacute que todos esses noacutes podem ser apagados para que uma nova histoacuteria seja escrita por cima da cicatriz deixada pela sombra do rabisco feito agrave laacutepis no papel

Goiacircnia 210215

Harpa

Meus versos satildeo como aacutegua voam como aacuteguia Ao mesmo tempo que eu tenho a densidade me perco na vastidatildeo Natildeo tenho motivos nem razotildees Soacute uma vida cheia um coraccedilatildeo valente Ah Meu coraccedilatildeo eacute vida meu pensamento eacute sonho Minhas matildeos satildeo o pulsar o trabalho o arpejo Com elas dedilho a harpa cada corda uma alma em cada alma minha essecircncia minhas asas Com as matildeos constituo meus caminhos atraveacutes de ondas infinitas em mundos risonhos de sau-dades O tempo que pulsa a cada compasso minha muacute-sica imperfeita incoerente dissonante O meu eu cons-tituiacutedo de cordas que desafinam que arrebentam que se trocam

Goiacircnia 16012014

Desde pequena a magia da combinaccedilatildeo das palavras me fascina Sempre gostei do fato de poder fazer o que quiser com as palavras criar

destruir reconstruir mudar o rumo da situaccedilatildeo Poder contar a mesma histoacuteria de diferentes maneiras dar diferentes sentidos agrave mesma coisa eacute magniacutefico

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada9

Vocecirc canta uma muacutesica para mim

Como negar o pedido daqueles olhos expectantes de crianccedila para um estranho na rua querendo tirar dali algo que os aproximasse Natildeo sei por que razatildeo ela queria que eu cantasse Cabeccedila quente nada que viesse espontane-amente Precisei de alguns minutos para recobrar a consciecircncia verificar se ela natildeo estava sozinha sem algum res-ponsaacutevel Para meu aliacutevio a matildee dela estava por ali observando sem entender a atitude da filha de quatro anos

Entatildeo finalmente me lembrei de uma muacutesica qualquer que ouvia na infacircncia Internamente relutante por conta do meu horaacuterio tentando demonstrar simpatia comecei a cantar Confesso que com algum descaso aparente querendo me livrar logo da situaccedilatildeo Do nada a menina se assentou na cadeira que estava proacutexima a ela e parou para me ouvir como se estivesse de frente a um palco assistido a um espetaacuteculo magniacutefico Ficou me olhando com tanta admiraccedilatildeo parecia ateacute que aquele momento era o melhor da sua vida seus olhos cintilavam ela ganhara o dia Quando me dei conta eu estava cantando com entusiasmo olhando dentro dos olhos dela e sorrindo Ela conseguira tirar de mim uma voz doce suave instaurou a paz que precisava para continuar o dia Impossiacutevel esquecer aqueles olhos Impossiacutevel esquecer a emoccedilatildeo de uma crianccedila um anjo que me dera uma rosa celestial um abraccedilo um sorriso e um ateacute logo

Goiacircnia 2014

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201210

Abelardo Rodrigues de Almeida Nascido em Inhumas - GO eacute Bacharel em Teologia pelo STBSB-RJ Especialista em Teologia Sistemaacutetica pelo STBSB-RJ Mestre em Filosofia Poliacutetica pela UFG doutorando em Teologia pela CPAJ-Machenzi-SP RTS-EUA

Abelardo Rodrigues de Almeida

JanDez 2015

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE Novas tecnologias novos desafios novos comportamentos novas aprendizagens novos entre-tenimentos novas enfermidades A vida entrou em um acelerador de novidades e upgrades tecnoloacutegicos que exige toda a capacidade intelectual e motora do indiviacuteduo O que representa para noacutes esta avalanche virtual e como surfar nestas ondas Como experimen-tar esta realidade liacutequida sem sucumbir no glamour das ofertas e perder o domiacutenio de si Como consumir sem ser consumido ou sem extinguir a fonte dos futu-ros seres

Haacute mais mobilidade hoje do que jamais se pensou A mobilidade que mais importa eacute da cone-xatildeo Mobilidade total significa conexatildeo ininterrupta Todos aspiram habitar na Rede permanecer na Rede integrar a Rede Transcender para o virtual O mundo para na estaccedilatildeo da palma da matildeo Natildeo apenas o apa-relho eacute uma ceacutelula mobile mas o proacuteprio indiviacuteduo eacute um roteador mobile Haacute uma sensaccedilatildeo de poder de liberdade mas tambeacutem de escamoteamento de refuacute-gio de ocultamento e de fuga da realidade

Precisamos criar uma eacutetica nova para a era da pessoa mobile e da sociedade em rede Esta nova eacuteti-ca deve antes de tudo ser humana e solidaacuteria O ser humano precisa se revestir de um conjunto de paracirc-metros que lhe sirva de morada segura Ou seja o ser concreto do homem deve se orientar por criteacuterios de bem ou mal que preserve e desenvolva sua essecircncia O bem e o mal satildeo juiacutezos de valor essenciais que estimu-lam o bem maior do ser e previnem contra os elemen-tos deterioradores corruptores e viciantes do ser

A eacutetica faz o ser humano voltar sobre sua es-secircncia e projetar o seu futuro ideal Para um dos maio-res pensadores de nosso tempo Hans Kung em sua obra Uma Eacutetica Global para a Poliacutetica e a Economia

Mundiais uma coisa ldquoeacute incontestaacutevel depende intei-ramente de nossa motivaccedilatildeo eacutetica se nos decidimos por fazer com que para a geraccedilatildeo de nossos filhos as coisas corram tatildeo bem como para noacutes ou melhor ou piorrdquo Nossas decisotildees seratildeo boas se baseadas em uma eacutetica reflexiva sobre noacutes e o futuro

A eacutetica implica uma tomada de consciecircncia radical e autecircntica sobre nossa finitude fragilidade e alienaccedilatildeo ou alienabilidade perante a forccedila das novas tecnologias e o risco do desvio do real para o virtual Pense no ser si mesmo pense no ser presente pense no ser futuro Natildeo seja um ser ausente da vida concre-ta nem da famiacutelia nem da convivialidade dos amigos e parentes A eacutetica do humano exige presenccedila e cor-poralidade diaacutelogo e abraccedilo autenticidade e cuidado com o futuro de si e dos outros A Eacutetica eacute o ser total agindo reflexivamente na antecipaccedilatildeo do futuro sus-tentaacutevel

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada11

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201212

Artigo 1

Revista Tecnologia da Informaccedilatildeo Aplicada JanDez 2015

Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades

Mencionadas Aplicados a Mapas de Calor

ADEILTON ALVES SANTOSsup1CLEITON DE SAacute SILVAsup2

RICARDO SAUL SANTOS LOPESsup3WEYSLLER MATUZINHOS DE MOURA4

1 2 e 3 Faculdade de Ciecircncia da Computaccedilatildeo ndash Instituto Unificado de Ensino Superior Objetivo (IUESO)Av T-02 nordm 1993 - Setor Bueno ndash Goiacircnia ndash GO ndash Brasil

4 Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

cleitonssricardosauladeiltonalvessantosweysllergmailcom weysllersenaisistemafiegorgbr

Abstract Find relevant information among the large amount of data produced on the Internet is a task with a high level of difficulty Every day people produce more and more content especially on social networks where it concentrates a large part of the Internet users With the purpose of facilitating access to information is presented in this work the technique of Named Entity Recognition (NER) which was used in the development of the application Traffic Monitor which seeks real-time tra-ffic information on the social network Twittertrade In addition the developed application displays the mined information in graphical form (heat map) providing the user with an easier and faster interpretationKey-words Mobile Traffic Monitor and Heat Map

Resumo Encontrar informaccedilotildees relevantes em meio agrave grande quantidade de dados gerados na Internet constitui uma tarefa com alto grau de dificuldade A cada dia as pessoas produzem mais e mais conteuacutedo em especial nas redes sociais onde se concentra uma grande parte dos internautas De forma a facilitar o acesso agrave informaccedilatildeo eacute apresentada nesse trabalho a teacutec-nica de Reconhecimento de Entidades Mencionadas a qual foi utilizada no desenvolvimento do aplicativo Traffic Monitor que busca em tempo real informaccedilotildees de tracircnsito na rede social Twittertrade Aleacutem disso o aplicativo desenvolvido exibe as informaccedilotildees mineradas em forma graacutefica (mapa de calor) proporcionando ao usuaacuterio uma interpretaccedilatildeo mais faacutecil e raacutepidaPalavras-chaves Moacutevel Monitoramento de Traacutefego e Mapa de Calor

1 Introduccedilatildeo

Um dos grandes desafios da computaccedilatildeo na aacuterea da Inteligecircn-cia Artificial (IA) eacute aproximar a linguagem natural da linguagem de maacutequina a fim de automatizar tarefas como a traduccedilatildeo de textos correccedilatildeo ortograacutefica extraccedilatildeo de informaccedilotildees a partir de dados da internet entre outras Atualmente eacute possiacutevel encontrar diversos aplicativos que executam tais tarefasos quais estatildeo pre-sentes no dia-a-dia de muitas pessoasporeacutem devido agrave comple-xidade da interpretaccedilatildeo da linguagem natural pelo computador esses aplicativos natildeo apresentam desempenho satisfatoacuterio em consequecircncia disso essa eacute uma aacuterea que necessita de constantes melhorias A simples busca de um termo (palavra ou expressatildeo qualquer) na internet por exemplo requer paciecircncia visto que quase sempre o resultado retornado possui outras informaccedilotildees aleacutem daquelas que usuaacuterio realmente necessita consequente-mente isso leva a um consumo de tempo na busca por infor-maccedilotildees relevantes (mineraccedilatildeo dos dados) O Processamento de Linguagem Natural (PLN) tambeacutem conhecido como Linguiacutestica Computacional busca justamente resolver essa lacuna que haacute na comunicaccedilatildeo entre homem e computador automatizando o pro-cesso de interpretaccedilatildeo de linguagem natural para linguagem de maacutequina proporcionando assim uma experiecircncia mais eficiente e agradaacutevel aos usuaacuterios

Se o internauta necessita de uma informaccedilatildeo em tem-po real por exemplo do tracircnsito aiacute o processo de busca pode ser ainda mais aacuterduo Em uma pesquisa no Googletrade pelo termo lsquoTransito em Goiacircniarsquo a notiacutecia mais recente retornada foi a de um dia anterior aoda pesquisa e ainda assim natildeo trazia infor-maccedilotildees relevantes da situaccedilatildeo do tracircnsito em Goiacircnia naquele instante Veja a seguir o termo mais recente que foi retornado em uma busca feita em 24062013 ldquoMotociclista eacute socorrido com fratura exposta apoacutes acidente em Goiacircniardquo1 Como alternativa ao Googletrade na tentativa de melhores resultados foi efetuada uma pesquisa no Twittertrade da Rede Me-tropolitana de Transporte Coletivo da Grande Goiacircnia (RMTC) que alimenta seu perfil nessa rede social com diversas informa-ccedilotildees dentre as quais informaccedilotildees sobre o tracircnsito na capital goiana Os cinco primeiros tweets da pesquisa realizada tambeacutem no dia 24062013 foram os seguintes

1 Informaccedilotildees sobre o tracircnsito da Regiatildeo Metropolitana em tempo real vocecirc encontra aqui Siga a RMTC no Twit-ter e fique bem informado )2 ederjcunha Sim Todas as linhas que trafegam pela re-giatildeo central de Goiacircnia seguem com o trajeto normal sem alteraccedilotildees3 Imediaccedilotildees do Terminal da Praccedila da Biacuteblia estatildeo livres fluxo vai sendo normalizado aos poucos Linhas voltam ao

1G1 Goiaacutes Tracircnsito Disponiacutevel em lthttpg1globocomgoiastransitonoticia201306motociclista-e-socorrido-com-fratura-exposta-apos-a-cidente-em-goianiahtmlgt Acesso em 24 jun 2013

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada13

JanDez 2015 Revista Tecnologia da Informaccedilatildeo Aplicada

trajeto normal4 DiasGuerreiro Linha 280 segue seu trajeto normal sem alteraccedilotildees ou interdiccedilotildees5 leo_ssousa Manifestantes seguem pela Av Anhanguera com destino agrave BR-153 impedindo o fluxo de veiacuteculos no local

Eacute possiacutevel perceber a partir da amostra acima que ain-da haacute necessidade de filtrar os dados retornados a fim de chegar agraves informaccedilotildees concretas sobre o tracircnsito que neste caso se en-contram nos tweets 3 e 5 respectivamente Como automatizar este processo de busca por informa-ccedilatildeo a partir de dados recebidos da internet e ainda tornar sua in-terpretaccedilatildeo mais faacutecil ao usuaacuterio atraveacutes de representaccedilotildees graacute-ficas (mapas de calor) eacute a proposta apresentada nesse trabalho Para tanto foi desenvolvido um aplicativo para dis-positivos moacuteveis que gera mapa de calor com informaccedilotildees de tracircnsito a partir da mineraccedilatildeo de dados (busca por informa-ccedilotildees relevantes) feita no perfil da RMTC no Twittertrade Na etapa de mineraccedilatildeo de dados foi usada a teacutecnica de Reconhecimento de Entidades Mencionadas (REM) tarefa da aacuterea da Extraccedilatildeo de Informaccedilatildeo que tem como objetivo a localizaccedilatildeo e classificaccedilatildeo de elementos (Entidade Mencionadas) como acontecimentos nome de pessoas organizaccedilotildees locais datas dentre outros pre-sentes em textos natildeo estruturados No desenvolvimento da apli-caccedilatildeo foram utilizadas tambeacutem as seguintes ferramentas Goo-gle AppEngine Twitter4J Google Maps API Google Geocoding API Jersey ndashRESTfulWeb Services e AndroidAPI

2 Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) campo da In-teligecircncia Artificial aborda conceitos necessaacuterios para o desen-volvimento de sistemas de geraccedilatildeo e interpretaccedilatildeo de linguagem natural que aproximem cada vez mais a linguagem humana da linguagem de maacutequina permitindo dessa forma que os humanos possam se comunicar com computadores vice-versa de forma mais natural e eficiente utilizando para isso sua linguagem nata Apesar dos avanccedilos no campo do PLN ainda haacute muitas implicaccedilotildees que expotildeem a necessidade de estudos e melhorias nessa aacutereaUm exemplo onde eacute visiacutevel essa necessidade eacuteem pro-gramas editores de texto que embora uacuteteis ainda natildeo apresen-tam um desempenho ideal quando usados para correccedilotildees orto-graacuteficas Outro exemplo satildeo os sistemas de traduccedilatildeo automaacutetica que apenas auxiliam na traduccedilatildeo das palavras mas que precisam da intervenccedilatildeo humana se o usuaacuterio quer um texto coerente e compreensiacutevel Recentemente dada a relevacircncia da aacuterea de PLN para a computaccedilatildeo foi criada a Comissatildeo Especial de Processamen-to de Linguagem Natural (CE-PLN) aprovada durante o XXVII Congresso da Sociedade Brasileira de Computaccedilatildeo realizado no Rio de Janeiro-RJ em 20072

21 Extraccedilatildeo de InformaccedilatildeoCom grande quantidade de dados produzidos a todo instante a Internet tornou-se um campo bastante interessante para aplica-ccedilatildeo de teacutecnicas de PLN

Surgida na deacutecada de 60 como uma proposta militar e restrita a poucos usuaacuterios hoje a Internet apresenta um cenaacuterio bastante diferente Com um vasto nuacutemero de usuaacuterios crescendo a cada dia segundo Instituto Brasileiro de Geografia e Estatiacutes-tica (IBGE)3 entre 2005 e 2011 o nuacutemero de internautas acima de 10 anos de idade aumentou 1438 no Brasil esse ambiente livre e colaborativo eacute uma oacutetima fonte de informaccedilotildees desde que o conteuacutedo produzido por seus usuaacuterios seja devidamente filtrado trazendo assim aquilo que eacute relevante

Outro levantamento feito pelo IBOPE4 divulgado em 2013 aponta 535 milhotildees de usuaacuterios ativos de Internet no Brasil dos quais 46 milhotildees ou seja 86 dos internautas ativos acessam algum tipo de rede social ou comunidade virtual (blogs micro-blogs e foacuteruns)

Dentre esses sites ainda segundo pesquisa IBOPE Face-booktrade e Twittertrade satildeo os que ganham mais atenccedilatildeo e tempo dos brasileiros que navegam na rede sendo que haacute uma grande produccedilatildeo de conteuacutedo nessas duas redes como mostrado em nuacute-meros5

- Facebooktrade

85962 - nuacutemero mensal de posts somente no Brasil (monitoradas 836 paacuteginas no Facebooktrade no Brasil o paiacutes mais ativo nesta rede) 1 bilhatildeo - nuacutemero mensal de usuaacuterios ativos no Facebooktrade em todo mundo (ateacute outubro de 2012)

- Twittertrade

175 milhotildees - meacutedia de tweets enviados por dia ao longo de 2012 200 milhotildees - satildeo os usuaacuterios mensais ativos no Twittertrade

Como eacute possiacutevel perceber haacute uma grande quantidade de dados produzidos na internet em especial nas redes sociais de onde o aplicativo desenvolvido nesse trabalho recolhe amostra de dados em busca de informaccedilotildees Essa etapa tambeacutem eacute conhe-cida como Extraccedilatildeo de Informaccedilatildeoum estaacutegio consequente agrave mineraccedilatildeo de dados que tem como propoacutesito segundo Riloff e Jones (1999) extrair informaccedilotildees especiacuteficas de texto em liacuten-gua natural Sendo assim partindo de uma amostra de dados eacute possiacutevel chegar agrave informaccedilatildeo A figura 1 exemplifica onde estaacute posicionada a informaccedilatildeo na piracircmide do conhecimento

3 Reconhecimento de Entidades Mencionadas (REM)

Subaeacuterea da Extraccedilatildeo de Informaccedilatildeo o Reconhecimento de Entidades Mencionadas tem como objetivo a localizaccedilatildeo e

2Sociedade Brasileira de Computaccedilatildeo Processamento de Linguagem Natural Disponiacutevel emlthttpsbcorgbrindexphpoption=com_conten-tampview=categoryamplayout=blogampid=50ampItemid=71gt Acesso em 27 set 20133Portal Brasil Nuacutemero de usuaacuterios de internet e de pessoas com celular cresceu mais de 100 no Brasil Disponiacutevel emlthttpwwwbrasilgovbrnoticiasarquivos20130516numero-de-usuarios-de-internet-e-de-pessoas-com-celular-cresceu-mais-de-100-no-brasilgt Acesso em 27 set 20134IBOPE Nuacutemero de usuaacuterios de redes sociais ultrapassa 46 milhotildees de brasileiros Disponiacutevel emlthttpwwwibopecombrpt-brnoticiaspagi-nasnumero-de-usuarios-de-redes-sociais-ultrapassa-46-milhoes-de-brasileirosaspxgt Acesso em 24 jun 20135Royal Pingdom Internet 2012 in numbers Disponiacutevel emlthttproyalpingdomcom20130116internet-2012-in-numbersgt Acesso em 24 jun 2013

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 6: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada9

Vocecirc canta uma muacutesica para mim

Como negar o pedido daqueles olhos expectantes de crianccedila para um estranho na rua querendo tirar dali algo que os aproximasse Natildeo sei por que razatildeo ela queria que eu cantasse Cabeccedila quente nada que viesse espontane-amente Precisei de alguns minutos para recobrar a consciecircncia verificar se ela natildeo estava sozinha sem algum res-ponsaacutevel Para meu aliacutevio a matildee dela estava por ali observando sem entender a atitude da filha de quatro anos

Entatildeo finalmente me lembrei de uma muacutesica qualquer que ouvia na infacircncia Internamente relutante por conta do meu horaacuterio tentando demonstrar simpatia comecei a cantar Confesso que com algum descaso aparente querendo me livrar logo da situaccedilatildeo Do nada a menina se assentou na cadeira que estava proacutexima a ela e parou para me ouvir como se estivesse de frente a um palco assistido a um espetaacuteculo magniacutefico Ficou me olhando com tanta admiraccedilatildeo parecia ateacute que aquele momento era o melhor da sua vida seus olhos cintilavam ela ganhara o dia Quando me dei conta eu estava cantando com entusiasmo olhando dentro dos olhos dela e sorrindo Ela conseguira tirar de mim uma voz doce suave instaurou a paz que precisava para continuar o dia Impossiacutevel esquecer aqueles olhos Impossiacutevel esquecer a emoccedilatildeo de uma crianccedila um anjo que me dera uma rosa celestial um abraccedilo um sorriso e um ateacute logo

Goiacircnia 2014

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201210

Abelardo Rodrigues de Almeida Nascido em Inhumas - GO eacute Bacharel em Teologia pelo STBSB-RJ Especialista em Teologia Sistemaacutetica pelo STBSB-RJ Mestre em Filosofia Poliacutetica pela UFG doutorando em Teologia pela CPAJ-Machenzi-SP RTS-EUA

Abelardo Rodrigues de Almeida

JanDez 2015

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE Novas tecnologias novos desafios novos comportamentos novas aprendizagens novos entre-tenimentos novas enfermidades A vida entrou em um acelerador de novidades e upgrades tecnoloacutegicos que exige toda a capacidade intelectual e motora do indiviacuteduo O que representa para noacutes esta avalanche virtual e como surfar nestas ondas Como experimen-tar esta realidade liacutequida sem sucumbir no glamour das ofertas e perder o domiacutenio de si Como consumir sem ser consumido ou sem extinguir a fonte dos futu-ros seres

Haacute mais mobilidade hoje do que jamais se pensou A mobilidade que mais importa eacute da cone-xatildeo Mobilidade total significa conexatildeo ininterrupta Todos aspiram habitar na Rede permanecer na Rede integrar a Rede Transcender para o virtual O mundo para na estaccedilatildeo da palma da matildeo Natildeo apenas o apa-relho eacute uma ceacutelula mobile mas o proacuteprio indiviacuteduo eacute um roteador mobile Haacute uma sensaccedilatildeo de poder de liberdade mas tambeacutem de escamoteamento de refuacute-gio de ocultamento e de fuga da realidade

Precisamos criar uma eacutetica nova para a era da pessoa mobile e da sociedade em rede Esta nova eacuteti-ca deve antes de tudo ser humana e solidaacuteria O ser humano precisa se revestir de um conjunto de paracirc-metros que lhe sirva de morada segura Ou seja o ser concreto do homem deve se orientar por criteacuterios de bem ou mal que preserve e desenvolva sua essecircncia O bem e o mal satildeo juiacutezos de valor essenciais que estimu-lam o bem maior do ser e previnem contra os elemen-tos deterioradores corruptores e viciantes do ser

A eacutetica faz o ser humano voltar sobre sua es-secircncia e projetar o seu futuro ideal Para um dos maio-res pensadores de nosso tempo Hans Kung em sua obra Uma Eacutetica Global para a Poliacutetica e a Economia

Mundiais uma coisa ldquoeacute incontestaacutevel depende intei-ramente de nossa motivaccedilatildeo eacutetica se nos decidimos por fazer com que para a geraccedilatildeo de nossos filhos as coisas corram tatildeo bem como para noacutes ou melhor ou piorrdquo Nossas decisotildees seratildeo boas se baseadas em uma eacutetica reflexiva sobre noacutes e o futuro

A eacutetica implica uma tomada de consciecircncia radical e autecircntica sobre nossa finitude fragilidade e alienaccedilatildeo ou alienabilidade perante a forccedila das novas tecnologias e o risco do desvio do real para o virtual Pense no ser si mesmo pense no ser presente pense no ser futuro Natildeo seja um ser ausente da vida concre-ta nem da famiacutelia nem da convivialidade dos amigos e parentes A eacutetica do humano exige presenccedila e cor-poralidade diaacutelogo e abraccedilo autenticidade e cuidado com o futuro de si e dos outros A Eacutetica eacute o ser total agindo reflexivamente na antecipaccedilatildeo do futuro sus-tentaacutevel

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada11

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201212

Artigo 1

Revista Tecnologia da Informaccedilatildeo Aplicada JanDez 2015

Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades

Mencionadas Aplicados a Mapas de Calor

ADEILTON ALVES SANTOSsup1CLEITON DE SAacute SILVAsup2

RICARDO SAUL SANTOS LOPESsup3WEYSLLER MATUZINHOS DE MOURA4

1 2 e 3 Faculdade de Ciecircncia da Computaccedilatildeo ndash Instituto Unificado de Ensino Superior Objetivo (IUESO)Av T-02 nordm 1993 - Setor Bueno ndash Goiacircnia ndash GO ndash Brasil

4 Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

cleitonssricardosauladeiltonalvessantosweysllergmailcom weysllersenaisistemafiegorgbr

Abstract Find relevant information among the large amount of data produced on the Internet is a task with a high level of difficulty Every day people produce more and more content especially on social networks where it concentrates a large part of the Internet users With the purpose of facilitating access to information is presented in this work the technique of Named Entity Recognition (NER) which was used in the development of the application Traffic Monitor which seeks real-time tra-ffic information on the social network Twittertrade In addition the developed application displays the mined information in graphical form (heat map) providing the user with an easier and faster interpretationKey-words Mobile Traffic Monitor and Heat Map

Resumo Encontrar informaccedilotildees relevantes em meio agrave grande quantidade de dados gerados na Internet constitui uma tarefa com alto grau de dificuldade A cada dia as pessoas produzem mais e mais conteuacutedo em especial nas redes sociais onde se concentra uma grande parte dos internautas De forma a facilitar o acesso agrave informaccedilatildeo eacute apresentada nesse trabalho a teacutec-nica de Reconhecimento de Entidades Mencionadas a qual foi utilizada no desenvolvimento do aplicativo Traffic Monitor que busca em tempo real informaccedilotildees de tracircnsito na rede social Twittertrade Aleacutem disso o aplicativo desenvolvido exibe as informaccedilotildees mineradas em forma graacutefica (mapa de calor) proporcionando ao usuaacuterio uma interpretaccedilatildeo mais faacutecil e raacutepidaPalavras-chaves Moacutevel Monitoramento de Traacutefego e Mapa de Calor

1 Introduccedilatildeo

Um dos grandes desafios da computaccedilatildeo na aacuterea da Inteligecircn-cia Artificial (IA) eacute aproximar a linguagem natural da linguagem de maacutequina a fim de automatizar tarefas como a traduccedilatildeo de textos correccedilatildeo ortograacutefica extraccedilatildeo de informaccedilotildees a partir de dados da internet entre outras Atualmente eacute possiacutevel encontrar diversos aplicativos que executam tais tarefasos quais estatildeo pre-sentes no dia-a-dia de muitas pessoasporeacutem devido agrave comple-xidade da interpretaccedilatildeo da linguagem natural pelo computador esses aplicativos natildeo apresentam desempenho satisfatoacuterio em consequecircncia disso essa eacute uma aacuterea que necessita de constantes melhorias A simples busca de um termo (palavra ou expressatildeo qualquer) na internet por exemplo requer paciecircncia visto que quase sempre o resultado retornado possui outras informaccedilotildees aleacutem daquelas que usuaacuterio realmente necessita consequente-mente isso leva a um consumo de tempo na busca por infor-maccedilotildees relevantes (mineraccedilatildeo dos dados) O Processamento de Linguagem Natural (PLN) tambeacutem conhecido como Linguiacutestica Computacional busca justamente resolver essa lacuna que haacute na comunicaccedilatildeo entre homem e computador automatizando o pro-cesso de interpretaccedilatildeo de linguagem natural para linguagem de maacutequina proporcionando assim uma experiecircncia mais eficiente e agradaacutevel aos usuaacuterios

Se o internauta necessita de uma informaccedilatildeo em tem-po real por exemplo do tracircnsito aiacute o processo de busca pode ser ainda mais aacuterduo Em uma pesquisa no Googletrade pelo termo lsquoTransito em Goiacircniarsquo a notiacutecia mais recente retornada foi a de um dia anterior aoda pesquisa e ainda assim natildeo trazia infor-maccedilotildees relevantes da situaccedilatildeo do tracircnsito em Goiacircnia naquele instante Veja a seguir o termo mais recente que foi retornado em uma busca feita em 24062013 ldquoMotociclista eacute socorrido com fratura exposta apoacutes acidente em Goiacircniardquo1 Como alternativa ao Googletrade na tentativa de melhores resultados foi efetuada uma pesquisa no Twittertrade da Rede Me-tropolitana de Transporte Coletivo da Grande Goiacircnia (RMTC) que alimenta seu perfil nessa rede social com diversas informa-ccedilotildees dentre as quais informaccedilotildees sobre o tracircnsito na capital goiana Os cinco primeiros tweets da pesquisa realizada tambeacutem no dia 24062013 foram os seguintes

1 Informaccedilotildees sobre o tracircnsito da Regiatildeo Metropolitana em tempo real vocecirc encontra aqui Siga a RMTC no Twit-ter e fique bem informado )2 ederjcunha Sim Todas as linhas que trafegam pela re-giatildeo central de Goiacircnia seguem com o trajeto normal sem alteraccedilotildees3 Imediaccedilotildees do Terminal da Praccedila da Biacuteblia estatildeo livres fluxo vai sendo normalizado aos poucos Linhas voltam ao

1G1 Goiaacutes Tracircnsito Disponiacutevel em lthttpg1globocomgoiastransitonoticia201306motociclista-e-socorrido-com-fratura-exposta-apos-a-cidente-em-goianiahtmlgt Acesso em 24 jun 2013

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada13

JanDez 2015 Revista Tecnologia da Informaccedilatildeo Aplicada

trajeto normal4 DiasGuerreiro Linha 280 segue seu trajeto normal sem alteraccedilotildees ou interdiccedilotildees5 leo_ssousa Manifestantes seguem pela Av Anhanguera com destino agrave BR-153 impedindo o fluxo de veiacuteculos no local

Eacute possiacutevel perceber a partir da amostra acima que ain-da haacute necessidade de filtrar os dados retornados a fim de chegar agraves informaccedilotildees concretas sobre o tracircnsito que neste caso se en-contram nos tweets 3 e 5 respectivamente Como automatizar este processo de busca por informa-ccedilatildeo a partir de dados recebidos da internet e ainda tornar sua in-terpretaccedilatildeo mais faacutecil ao usuaacuterio atraveacutes de representaccedilotildees graacute-ficas (mapas de calor) eacute a proposta apresentada nesse trabalho Para tanto foi desenvolvido um aplicativo para dis-positivos moacuteveis que gera mapa de calor com informaccedilotildees de tracircnsito a partir da mineraccedilatildeo de dados (busca por informa-ccedilotildees relevantes) feita no perfil da RMTC no Twittertrade Na etapa de mineraccedilatildeo de dados foi usada a teacutecnica de Reconhecimento de Entidades Mencionadas (REM) tarefa da aacuterea da Extraccedilatildeo de Informaccedilatildeo que tem como objetivo a localizaccedilatildeo e classificaccedilatildeo de elementos (Entidade Mencionadas) como acontecimentos nome de pessoas organizaccedilotildees locais datas dentre outros pre-sentes em textos natildeo estruturados No desenvolvimento da apli-caccedilatildeo foram utilizadas tambeacutem as seguintes ferramentas Goo-gle AppEngine Twitter4J Google Maps API Google Geocoding API Jersey ndashRESTfulWeb Services e AndroidAPI

2 Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) campo da In-teligecircncia Artificial aborda conceitos necessaacuterios para o desen-volvimento de sistemas de geraccedilatildeo e interpretaccedilatildeo de linguagem natural que aproximem cada vez mais a linguagem humana da linguagem de maacutequina permitindo dessa forma que os humanos possam se comunicar com computadores vice-versa de forma mais natural e eficiente utilizando para isso sua linguagem nata Apesar dos avanccedilos no campo do PLN ainda haacute muitas implicaccedilotildees que expotildeem a necessidade de estudos e melhorias nessa aacutereaUm exemplo onde eacute visiacutevel essa necessidade eacuteem pro-gramas editores de texto que embora uacuteteis ainda natildeo apresen-tam um desempenho ideal quando usados para correccedilotildees orto-graacuteficas Outro exemplo satildeo os sistemas de traduccedilatildeo automaacutetica que apenas auxiliam na traduccedilatildeo das palavras mas que precisam da intervenccedilatildeo humana se o usuaacuterio quer um texto coerente e compreensiacutevel Recentemente dada a relevacircncia da aacuterea de PLN para a computaccedilatildeo foi criada a Comissatildeo Especial de Processamen-to de Linguagem Natural (CE-PLN) aprovada durante o XXVII Congresso da Sociedade Brasileira de Computaccedilatildeo realizado no Rio de Janeiro-RJ em 20072

21 Extraccedilatildeo de InformaccedilatildeoCom grande quantidade de dados produzidos a todo instante a Internet tornou-se um campo bastante interessante para aplica-ccedilatildeo de teacutecnicas de PLN

Surgida na deacutecada de 60 como uma proposta militar e restrita a poucos usuaacuterios hoje a Internet apresenta um cenaacuterio bastante diferente Com um vasto nuacutemero de usuaacuterios crescendo a cada dia segundo Instituto Brasileiro de Geografia e Estatiacutes-tica (IBGE)3 entre 2005 e 2011 o nuacutemero de internautas acima de 10 anos de idade aumentou 1438 no Brasil esse ambiente livre e colaborativo eacute uma oacutetima fonte de informaccedilotildees desde que o conteuacutedo produzido por seus usuaacuterios seja devidamente filtrado trazendo assim aquilo que eacute relevante

Outro levantamento feito pelo IBOPE4 divulgado em 2013 aponta 535 milhotildees de usuaacuterios ativos de Internet no Brasil dos quais 46 milhotildees ou seja 86 dos internautas ativos acessam algum tipo de rede social ou comunidade virtual (blogs micro-blogs e foacuteruns)

Dentre esses sites ainda segundo pesquisa IBOPE Face-booktrade e Twittertrade satildeo os que ganham mais atenccedilatildeo e tempo dos brasileiros que navegam na rede sendo que haacute uma grande produccedilatildeo de conteuacutedo nessas duas redes como mostrado em nuacute-meros5

- Facebooktrade

85962 - nuacutemero mensal de posts somente no Brasil (monitoradas 836 paacuteginas no Facebooktrade no Brasil o paiacutes mais ativo nesta rede) 1 bilhatildeo - nuacutemero mensal de usuaacuterios ativos no Facebooktrade em todo mundo (ateacute outubro de 2012)

- Twittertrade

175 milhotildees - meacutedia de tweets enviados por dia ao longo de 2012 200 milhotildees - satildeo os usuaacuterios mensais ativos no Twittertrade

Como eacute possiacutevel perceber haacute uma grande quantidade de dados produzidos na internet em especial nas redes sociais de onde o aplicativo desenvolvido nesse trabalho recolhe amostra de dados em busca de informaccedilotildees Essa etapa tambeacutem eacute conhe-cida como Extraccedilatildeo de Informaccedilatildeoum estaacutegio consequente agrave mineraccedilatildeo de dados que tem como propoacutesito segundo Riloff e Jones (1999) extrair informaccedilotildees especiacuteficas de texto em liacuten-gua natural Sendo assim partindo de uma amostra de dados eacute possiacutevel chegar agrave informaccedilatildeo A figura 1 exemplifica onde estaacute posicionada a informaccedilatildeo na piracircmide do conhecimento

3 Reconhecimento de Entidades Mencionadas (REM)

Subaeacuterea da Extraccedilatildeo de Informaccedilatildeo o Reconhecimento de Entidades Mencionadas tem como objetivo a localizaccedilatildeo e

2Sociedade Brasileira de Computaccedilatildeo Processamento de Linguagem Natural Disponiacutevel emlthttpsbcorgbrindexphpoption=com_conten-tampview=categoryamplayout=blogampid=50ampItemid=71gt Acesso em 27 set 20133Portal Brasil Nuacutemero de usuaacuterios de internet e de pessoas com celular cresceu mais de 100 no Brasil Disponiacutevel emlthttpwwwbrasilgovbrnoticiasarquivos20130516numero-de-usuarios-de-internet-e-de-pessoas-com-celular-cresceu-mais-de-100-no-brasilgt Acesso em 27 set 20134IBOPE Nuacutemero de usuaacuterios de redes sociais ultrapassa 46 milhotildees de brasileiros Disponiacutevel emlthttpwwwibopecombrpt-brnoticiaspagi-nasnumero-de-usuarios-de-redes-sociais-ultrapassa-46-milhoes-de-brasileirosaspxgt Acesso em 24 jun 20135Royal Pingdom Internet 2012 in numbers Disponiacutevel emlthttproyalpingdomcom20130116internet-2012-in-numbersgt Acesso em 24 jun 2013

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 7: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201210

Abelardo Rodrigues de Almeida Nascido em Inhumas - GO eacute Bacharel em Teologia pelo STBSB-RJ Especialista em Teologia Sistemaacutetica pelo STBSB-RJ Mestre em Filosofia Poliacutetica pela UFG doutorando em Teologia pela CPAJ-Machenzi-SP RTS-EUA

Abelardo Rodrigues de Almeida

JanDez 2015

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE Novas tecnologias novos desafios novos comportamentos novas aprendizagens novos entre-tenimentos novas enfermidades A vida entrou em um acelerador de novidades e upgrades tecnoloacutegicos que exige toda a capacidade intelectual e motora do indiviacuteduo O que representa para noacutes esta avalanche virtual e como surfar nestas ondas Como experimen-tar esta realidade liacutequida sem sucumbir no glamour das ofertas e perder o domiacutenio de si Como consumir sem ser consumido ou sem extinguir a fonte dos futu-ros seres

Haacute mais mobilidade hoje do que jamais se pensou A mobilidade que mais importa eacute da cone-xatildeo Mobilidade total significa conexatildeo ininterrupta Todos aspiram habitar na Rede permanecer na Rede integrar a Rede Transcender para o virtual O mundo para na estaccedilatildeo da palma da matildeo Natildeo apenas o apa-relho eacute uma ceacutelula mobile mas o proacuteprio indiviacuteduo eacute um roteador mobile Haacute uma sensaccedilatildeo de poder de liberdade mas tambeacutem de escamoteamento de refuacute-gio de ocultamento e de fuga da realidade

Precisamos criar uma eacutetica nova para a era da pessoa mobile e da sociedade em rede Esta nova eacuteti-ca deve antes de tudo ser humana e solidaacuteria O ser humano precisa se revestir de um conjunto de paracirc-metros que lhe sirva de morada segura Ou seja o ser concreto do homem deve se orientar por criteacuterios de bem ou mal que preserve e desenvolva sua essecircncia O bem e o mal satildeo juiacutezos de valor essenciais que estimu-lam o bem maior do ser e previnem contra os elemen-tos deterioradores corruptores e viciantes do ser

A eacutetica faz o ser humano voltar sobre sua es-secircncia e projetar o seu futuro ideal Para um dos maio-res pensadores de nosso tempo Hans Kung em sua obra Uma Eacutetica Global para a Poliacutetica e a Economia

Mundiais uma coisa ldquoeacute incontestaacutevel depende intei-ramente de nossa motivaccedilatildeo eacutetica se nos decidimos por fazer com que para a geraccedilatildeo de nossos filhos as coisas corram tatildeo bem como para noacutes ou melhor ou piorrdquo Nossas decisotildees seratildeo boas se baseadas em uma eacutetica reflexiva sobre noacutes e o futuro

A eacutetica implica uma tomada de consciecircncia radical e autecircntica sobre nossa finitude fragilidade e alienaccedilatildeo ou alienabilidade perante a forccedila das novas tecnologias e o risco do desvio do real para o virtual Pense no ser si mesmo pense no ser presente pense no ser futuro Natildeo seja um ser ausente da vida concre-ta nem da famiacutelia nem da convivialidade dos amigos e parentes A eacutetica do humano exige presenccedila e cor-poralidade diaacutelogo e abraccedilo autenticidade e cuidado com o futuro de si e dos outros A Eacutetica eacute o ser total agindo reflexivamente na antecipaccedilatildeo do futuro sus-tentaacutevel

A BUSCA DE UMA EacuteTICA DA VIDA MOBILE

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada11

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201212

Artigo 1

Revista Tecnologia da Informaccedilatildeo Aplicada JanDez 2015

Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades

Mencionadas Aplicados a Mapas de Calor

ADEILTON ALVES SANTOSsup1CLEITON DE SAacute SILVAsup2

RICARDO SAUL SANTOS LOPESsup3WEYSLLER MATUZINHOS DE MOURA4

1 2 e 3 Faculdade de Ciecircncia da Computaccedilatildeo ndash Instituto Unificado de Ensino Superior Objetivo (IUESO)Av T-02 nordm 1993 - Setor Bueno ndash Goiacircnia ndash GO ndash Brasil

4 Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

cleitonssricardosauladeiltonalvessantosweysllergmailcom weysllersenaisistemafiegorgbr

Abstract Find relevant information among the large amount of data produced on the Internet is a task with a high level of difficulty Every day people produce more and more content especially on social networks where it concentrates a large part of the Internet users With the purpose of facilitating access to information is presented in this work the technique of Named Entity Recognition (NER) which was used in the development of the application Traffic Monitor which seeks real-time tra-ffic information on the social network Twittertrade In addition the developed application displays the mined information in graphical form (heat map) providing the user with an easier and faster interpretationKey-words Mobile Traffic Monitor and Heat Map

Resumo Encontrar informaccedilotildees relevantes em meio agrave grande quantidade de dados gerados na Internet constitui uma tarefa com alto grau de dificuldade A cada dia as pessoas produzem mais e mais conteuacutedo em especial nas redes sociais onde se concentra uma grande parte dos internautas De forma a facilitar o acesso agrave informaccedilatildeo eacute apresentada nesse trabalho a teacutec-nica de Reconhecimento de Entidades Mencionadas a qual foi utilizada no desenvolvimento do aplicativo Traffic Monitor que busca em tempo real informaccedilotildees de tracircnsito na rede social Twittertrade Aleacutem disso o aplicativo desenvolvido exibe as informaccedilotildees mineradas em forma graacutefica (mapa de calor) proporcionando ao usuaacuterio uma interpretaccedilatildeo mais faacutecil e raacutepidaPalavras-chaves Moacutevel Monitoramento de Traacutefego e Mapa de Calor

1 Introduccedilatildeo

Um dos grandes desafios da computaccedilatildeo na aacuterea da Inteligecircn-cia Artificial (IA) eacute aproximar a linguagem natural da linguagem de maacutequina a fim de automatizar tarefas como a traduccedilatildeo de textos correccedilatildeo ortograacutefica extraccedilatildeo de informaccedilotildees a partir de dados da internet entre outras Atualmente eacute possiacutevel encontrar diversos aplicativos que executam tais tarefasos quais estatildeo pre-sentes no dia-a-dia de muitas pessoasporeacutem devido agrave comple-xidade da interpretaccedilatildeo da linguagem natural pelo computador esses aplicativos natildeo apresentam desempenho satisfatoacuterio em consequecircncia disso essa eacute uma aacuterea que necessita de constantes melhorias A simples busca de um termo (palavra ou expressatildeo qualquer) na internet por exemplo requer paciecircncia visto que quase sempre o resultado retornado possui outras informaccedilotildees aleacutem daquelas que usuaacuterio realmente necessita consequente-mente isso leva a um consumo de tempo na busca por infor-maccedilotildees relevantes (mineraccedilatildeo dos dados) O Processamento de Linguagem Natural (PLN) tambeacutem conhecido como Linguiacutestica Computacional busca justamente resolver essa lacuna que haacute na comunicaccedilatildeo entre homem e computador automatizando o pro-cesso de interpretaccedilatildeo de linguagem natural para linguagem de maacutequina proporcionando assim uma experiecircncia mais eficiente e agradaacutevel aos usuaacuterios

Se o internauta necessita de uma informaccedilatildeo em tem-po real por exemplo do tracircnsito aiacute o processo de busca pode ser ainda mais aacuterduo Em uma pesquisa no Googletrade pelo termo lsquoTransito em Goiacircniarsquo a notiacutecia mais recente retornada foi a de um dia anterior aoda pesquisa e ainda assim natildeo trazia infor-maccedilotildees relevantes da situaccedilatildeo do tracircnsito em Goiacircnia naquele instante Veja a seguir o termo mais recente que foi retornado em uma busca feita em 24062013 ldquoMotociclista eacute socorrido com fratura exposta apoacutes acidente em Goiacircniardquo1 Como alternativa ao Googletrade na tentativa de melhores resultados foi efetuada uma pesquisa no Twittertrade da Rede Me-tropolitana de Transporte Coletivo da Grande Goiacircnia (RMTC) que alimenta seu perfil nessa rede social com diversas informa-ccedilotildees dentre as quais informaccedilotildees sobre o tracircnsito na capital goiana Os cinco primeiros tweets da pesquisa realizada tambeacutem no dia 24062013 foram os seguintes

1 Informaccedilotildees sobre o tracircnsito da Regiatildeo Metropolitana em tempo real vocecirc encontra aqui Siga a RMTC no Twit-ter e fique bem informado )2 ederjcunha Sim Todas as linhas que trafegam pela re-giatildeo central de Goiacircnia seguem com o trajeto normal sem alteraccedilotildees3 Imediaccedilotildees do Terminal da Praccedila da Biacuteblia estatildeo livres fluxo vai sendo normalizado aos poucos Linhas voltam ao

1G1 Goiaacutes Tracircnsito Disponiacutevel em lthttpg1globocomgoiastransitonoticia201306motociclista-e-socorrido-com-fratura-exposta-apos-a-cidente-em-goianiahtmlgt Acesso em 24 jun 2013

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada13

JanDez 2015 Revista Tecnologia da Informaccedilatildeo Aplicada

trajeto normal4 DiasGuerreiro Linha 280 segue seu trajeto normal sem alteraccedilotildees ou interdiccedilotildees5 leo_ssousa Manifestantes seguem pela Av Anhanguera com destino agrave BR-153 impedindo o fluxo de veiacuteculos no local

Eacute possiacutevel perceber a partir da amostra acima que ain-da haacute necessidade de filtrar os dados retornados a fim de chegar agraves informaccedilotildees concretas sobre o tracircnsito que neste caso se en-contram nos tweets 3 e 5 respectivamente Como automatizar este processo de busca por informa-ccedilatildeo a partir de dados recebidos da internet e ainda tornar sua in-terpretaccedilatildeo mais faacutecil ao usuaacuterio atraveacutes de representaccedilotildees graacute-ficas (mapas de calor) eacute a proposta apresentada nesse trabalho Para tanto foi desenvolvido um aplicativo para dis-positivos moacuteveis que gera mapa de calor com informaccedilotildees de tracircnsito a partir da mineraccedilatildeo de dados (busca por informa-ccedilotildees relevantes) feita no perfil da RMTC no Twittertrade Na etapa de mineraccedilatildeo de dados foi usada a teacutecnica de Reconhecimento de Entidades Mencionadas (REM) tarefa da aacuterea da Extraccedilatildeo de Informaccedilatildeo que tem como objetivo a localizaccedilatildeo e classificaccedilatildeo de elementos (Entidade Mencionadas) como acontecimentos nome de pessoas organizaccedilotildees locais datas dentre outros pre-sentes em textos natildeo estruturados No desenvolvimento da apli-caccedilatildeo foram utilizadas tambeacutem as seguintes ferramentas Goo-gle AppEngine Twitter4J Google Maps API Google Geocoding API Jersey ndashRESTfulWeb Services e AndroidAPI

2 Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) campo da In-teligecircncia Artificial aborda conceitos necessaacuterios para o desen-volvimento de sistemas de geraccedilatildeo e interpretaccedilatildeo de linguagem natural que aproximem cada vez mais a linguagem humana da linguagem de maacutequina permitindo dessa forma que os humanos possam se comunicar com computadores vice-versa de forma mais natural e eficiente utilizando para isso sua linguagem nata Apesar dos avanccedilos no campo do PLN ainda haacute muitas implicaccedilotildees que expotildeem a necessidade de estudos e melhorias nessa aacutereaUm exemplo onde eacute visiacutevel essa necessidade eacuteem pro-gramas editores de texto que embora uacuteteis ainda natildeo apresen-tam um desempenho ideal quando usados para correccedilotildees orto-graacuteficas Outro exemplo satildeo os sistemas de traduccedilatildeo automaacutetica que apenas auxiliam na traduccedilatildeo das palavras mas que precisam da intervenccedilatildeo humana se o usuaacuterio quer um texto coerente e compreensiacutevel Recentemente dada a relevacircncia da aacuterea de PLN para a computaccedilatildeo foi criada a Comissatildeo Especial de Processamen-to de Linguagem Natural (CE-PLN) aprovada durante o XXVII Congresso da Sociedade Brasileira de Computaccedilatildeo realizado no Rio de Janeiro-RJ em 20072

21 Extraccedilatildeo de InformaccedilatildeoCom grande quantidade de dados produzidos a todo instante a Internet tornou-se um campo bastante interessante para aplica-ccedilatildeo de teacutecnicas de PLN

Surgida na deacutecada de 60 como uma proposta militar e restrita a poucos usuaacuterios hoje a Internet apresenta um cenaacuterio bastante diferente Com um vasto nuacutemero de usuaacuterios crescendo a cada dia segundo Instituto Brasileiro de Geografia e Estatiacutes-tica (IBGE)3 entre 2005 e 2011 o nuacutemero de internautas acima de 10 anos de idade aumentou 1438 no Brasil esse ambiente livre e colaborativo eacute uma oacutetima fonte de informaccedilotildees desde que o conteuacutedo produzido por seus usuaacuterios seja devidamente filtrado trazendo assim aquilo que eacute relevante

Outro levantamento feito pelo IBOPE4 divulgado em 2013 aponta 535 milhotildees de usuaacuterios ativos de Internet no Brasil dos quais 46 milhotildees ou seja 86 dos internautas ativos acessam algum tipo de rede social ou comunidade virtual (blogs micro-blogs e foacuteruns)

Dentre esses sites ainda segundo pesquisa IBOPE Face-booktrade e Twittertrade satildeo os que ganham mais atenccedilatildeo e tempo dos brasileiros que navegam na rede sendo que haacute uma grande produccedilatildeo de conteuacutedo nessas duas redes como mostrado em nuacute-meros5

- Facebooktrade

85962 - nuacutemero mensal de posts somente no Brasil (monitoradas 836 paacuteginas no Facebooktrade no Brasil o paiacutes mais ativo nesta rede) 1 bilhatildeo - nuacutemero mensal de usuaacuterios ativos no Facebooktrade em todo mundo (ateacute outubro de 2012)

- Twittertrade

175 milhotildees - meacutedia de tweets enviados por dia ao longo de 2012 200 milhotildees - satildeo os usuaacuterios mensais ativos no Twittertrade

Como eacute possiacutevel perceber haacute uma grande quantidade de dados produzidos na internet em especial nas redes sociais de onde o aplicativo desenvolvido nesse trabalho recolhe amostra de dados em busca de informaccedilotildees Essa etapa tambeacutem eacute conhe-cida como Extraccedilatildeo de Informaccedilatildeoum estaacutegio consequente agrave mineraccedilatildeo de dados que tem como propoacutesito segundo Riloff e Jones (1999) extrair informaccedilotildees especiacuteficas de texto em liacuten-gua natural Sendo assim partindo de uma amostra de dados eacute possiacutevel chegar agrave informaccedilatildeo A figura 1 exemplifica onde estaacute posicionada a informaccedilatildeo na piracircmide do conhecimento

3 Reconhecimento de Entidades Mencionadas (REM)

Subaeacuterea da Extraccedilatildeo de Informaccedilatildeo o Reconhecimento de Entidades Mencionadas tem como objetivo a localizaccedilatildeo e

2Sociedade Brasileira de Computaccedilatildeo Processamento de Linguagem Natural Disponiacutevel emlthttpsbcorgbrindexphpoption=com_conten-tampview=categoryamplayout=blogampid=50ampItemid=71gt Acesso em 27 set 20133Portal Brasil Nuacutemero de usuaacuterios de internet e de pessoas com celular cresceu mais de 100 no Brasil Disponiacutevel emlthttpwwwbrasilgovbrnoticiasarquivos20130516numero-de-usuarios-de-internet-e-de-pessoas-com-celular-cresceu-mais-de-100-no-brasilgt Acesso em 27 set 20134IBOPE Nuacutemero de usuaacuterios de redes sociais ultrapassa 46 milhotildees de brasileiros Disponiacutevel emlthttpwwwibopecombrpt-brnoticiaspagi-nasnumero-de-usuarios-de-redes-sociais-ultrapassa-46-milhoes-de-brasileirosaspxgt Acesso em 24 jun 20135Royal Pingdom Internet 2012 in numbers Disponiacutevel emlthttproyalpingdomcom20130116internet-2012-in-numbersgt Acesso em 24 jun 2013

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 8: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada11

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201212

Artigo 1

Revista Tecnologia da Informaccedilatildeo Aplicada JanDez 2015

Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades

Mencionadas Aplicados a Mapas de Calor

ADEILTON ALVES SANTOSsup1CLEITON DE SAacute SILVAsup2

RICARDO SAUL SANTOS LOPESsup3WEYSLLER MATUZINHOS DE MOURA4

1 2 e 3 Faculdade de Ciecircncia da Computaccedilatildeo ndash Instituto Unificado de Ensino Superior Objetivo (IUESO)Av T-02 nordm 1993 - Setor Bueno ndash Goiacircnia ndash GO ndash Brasil

4 Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

cleitonssricardosauladeiltonalvessantosweysllergmailcom weysllersenaisistemafiegorgbr

Abstract Find relevant information among the large amount of data produced on the Internet is a task with a high level of difficulty Every day people produce more and more content especially on social networks where it concentrates a large part of the Internet users With the purpose of facilitating access to information is presented in this work the technique of Named Entity Recognition (NER) which was used in the development of the application Traffic Monitor which seeks real-time tra-ffic information on the social network Twittertrade In addition the developed application displays the mined information in graphical form (heat map) providing the user with an easier and faster interpretationKey-words Mobile Traffic Monitor and Heat Map

Resumo Encontrar informaccedilotildees relevantes em meio agrave grande quantidade de dados gerados na Internet constitui uma tarefa com alto grau de dificuldade A cada dia as pessoas produzem mais e mais conteuacutedo em especial nas redes sociais onde se concentra uma grande parte dos internautas De forma a facilitar o acesso agrave informaccedilatildeo eacute apresentada nesse trabalho a teacutec-nica de Reconhecimento de Entidades Mencionadas a qual foi utilizada no desenvolvimento do aplicativo Traffic Monitor que busca em tempo real informaccedilotildees de tracircnsito na rede social Twittertrade Aleacutem disso o aplicativo desenvolvido exibe as informaccedilotildees mineradas em forma graacutefica (mapa de calor) proporcionando ao usuaacuterio uma interpretaccedilatildeo mais faacutecil e raacutepidaPalavras-chaves Moacutevel Monitoramento de Traacutefego e Mapa de Calor

1 Introduccedilatildeo

Um dos grandes desafios da computaccedilatildeo na aacuterea da Inteligecircn-cia Artificial (IA) eacute aproximar a linguagem natural da linguagem de maacutequina a fim de automatizar tarefas como a traduccedilatildeo de textos correccedilatildeo ortograacutefica extraccedilatildeo de informaccedilotildees a partir de dados da internet entre outras Atualmente eacute possiacutevel encontrar diversos aplicativos que executam tais tarefasos quais estatildeo pre-sentes no dia-a-dia de muitas pessoasporeacutem devido agrave comple-xidade da interpretaccedilatildeo da linguagem natural pelo computador esses aplicativos natildeo apresentam desempenho satisfatoacuterio em consequecircncia disso essa eacute uma aacuterea que necessita de constantes melhorias A simples busca de um termo (palavra ou expressatildeo qualquer) na internet por exemplo requer paciecircncia visto que quase sempre o resultado retornado possui outras informaccedilotildees aleacutem daquelas que usuaacuterio realmente necessita consequente-mente isso leva a um consumo de tempo na busca por infor-maccedilotildees relevantes (mineraccedilatildeo dos dados) O Processamento de Linguagem Natural (PLN) tambeacutem conhecido como Linguiacutestica Computacional busca justamente resolver essa lacuna que haacute na comunicaccedilatildeo entre homem e computador automatizando o pro-cesso de interpretaccedilatildeo de linguagem natural para linguagem de maacutequina proporcionando assim uma experiecircncia mais eficiente e agradaacutevel aos usuaacuterios

Se o internauta necessita de uma informaccedilatildeo em tem-po real por exemplo do tracircnsito aiacute o processo de busca pode ser ainda mais aacuterduo Em uma pesquisa no Googletrade pelo termo lsquoTransito em Goiacircniarsquo a notiacutecia mais recente retornada foi a de um dia anterior aoda pesquisa e ainda assim natildeo trazia infor-maccedilotildees relevantes da situaccedilatildeo do tracircnsito em Goiacircnia naquele instante Veja a seguir o termo mais recente que foi retornado em uma busca feita em 24062013 ldquoMotociclista eacute socorrido com fratura exposta apoacutes acidente em Goiacircniardquo1 Como alternativa ao Googletrade na tentativa de melhores resultados foi efetuada uma pesquisa no Twittertrade da Rede Me-tropolitana de Transporte Coletivo da Grande Goiacircnia (RMTC) que alimenta seu perfil nessa rede social com diversas informa-ccedilotildees dentre as quais informaccedilotildees sobre o tracircnsito na capital goiana Os cinco primeiros tweets da pesquisa realizada tambeacutem no dia 24062013 foram os seguintes

1 Informaccedilotildees sobre o tracircnsito da Regiatildeo Metropolitana em tempo real vocecirc encontra aqui Siga a RMTC no Twit-ter e fique bem informado )2 ederjcunha Sim Todas as linhas que trafegam pela re-giatildeo central de Goiacircnia seguem com o trajeto normal sem alteraccedilotildees3 Imediaccedilotildees do Terminal da Praccedila da Biacuteblia estatildeo livres fluxo vai sendo normalizado aos poucos Linhas voltam ao

1G1 Goiaacutes Tracircnsito Disponiacutevel em lthttpg1globocomgoiastransitonoticia201306motociclista-e-socorrido-com-fratura-exposta-apos-a-cidente-em-goianiahtmlgt Acesso em 24 jun 2013

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada13

JanDez 2015 Revista Tecnologia da Informaccedilatildeo Aplicada

trajeto normal4 DiasGuerreiro Linha 280 segue seu trajeto normal sem alteraccedilotildees ou interdiccedilotildees5 leo_ssousa Manifestantes seguem pela Av Anhanguera com destino agrave BR-153 impedindo o fluxo de veiacuteculos no local

Eacute possiacutevel perceber a partir da amostra acima que ain-da haacute necessidade de filtrar os dados retornados a fim de chegar agraves informaccedilotildees concretas sobre o tracircnsito que neste caso se en-contram nos tweets 3 e 5 respectivamente Como automatizar este processo de busca por informa-ccedilatildeo a partir de dados recebidos da internet e ainda tornar sua in-terpretaccedilatildeo mais faacutecil ao usuaacuterio atraveacutes de representaccedilotildees graacute-ficas (mapas de calor) eacute a proposta apresentada nesse trabalho Para tanto foi desenvolvido um aplicativo para dis-positivos moacuteveis que gera mapa de calor com informaccedilotildees de tracircnsito a partir da mineraccedilatildeo de dados (busca por informa-ccedilotildees relevantes) feita no perfil da RMTC no Twittertrade Na etapa de mineraccedilatildeo de dados foi usada a teacutecnica de Reconhecimento de Entidades Mencionadas (REM) tarefa da aacuterea da Extraccedilatildeo de Informaccedilatildeo que tem como objetivo a localizaccedilatildeo e classificaccedilatildeo de elementos (Entidade Mencionadas) como acontecimentos nome de pessoas organizaccedilotildees locais datas dentre outros pre-sentes em textos natildeo estruturados No desenvolvimento da apli-caccedilatildeo foram utilizadas tambeacutem as seguintes ferramentas Goo-gle AppEngine Twitter4J Google Maps API Google Geocoding API Jersey ndashRESTfulWeb Services e AndroidAPI

2 Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) campo da In-teligecircncia Artificial aborda conceitos necessaacuterios para o desen-volvimento de sistemas de geraccedilatildeo e interpretaccedilatildeo de linguagem natural que aproximem cada vez mais a linguagem humana da linguagem de maacutequina permitindo dessa forma que os humanos possam se comunicar com computadores vice-versa de forma mais natural e eficiente utilizando para isso sua linguagem nata Apesar dos avanccedilos no campo do PLN ainda haacute muitas implicaccedilotildees que expotildeem a necessidade de estudos e melhorias nessa aacutereaUm exemplo onde eacute visiacutevel essa necessidade eacuteem pro-gramas editores de texto que embora uacuteteis ainda natildeo apresen-tam um desempenho ideal quando usados para correccedilotildees orto-graacuteficas Outro exemplo satildeo os sistemas de traduccedilatildeo automaacutetica que apenas auxiliam na traduccedilatildeo das palavras mas que precisam da intervenccedilatildeo humana se o usuaacuterio quer um texto coerente e compreensiacutevel Recentemente dada a relevacircncia da aacuterea de PLN para a computaccedilatildeo foi criada a Comissatildeo Especial de Processamen-to de Linguagem Natural (CE-PLN) aprovada durante o XXVII Congresso da Sociedade Brasileira de Computaccedilatildeo realizado no Rio de Janeiro-RJ em 20072

21 Extraccedilatildeo de InformaccedilatildeoCom grande quantidade de dados produzidos a todo instante a Internet tornou-se um campo bastante interessante para aplica-ccedilatildeo de teacutecnicas de PLN

Surgida na deacutecada de 60 como uma proposta militar e restrita a poucos usuaacuterios hoje a Internet apresenta um cenaacuterio bastante diferente Com um vasto nuacutemero de usuaacuterios crescendo a cada dia segundo Instituto Brasileiro de Geografia e Estatiacutes-tica (IBGE)3 entre 2005 e 2011 o nuacutemero de internautas acima de 10 anos de idade aumentou 1438 no Brasil esse ambiente livre e colaborativo eacute uma oacutetima fonte de informaccedilotildees desde que o conteuacutedo produzido por seus usuaacuterios seja devidamente filtrado trazendo assim aquilo que eacute relevante

Outro levantamento feito pelo IBOPE4 divulgado em 2013 aponta 535 milhotildees de usuaacuterios ativos de Internet no Brasil dos quais 46 milhotildees ou seja 86 dos internautas ativos acessam algum tipo de rede social ou comunidade virtual (blogs micro-blogs e foacuteruns)

Dentre esses sites ainda segundo pesquisa IBOPE Face-booktrade e Twittertrade satildeo os que ganham mais atenccedilatildeo e tempo dos brasileiros que navegam na rede sendo que haacute uma grande produccedilatildeo de conteuacutedo nessas duas redes como mostrado em nuacute-meros5

- Facebooktrade

85962 - nuacutemero mensal de posts somente no Brasil (monitoradas 836 paacuteginas no Facebooktrade no Brasil o paiacutes mais ativo nesta rede) 1 bilhatildeo - nuacutemero mensal de usuaacuterios ativos no Facebooktrade em todo mundo (ateacute outubro de 2012)

- Twittertrade

175 milhotildees - meacutedia de tweets enviados por dia ao longo de 2012 200 milhotildees - satildeo os usuaacuterios mensais ativos no Twittertrade

Como eacute possiacutevel perceber haacute uma grande quantidade de dados produzidos na internet em especial nas redes sociais de onde o aplicativo desenvolvido nesse trabalho recolhe amostra de dados em busca de informaccedilotildees Essa etapa tambeacutem eacute conhe-cida como Extraccedilatildeo de Informaccedilatildeoum estaacutegio consequente agrave mineraccedilatildeo de dados que tem como propoacutesito segundo Riloff e Jones (1999) extrair informaccedilotildees especiacuteficas de texto em liacuten-gua natural Sendo assim partindo de uma amostra de dados eacute possiacutevel chegar agrave informaccedilatildeo A figura 1 exemplifica onde estaacute posicionada a informaccedilatildeo na piracircmide do conhecimento

3 Reconhecimento de Entidades Mencionadas (REM)

Subaeacuterea da Extraccedilatildeo de Informaccedilatildeo o Reconhecimento de Entidades Mencionadas tem como objetivo a localizaccedilatildeo e

2Sociedade Brasileira de Computaccedilatildeo Processamento de Linguagem Natural Disponiacutevel emlthttpsbcorgbrindexphpoption=com_conten-tampview=categoryamplayout=blogampid=50ampItemid=71gt Acesso em 27 set 20133Portal Brasil Nuacutemero de usuaacuterios de internet e de pessoas com celular cresceu mais de 100 no Brasil Disponiacutevel emlthttpwwwbrasilgovbrnoticiasarquivos20130516numero-de-usuarios-de-internet-e-de-pessoas-com-celular-cresceu-mais-de-100-no-brasilgt Acesso em 27 set 20134IBOPE Nuacutemero de usuaacuterios de redes sociais ultrapassa 46 milhotildees de brasileiros Disponiacutevel emlthttpwwwibopecombrpt-brnoticiaspagi-nasnumero-de-usuarios-de-redes-sociais-ultrapassa-46-milhoes-de-brasileirosaspxgt Acesso em 24 jun 20135Royal Pingdom Internet 2012 in numbers Disponiacutevel emlthttproyalpingdomcom20130116internet-2012-in-numbersgt Acesso em 24 jun 2013

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 9: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201212

Artigo 1

Revista Tecnologia da Informaccedilatildeo Aplicada JanDez 2015

Traffic Monitor Mobile ndash Mineraccedilatildeo de Dados em Redes Sociais Utilizando Algoritmos de Reconhecimento de Entidades

Mencionadas Aplicados a Mapas de Calor

ADEILTON ALVES SANTOSsup1CLEITON DE SAacute SILVAsup2

RICARDO SAUL SANTOS LOPESsup3WEYSLLER MATUZINHOS DE MOURA4

1 2 e 3 Faculdade de Ciecircncia da Computaccedilatildeo ndash Instituto Unificado de Ensino Superior Objetivo (IUESO)Av T-02 nordm 1993 - Setor Bueno ndash Goiacircnia ndash GO ndash Brasil

4 Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

cleitonssricardosauladeiltonalvessantosweysllergmailcom weysllersenaisistemafiegorgbr

Abstract Find relevant information among the large amount of data produced on the Internet is a task with a high level of difficulty Every day people produce more and more content especially on social networks where it concentrates a large part of the Internet users With the purpose of facilitating access to information is presented in this work the technique of Named Entity Recognition (NER) which was used in the development of the application Traffic Monitor which seeks real-time tra-ffic information on the social network Twittertrade In addition the developed application displays the mined information in graphical form (heat map) providing the user with an easier and faster interpretationKey-words Mobile Traffic Monitor and Heat Map

Resumo Encontrar informaccedilotildees relevantes em meio agrave grande quantidade de dados gerados na Internet constitui uma tarefa com alto grau de dificuldade A cada dia as pessoas produzem mais e mais conteuacutedo em especial nas redes sociais onde se concentra uma grande parte dos internautas De forma a facilitar o acesso agrave informaccedilatildeo eacute apresentada nesse trabalho a teacutec-nica de Reconhecimento de Entidades Mencionadas a qual foi utilizada no desenvolvimento do aplicativo Traffic Monitor que busca em tempo real informaccedilotildees de tracircnsito na rede social Twittertrade Aleacutem disso o aplicativo desenvolvido exibe as informaccedilotildees mineradas em forma graacutefica (mapa de calor) proporcionando ao usuaacuterio uma interpretaccedilatildeo mais faacutecil e raacutepidaPalavras-chaves Moacutevel Monitoramento de Traacutefego e Mapa de Calor

1 Introduccedilatildeo

Um dos grandes desafios da computaccedilatildeo na aacuterea da Inteligecircn-cia Artificial (IA) eacute aproximar a linguagem natural da linguagem de maacutequina a fim de automatizar tarefas como a traduccedilatildeo de textos correccedilatildeo ortograacutefica extraccedilatildeo de informaccedilotildees a partir de dados da internet entre outras Atualmente eacute possiacutevel encontrar diversos aplicativos que executam tais tarefasos quais estatildeo pre-sentes no dia-a-dia de muitas pessoasporeacutem devido agrave comple-xidade da interpretaccedilatildeo da linguagem natural pelo computador esses aplicativos natildeo apresentam desempenho satisfatoacuterio em consequecircncia disso essa eacute uma aacuterea que necessita de constantes melhorias A simples busca de um termo (palavra ou expressatildeo qualquer) na internet por exemplo requer paciecircncia visto que quase sempre o resultado retornado possui outras informaccedilotildees aleacutem daquelas que usuaacuterio realmente necessita consequente-mente isso leva a um consumo de tempo na busca por infor-maccedilotildees relevantes (mineraccedilatildeo dos dados) O Processamento de Linguagem Natural (PLN) tambeacutem conhecido como Linguiacutestica Computacional busca justamente resolver essa lacuna que haacute na comunicaccedilatildeo entre homem e computador automatizando o pro-cesso de interpretaccedilatildeo de linguagem natural para linguagem de maacutequina proporcionando assim uma experiecircncia mais eficiente e agradaacutevel aos usuaacuterios

Se o internauta necessita de uma informaccedilatildeo em tem-po real por exemplo do tracircnsito aiacute o processo de busca pode ser ainda mais aacuterduo Em uma pesquisa no Googletrade pelo termo lsquoTransito em Goiacircniarsquo a notiacutecia mais recente retornada foi a de um dia anterior aoda pesquisa e ainda assim natildeo trazia infor-maccedilotildees relevantes da situaccedilatildeo do tracircnsito em Goiacircnia naquele instante Veja a seguir o termo mais recente que foi retornado em uma busca feita em 24062013 ldquoMotociclista eacute socorrido com fratura exposta apoacutes acidente em Goiacircniardquo1 Como alternativa ao Googletrade na tentativa de melhores resultados foi efetuada uma pesquisa no Twittertrade da Rede Me-tropolitana de Transporte Coletivo da Grande Goiacircnia (RMTC) que alimenta seu perfil nessa rede social com diversas informa-ccedilotildees dentre as quais informaccedilotildees sobre o tracircnsito na capital goiana Os cinco primeiros tweets da pesquisa realizada tambeacutem no dia 24062013 foram os seguintes

1 Informaccedilotildees sobre o tracircnsito da Regiatildeo Metropolitana em tempo real vocecirc encontra aqui Siga a RMTC no Twit-ter e fique bem informado )2 ederjcunha Sim Todas as linhas que trafegam pela re-giatildeo central de Goiacircnia seguem com o trajeto normal sem alteraccedilotildees3 Imediaccedilotildees do Terminal da Praccedila da Biacuteblia estatildeo livres fluxo vai sendo normalizado aos poucos Linhas voltam ao

1G1 Goiaacutes Tracircnsito Disponiacutevel em lthttpg1globocomgoiastransitonoticia201306motociclista-e-socorrido-com-fratura-exposta-apos-a-cidente-em-goianiahtmlgt Acesso em 24 jun 2013

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada13

JanDez 2015 Revista Tecnologia da Informaccedilatildeo Aplicada

trajeto normal4 DiasGuerreiro Linha 280 segue seu trajeto normal sem alteraccedilotildees ou interdiccedilotildees5 leo_ssousa Manifestantes seguem pela Av Anhanguera com destino agrave BR-153 impedindo o fluxo de veiacuteculos no local

Eacute possiacutevel perceber a partir da amostra acima que ain-da haacute necessidade de filtrar os dados retornados a fim de chegar agraves informaccedilotildees concretas sobre o tracircnsito que neste caso se en-contram nos tweets 3 e 5 respectivamente Como automatizar este processo de busca por informa-ccedilatildeo a partir de dados recebidos da internet e ainda tornar sua in-terpretaccedilatildeo mais faacutecil ao usuaacuterio atraveacutes de representaccedilotildees graacute-ficas (mapas de calor) eacute a proposta apresentada nesse trabalho Para tanto foi desenvolvido um aplicativo para dis-positivos moacuteveis que gera mapa de calor com informaccedilotildees de tracircnsito a partir da mineraccedilatildeo de dados (busca por informa-ccedilotildees relevantes) feita no perfil da RMTC no Twittertrade Na etapa de mineraccedilatildeo de dados foi usada a teacutecnica de Reconhecimento de Entidades Mencionadas (REM) tarefa da aacuterea da Extraccedilatildeo de Informaccedilatildeo que tem como objetivo a localizaccedilatildeo e classificaccedilatildeo de elementos (Entidade Mencionadas) como acontecimentos nome de pessoas organizaccedilotildees locais datas dentre outros pre-sentes em textos natildeo estruturados No desenvolvimento da apli-caccedilatildeo foram utilizadas tambeacutem as seguintes ferramentas Goo-gle AppEngine Twitter4J Google Maps API Google Geocoding API Jersey ndashRESTfulWeb Services e AndroidAPI

2 Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) campo da In-teligecircncia Artificial aborda conceitos necessaacuterios para o desen-volvimento de sistemas de geraccedilatildeo e interpretaccedilatildeo de linguagem natural que aproximem cada vez mais a linguagem humana da linguagem de maacutequina permitindo dessa forma que os humanos possam se comunicar com computadores vice-versa de forma mais natural e eficiente utilizando para isso sua linguagem nata Apesar dos avanccedilos no campo do PLN ainda haacute muitas implicaccedilotildees que expotildeem a necessidade de estudos e melhorias nessa aacutereaUm exemplo onde eacute visiacutevel essa necessidade eacuteem pro-gramas editores de texto que embora uacuteteis ainda natildeo apresen-tam um desempenho ideal quando usados para correccedilotildees orto-graacuteficas Outro exemplo satildeo os sistemas de traduccedilatildeo automaacutetica que apenas auxiliam na traduccedilatildeo das palavras mas que precisam da intervenccedilatildeo humana se o usuaacuterio quer um texto coerente e compreensiacutevel Recentemente dada a relevacircncia da aacuterea de PLN para a computaccedilatildeo foi criada a Comissatildeo Especial de Processamen-to de Linguagem Natural (CE-PLN) aprovada durante o XXVII Congresso da Sociedade Brasileira de Computaccedilatildeo realizado no Rio de Janeiro-RJ em 20072

21 Extraccedilatildeo de InformaccedilatildeoCom grande quantidade de dados produzidos a todo instante a Internet tornou-se um campo bastante interessante para aplica-ccedilatildeo de teacutecnicas de PLN

Surgida na deacutecada de 60 como uma proposta militar e restrita a poucos usuaacuterios hoje a Internet apresenta um cenaacuterio bastante diferente Com um vasto nuacutemero de usuaacuterios crescendo a cada dia segundo Instituto Brasileiro de Geografia e Estatiacutes-tica (IBGE)3 entre 2005 e 2011 o nuacutemero de internautas acima de 10 anos de idade aumentou 1438 no Brasil esse ambiente livre e colaborativo eacute uma oacutetima fonte de informaccedilotildees desde que o conteuacutedo produzido por seus usuaacuterios seja devidamente filtrado trazendo assim aquilo que eacute relevante

Outro levantamento feito pelo IBOPE4 divulgado em 2013 aponta 535 milhotildees de usuaacuterios ativos de Internet no Brasil dos quais 46 milhotildees ou seja 86 dos internautas ativos acessam algum tipo de rede social ou comunidade virtual (blogs micro-blogs e foacuteruns)

Dentre esses sites ainda segundo pesquisa IBOPE Face-booktrade e Twittertrade satildeo os que ganham mais atenccedilatildeo e tempo dos brasileiros que navegam na rede sendo que haacute uma grande produccedilatildeo de conteuacutedo nessas duas redes como mostrado em nuacute-meros5

- Facebooktrade

85962 - nuacutemero mensal de posts somente no Brasil (monitoradas 836 paacuteginas no Facebooktrade no Brasil o paiacutes mais ativo nesta rede) 1 bilhatildeo - nuacutemero mensal de usuaacuterios ativos no Facebooktrade em todo mundo (ateacute outubro de 2012)

- Twittertrade

175 milhotildees - meacutedia de tweets enviados por dia ao longo de 2012 200 milhotildees - satildeo os usuaacuterios mensais ativos no Twittertrade

Como eacute possiacutevel perceber haacute uma grande quantidade de dados produzidos na internet em especial nas redes sociais de onde o aplicativo desenvolvido nesse trabalho recolhe amostra de dados em busca de informaccedilotildees Essa etapa tambeacutem eacute conhe-cida como Extraccedilatildeo de Informaccedilatildeoum estaacutegio consequente agrave mineraccedilatildeo de dados que tem como propoacutesito segundo Riloff e Jones (1999) extrair informaccedilotildees especiacuteficas de texto em liacuten-gua natural Sendo assim partindo de uma amostra de dados eacute possiacutevel chegar agrave informaccedilatildeo A figura 1 exemplifica onde estaacute posicionada a informaccedilatildeo na piracircmide do conhecimento

3 Reconhecimento de Entidades Mencionadas (REM)

Subaeacuterea da Extraccedilatildeo de Informaccedilatildeo o Reconhecimento de Entidades Mencionadas tem como objetivo a localizaccedilatildeo e

2Sociedade Brasileira de Computaccedilatildeo Processamento de Linguagem Natural Disponiacutevel emlthttpsbcorgbrindexphpoption=com_conten-tampview=categoryamplayout=blogampid=50ampItemid=71gt Acesso em 27 set 20133Portal Brasil Nuacutemero de usuaacuterios de internet e de pessoas com celular cresceu mais de 100 no Brasil Disponiacutevel emlthttpwwwbrasilgovbrnoticiasarquivos20130516numero-de-usuarios-de-internet-e-de-pessoas-com-celular-cresceu-mais-de-100-no-brasilgt Acesso em 27 set 20134IBOPE Nuacutemero de usuaacuterios de redes sociais ultrapassa 46 milhotildees de brasileiros Disponiacutevel emlthttpwwwibopecombrpt-brnoticiaspagi-nasnumero-de-usuarios-de-redes-sociais-ultrapassa-46-milhoes-de-brasileirosaspxgt Acesso em 24 jun 20135Royal Pingdom Internet 2012 in numbers Disponiacutevel emlthttproyalpingdomcom20130116internet-2012-in-numbersgt Acesso em 24 jun 2013

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 10: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada13

JanDez 2015 Revista Tecnologia da Informaccedilatildeo Aplicada

trajeto normal4 DiasGuerreiro Linha 280 segue seu trajeto normal sem alteraccedilotildees ou interdiccedilotildees5 leo_ssousa Manifestantes seguem pela Av Anhanguera com destino agrave BR-153 impedindo o fluxo de veiacuteculos no local

Eacute possiacutevel perceber a partir da amostra acima que ain-da haacute necessidade de filtrar os dados retornados a fim de chegar agraves informaccedilotildees concretas sobre o tracircnsito que neste caso se en-contram nos tweets 3 e 5 respectivamente Como automatizar este processo de busca por informa-ccedilatildeo a partir de dados recebidos da internet e ainda tornar sua in-terpretaccedilatildeo mais faacutecil ao usuaacuterio atraveacutes de representaccedilotildees graacute-ficas (mapas de calor) eacute a proposta apresentada nesse trabalho Para tanto foi desenvolvido um aplicativo para dis-positivos moacuteveis que gera mapa de calor com informaccedilotildees de tracircnsito a partir da mineraccedilatildeo de dados (busca por informa-ccedilotildees relevantes) feita no perfil da RMTC no Twittertrade Na etapa de mineraccedilatildeo de dados foi usada a teacutecnica de Reconhecimento de Entidades Mencionadas (REM) tarefa da aacuterea da Extraccedilatildeo de Informaccedilatildeo que tem como objetivo a localizaccedilatildeo e classificaccedilatildeo de elementos (Entidade Mencionadas) como acontecimentos nome de pessoas organizaccedilotildees locais datas dentre outros pre-sentes em textos natildeo estruturados No desenvolvimento da apli-caccedilatildeo foram utilizadas tambeacutem as seguintes ferramentas Goo-gle AppEngine Twitter4J Google Maps API Google Geocoding API Jersey ndashRESTfulWeb Services e AndroidAPI

2 Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) campo da In-teligecircncia Artificial aborda conceitos necessaacuterios para o desen-volvimento de sistemas de geraccedilatildeo e interpretaccedilatildeo de linguagem natural que aproximem cada vez mais a linguagem humana da linguagem de maacutequina permitindo dessa forma que os humanos possam se comunicar com computadores vice-versa de forma mais natural e eficiente utilizando para isso sua linguagem nata Apesar dos avanccedilos no campo do PLN ainda haacute muitas implicaccedilotildees que expotildeem a necessidade de estudos e melhorias nessa aacutereaUm exemplo onde eacute visiacutevel essa necessidade eacuteem pro-gramas editores de texto que embora uacuteteis ainda natildeo apresen-tam um desempenho ideal quando usados para correccedilotildees orto-graacuteficas Outro exemplo satildeo os sistemas de traduccedilatildeo automaacutetica que apenas auxiliam na traduccedilatildeo das palavras mas que precisam da intervenccedilatildeo humana se o usuaacuterio quer um texto coerente e compreensiacutevel Recentemente dada a relevacircncia da aacuterea de PLN para a computaccedilatildeo foi criada a Comissatildeo Especial de Processamen-to de Linguagem Natural (CE-PLN) aprovada durante o XXVII Congresso da Sociedade Brasileira de Computaccedilatildeo realizado no Rio de Janeiro-RJ em 20072

21 Extraccedilatildeo de InformaccedilatildeoCom grande quantidade de dados produzidos a todo instante a Internet tornou-se um campo bastante interessante para aplica-ccedilatildeo de teacutecnicas de PLN

Surgida na deacutecada de 60 como uma proposta militar e restrita a poucos usuaacuterios hoje a Internet apresenta um cenaacuterio bastante diferente Com um vasto nuacutemero de usuaacuterios crescendo a cada dia segundo Instituto Brasileiro de Geografia e Estatiacutes-tica (IBGE)3 entre 2005 e 2011 o nuacutemero de internautas acima de 10 anos de idade aumentou 1438 no Brasil esse ambiente livre e colaborativo eacute uma oacutetima fonte de informaccedilotildees desde que o conteuacutedo produzido por seus usuaacuterios seja devidamente filtrado trazendo assim aquilo que eacute relevante

Outro levantamento feito pelo IBOPE4 divulgado em 2013 aponta 535 milhotildees de usuaacuterios ativos de Internet no Brasil dos quais 46 milhotildees ou seja 86 dos internautas ativos acessam algum tipo de rede social ou comunidade virtual (blogs micro-blogs e foacuteruns)

Dentre esses sites ainda segundo pesquisa IBOPE Face-booktrade e Twittertrade satildeo os que ganham mais atenccedilatildeo e tempo dos brasileiros que navegam na rede sendo que haacute uma grande produccedilatildeo de conteuacutedo nessas duas redes como mostrado em nuacute-meros5

- Facebooktrade

85962 - nuacutemero mensal de posts somente no Brasil (monitoradas 836 paacuteginas no Facebooktrade no Brasil o paiacutes mais ativo nesta rede) 1 bilhatildeo - nuacutemero mensal de usuaacuterios ativos no Facebooktrade em todo mundo (ateacute outubro de 2012)

- Twittertrade

175 milhotildees - meacutedia de tweets enviados por dia ao longo de 2012 200 milhotildees - satildeo os usuaacuterios mensais ativos no Twittertrade

Como eacute possiacutevel perceber haacute uma grande quantidade de dados produzidos na internet em especial nas redes sociais de onde o aplicativo desenvolvido nesse trabalho recolhe amostra de dados em busca de informaccedilotildees Essa etapa tambeacutem eacute conhe-cida como Extraccedilatildeo de Informaccedilatildeoum estaacutegio consequente agrave mineraccedilatildeo de dados que tem como propoacutesito segundo Riloff e Jones (1999) extrair informaccedilotildees especiacuteficas de texto em liacuten-gua natural Sendo assim partindo de uma amostra de dados eacute possiacutevel chegar agrave informaccedilatildeo A figura 1 exemplifica onde estaacute posicionada a informaccedilatildeo na piracircmide do conhecimento

3 Reconhecimento de Entidades Mencionadas (REM)

Subaeacuterea da Extraccedilatildeo de Informaccedilatildeo o Reconhecimento de Entidades Mencionadas tem como objetivo a localizaccedilatildeo e

2Sociedade Brasileira de Computaccedilatildeo Processamento de Linguagem Natural Disponiacutevel emlthttpsbcorgbrindexphpoption=com_conten-tampview=categoryamplayout=blogampid=50ampItemid=71gt Acesso em 27 set 20133Portal Brasil Nuacutemero de usuaacuterios de internet e de pessoas com celular cresceu mais de 100 no Brasil Disponiacutevel emlthttpwwwbrasilgovbrnoticiasarquivos20130516numero-de-usuarios-de-internet-e-de-pessoas-com-celular-cresceu-mais-de-100-no-brasilgt Acesso em 27 set 20134IBOPE Nuacutemero de usuaacuterios de redes sociais ultrapassa 46 milhotildees de brasileiros Disponiacutevel emlthttpwwwibopecombrpt-brnoticiaspagi-nasnumero-de-usuarios-de-redes-sociais-ultrapassa-46-milhoes-de-brasileirosaspxgt Acesso em 24 jun 20135Royal Pingdom Internet 2012 in numbers Disponiacutevel emlthttproyalpingdomcom20130116internet-2012-in-numbersgt Acesso em 24 jun 2013

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 11: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201214

Artigo 1

classificaccedilatildeo de elementos (Entidade Mencionadas) como acon-tecimentos nome de pessoas organizaccedilotildees locais datas den-tre outros presentes em textos natildeo estruturados (CARVALHO 2012 p 1) Para tanto utiliza-se de linguiacutestica computacional na manipulaccedilatildeo desses textos

Em funccedilatildeo de sua relevacircncia o REM despertou interesse cientiacutefico de diversas universidades e dadassuas caracteriacutesti-cas no que tange a particularidades linguiacutesticas principalmente quando aplicado ao tratamento de textos em linguagem natural despertou tambeacuteminteresse regionalizadoem diversas partes do mundo possibilitando assim a criaccedilatildeo de grupos de estudos em vaacuterios paiacuteses com liacutengua em comum como no caso de paiacuteses deliacutengua portuguesa

Outros grupos tecircm se voltado para um estudo mais amplo aplicando o REM a vaacuterias liacutenguas como eacute o caso do Stanford Natural Language Processing Group6 e o projeto VISL7 grupo criado em 1996 pela Universidade do Sul da Dinamarca

Nesse contexto haacute que se destacar tambeacutem o projeto Lin-guateca8 nascido em 1998 em Portugal com o apoio do governo e universidades contando inclusive com participaccedilatildeo de univer-sidades brasileirasesse projeto tem com objetivo tratar especifi-camente o processamento computacional da liacutengua portuguesa disponibilizando todo o conteuacutedo produzido de forma livre agrave sociedade

Atualmente eacute possiacutevel encontrar aplicaccedilotildees que utilizam REM em aacutereas como Computaccedilatildeo Forense PLN Biologia Mo-lecular Bioinformaacutetica dentre outras aacutereas

Inserida no campo da PLN a aplicaccedilatildeo fruto desse trabalho utiliza algoritmos de REM com a finalidade de encontrar ele-mentos relevantes agrave extraccedilatildeo de informaccedilotildees de tracircnsito em tex-tos natildeo estruturados publicados na internetA partir dessa fonte de dados e visto o grande volume de conteuacutedo que inicialmente eacute recebido pela aplicaccedilatildeo o algoritmo realiza uma busca por ele-mentos que caracterizem informaccedilotildees de tracircnsito no instante da pesquisa solicitada pelo usuaacuterioEssa busca tenta encontrar no conteuacutedo textual especificamente citaccedilotildees de acontecimentos locais e datas Exemplo

Figura 1 Piracircmide do Conhecimento(DAVENPORT PRUSAK 2003 ndash Adaptaccedilatildeo)

6The Stanford Natural Language Processing GroupStanford Named Entity Recognizer (NER) Disponiacutevel emlthttpnlpstanfordedusoftwareCRF-NERshtmlgt Acesso em 24 jun 20137SyddanskUniversitetVisual InteractiveSyntax Learning Disponiacutevel emlthttpbetavislsdudkgt Acesso em 24 jun 2013

8 Linguateca Disponiacutevel emlthttpwwwlinguatecaptgt Acesso em 24 jun 2013

ldquoColisatildeo entre dois carros deixa tracircnsito lento na Av Pe-rimetralrdquo

Nafrase acimatemos presentes entidades essenciais que inferem informaccedilotildees de tracircnsito relevantes Acontecimento (colisatildeo tracircnsito lento) Local(Av Perimetral) e Data que no aplicativo Traffic Monitor eacute extraiacuteda da data de publicaccedilatildeo da informaccedilatildeo no Twittertrade

Em contraposiccedilatildeo considere exemplo abaixoldquoRodovias em funccedilatildeo das obras o tracircnsito nessas regiotildees

sofre desviosrdquoNessa frase eacute possiacutevel perceber o falta de umaentidade es-

sencial Local Nesse caso a frase seraacute descartada por conter in-formaccedilotildees incertas para o usuaacuterio

Aleacutem das entidades essenciais o aplicativo busca ainda as entidades auxiliares Nome de Pessoa e Organizaccedilatildeo

Mais detalhes destas Entidades Mencionadas seratildeo aborda-dos nos toacutepicos seguintes

31 Identificaccedilatildeo de LocaisUm local eacute determinado de acordo com definiccedilotildees preacute-estabe-lecidas em cada sistema de Relacionamento de Entidades Men-cionadas Tais diretivas podem ser definidas por teacutecnicas de Processamento de Linguagem Natural fazendo uso de alguma ferramenta externa de etiquetaccedilatildeo das entidades A identificaccedilatildeo das entidades segue uma abordagem manual orientada ao idio-ma local e baseia-seem regras contextuaisou entatildeo nas estruturas das entidades Utiliza tambeacutem um dicionaacuterio de dados jaacute preacute-es-tabelecidos com base em informaccedilotildees recolhidas de qualquer fonte de informaccedilatildeo (ROMAtildeO 2007)

A entidade local eacute um lugar qualquer definido por alguns paracircmetros como por exemplo cidade paiacutes continente massas de aacutegua e pontos cardeais em geral satildeo utilizada tabelas com uma lista de entradas lexicais

Tambeacutem eacute possiacutevel identificar uma entidade local sem que esta esteja em uma lista preacutevia apenas fazendo uso de sua estru-tura Por exemplo tendo a informaccedilatildeo de que ldquoAmeacutericardquo eacute um local podemos concluir que Ameacuterica do Sul e Ameacuterica do Norte tambeacutem satildeo locais

32 Identificaccedilatildeo de OrganizaccedilotildeesA definiccedilatildeo para classificaccedilatildeo da entidade organizaccedilatildeo usa dos mesmos paracircmetros das entidades locais ou seja existem tabe-las lexicais preacute-classificadas com algumas entidades

No Relacionamento de Entidades Mencionadas uma orga-nizaccedilatildeo pode ser um paiacutes territoacuterio empresas puacuteblicas empre-sas privadas ONGrsquos organizaccedilotildees sem fins lucrativos depar-tamentos e sucursais enfim essas satildeo geralmente as principais citaccedilotildees feitas quando eacute realizado o processamento e classifica-ccedilatildeo da entidade organizaccedilatildeo

O aplicativo Traffic Monitor natildeo se propotildee a classificar organizaccedilotildees mas se utiliza de algumas menccedilotildees feitas a de-terminadas organizaccedilotildees a fim de que possa identificar o local e divulgar o acontecimento Por exemplo um usuaacuterio posta no Twittertrade ldquoO tracircnsito estaacute lento na 153 proacuteximo ao Paccedilo Mu-nicipalrdquo - soacute com o termo ldquo153rdquo fica impossiacutevel definir um local para essa lentidatildeo no tracircnsito Quem mora na cidade de Goiacircnia

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 12: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada15

sabe que ldquo153rdquo eacute uma Rodovia Federal poreacutem como definir o local aproximado se essa rodovia tem uma longa extensatildeo e corta boa parte do Brasil tornando a quarta maior Rodovia do PaiacutesEacute possiacutevel usar a entidade mencionada ldquoPaccedilo Municipalrdquo para definir o local

Poreacutem eacute necessaacuterio fazer aqui uma ressalva dentro des-se contexto existem sistemas de Relacionamento de Entidades Mencionadas que mineram dados puramente focados em usu-aacuterios que citam organizaccedilotildees em seus textos a fim de que seja definida uma estrateacutegia para cada tipo de organizaccedilatildeo

Uma aplicaccedilatildeo quepode ser citada no contexto de organi-zaccedilotildees eacute o algoritmo de Inteligecircncia Competitiva usado para identificar rastros deixados por concorrentes a fim de que tais informaccedilotildees possam agregar ao planejamento taacutetico da empresa

33 Identificaccedilatildeo de AcontecimentosAcontecimentos em entidade mencionada satildeo ocorrecircncias

que podem ser acontecimento histoacuterico e natildeo repetiacutevel clas-sificado de Efemeridade acontecimento que engloba vaacuterios eventos e duram vaacuterios dias classificado como Organizado ou ainda acontecimentos que natildeo se enquadram nesses citados anteriormente e que podem ser pontuais ou natildeosendo classifi-cados como um EventoUma conferecircncia uma palestra ou ateacute uma manifestaccedilatildeo puacuteblica satildeo exemplos de acontecimento do tipo Evento

Ainda existe um tipo de acontecimento do qual o Rela-cionamento de Entidade Mencionada natildeo o classificade nenhum tipo satildeo os acontecimentos que ocorrem de formas esporaacutedicas sem previsatildeo e eacute esse tipo de acontecimento que satildeo tratados pelo Traffic Monitor Um congestionamento ou um acidente de tracircnsito natildeo pode ser pontual ou organizado contudo pode ser identificado eminimizadoseusefeitosatraveacutes da divulgaccedilatildeodo mesmo

Para a tarefa de identificaccedilatildeo desse tipo de acontecimento eacute feita a anaacuteliseda estrutura da entidade comparando-a com uma tabela de entradas lexicais observandoa estrutura contextual pois nem sempre a palavra ldquoacidenterdquo remete de fato ao acon-tecimentoNesse caso observam-se tambeacutem outros paracircmetros como por exemplo a entidade local

A divulgaccedilatildeo dos acontecimentos tem o propoacutesito de infor-mar alertar e decidir O sistema tem que ser capaz de buscar e tratar textos natildeo estruturados da Web sem qualquer conotaccedilatildeo semacircntica da entidade acontecimento o que de fato se torna um desafio pois o resultado precisa ser gerado o mais raacutepido pos-siacutevel e de forma confiaacutevel A aplicaccedilatildeo procura mostrar acon-tecimentos relacionados com o tracircnsito da cidade escolhendo como paracircmetros somente dados colhidos aleatoriamente do Twittertrade depois tratados e extraiacutedas as conotaccedilotildees semacircnticas Somente entatildeo seraacute definido se isso seraacute divulgado ou natildeo pois eacute necessaacuteria a existecircncia de relevacircncia no trato da divulgaccedilatildeo visto que a divulgaccedilatildeo do acontecimento remete a uma tomada de decisatildeo posterior

34 TokenizaccedilatildeoTokenizaccedilatildeo eacute uma sequecircncia de caracteres (ldquo|rdquo) que tem a fun-ccedilatildeo de dividir o texto em partes menores cada parte eacute chamada de tokensonde partes natildeo relevantes satildeo descartadas (CONCEI-CcedilAtildeO 2013)

Na mineraccedilatildeo de texto um token representa uma palavra um nuacutemero ou um sinal de pontuaccedilatildeo extraiacutedo de qualquer fonte

de informaccedilatildeo Um token natildeo tem qualquer conotaccedilatildeo semacircnti-ca apenas a funccedilatildeo de marcar as partes relevantes do texto para que seja feita a extraccedilatildeo da informaccedilatildeo

Durante o processo de tokenizaccedilatildeo eacute fundamental um tratamento especial aos sinais de pontuaccedilatildeo para evitar possiacute-veis ambiguidades nas segmentaccedilotildeesPor exemploo caractere de ponto final () pode ter vaacuterios significados dentro de uma sen-tenccedila pois pode ser uma marcaccedilatildeo de numerais um caractere de e-mail ou ainda um finalizador de sentenccedila (PADILHA LA-CERDA 2012)

35 Mapas de CalorMapas de calor satildeo cores de intensidades variadas definidas por informaccedilotildees ou variaacuteveis de repositoacuterios de dados9 Tais infor-maccedilotildees assumem formas graacuteficas de cores marcando com maior intensidade aquilo que eacute relevante No Traffic Monitor o mapa de calor eacute a demonstraccedilatildeo de duas variaacuteveis ora mencionadas Local e Acontecimentos Vale ressaltar que sem essas duas vari-aacuteveis natildeo eacute possiacutevel formar mapas de calor no Traffic Monitor

Os melhores exemplos que temos sobre mapas de calor satildeo os serviccedilos de legendas de mapas e serviccedilos de divulgaccedilotildees me-teoroloacutegicas Outro exemplo de uso eacute no futebol onde na Copa das Confederaccedilotildees no Brasila tecnologia entrou de vez exibindo o mapa de calor de cada jogador e a intensidade da forccedila ou per-curso que cada atleta fez

O mapa de calor eacute a informaccedilatildeo jaacute traduzida para o usuaacuterio final Nele seraacute possiacutevel identificar os pontos criacuteticos do tracircnsito da cidade

36 Aprendizado de MaacutequinaO aprendizado de maacutequina eacute uma subaacuterea da Inteligecircncia Arti-ficial que tem como objetivo a construccedilatildeo de teacutecnicas de com-putaccedilatildeo a fim de que os sistemas sejam capazes de adquirir co-nhecimentos automaacuteticos com os exemplos A aplicaccedilatildeo dessas teacutecnicas soacute eacute possiacutevel porque os dados natildeo aleatoacuterios em geral possuem padrotildees pelos quais permitem que a maacutequina extraia generalizaccedilotildees Com esses dados eacute possiacutevel adquirir aspectos importantes sobre a massa de dados na qual o modelo foi treina-do (CARVALHO 2012)

361 CorpusO Corpus eacute uma tabela de dados ou dicionaacuterio construiacutedo pelo aprendizado de maacutequina Assume o conceito de ldquoFloresta Sintaacute-ticardquo (FREITAS et al 2008) constituiacutedo de sentenccedilas e tokens O Corpus eacute um termo da linguiacutestica para definir anotaccedilotildees sintaacute-ticas Essas anotaccedilotildees preveem anaacutelises morfoloacutegicas e sintaacuteti-cas completas para cada sentenccedila

Nesse trabalho foi implementada uma tabela de ocorrecircncias que trata da construccedilatildeo de um dicionaacuterio de dados pelo aprendi-zado de maacutequina

4 Aplicaccedilatildeo

Na aplicaccedilatildeo desenvolvida nesse trabalho foram seguidas as se-guintesetapaspara a extraccedilatildeo de informaccedilatildeo

41 Obtenccedilatildeo de TweetsPara efeito de testes e apoacutes uma anaacutelise de fluxo de publicaccedilatildeo

9Quantum GIS 18 Documentation Complemento de Mapa de Calor Disponiacutevel em lthttpdocsqgisorg18htmlpt_BRdocsuser_manualpluginsplugins_heatmaphtmlgt Acesso em 13 jun 2013

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 13: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201216

Artigo 1

na rede social eacute feita a obtenccedilatildeo dos uacuteltimos 200tweets do perfil da RMTC no Twittertrade(rmtcgoiania) visto ser esse o perfil mais ativo na produccedilatildeo informaccedilotildees de tracircnsito relevantes Es-ses tweetssatildeo entatildeo armazenados em uma lista encadeada na memoacuteria para posterior tratamento de mineraccedilatildeo e REM

Para comunicaccedilatildeo com o Twittertrade e obtenccedilatildeo desses da-dos foi utilizado o Twitter4J uma API natildeo oficial que provecirc de forma faacutecil a integraccedilatildeo da linguagem de programaccedilatildeo Java com os recursos oferecidos da rede social Twittertrade Para fazer

Figura 2 Web Service(Autoria Proacutepria)

essa integraccedilatildeo eacute necessaacuteria a obtenccedilatildeo de uma chave de acesso atraveacutes do protocolo de autenticaccedilatildeo OAuth o que significa que qualquer requisiccedilatildeo agrave API pode ser feita de forma transparente sem a necessidade de autenticaccedilatildeo usuaacuteriosenha10

42 Mineraccedilatildeo de dados e REMPara o Reconhecimento de Entidades Mencionadas (REM) faz-se necessaacuteria a aplicaccedilatildeo de teacutecnicas de Mineraccedilatildeo de Dados as quais vatildeo auxiliar em todo o processo de extraccedilatildeo e classificaccedilatildeo das entidades mencionadas

Nesse processo foi efetuada uma anaacutelise de comportamento das postagens dos usuaacuterios na rede social onde foi verificada a sua forma de escrita e com base nessas informaccedilotildees foi criado na aplicaccedilatildeoum dicionaacuterio contendo palavras em suas vaacuterias for-mas para auxiliar o reconhecimento das entidades mencionadas

421 Preacute-processamento de TextoUm dos passos importantes na mineraccedilatildeo de dados eacute o preacute-pro-cessamento de texto que consiste em efetuar a anaacutelise leacutexica

Figura 3 Aplicaccedilatildeo Mobile(Autoria Proacutepria)

do texto a eliminaccedilatildeo de termos irrelevantes e a separaccedilatildeo dos dados para melhor anaacutelise (BORGES 2011)

O preacute-processamento do texto eacute efetuado apoacutes a obtenccedilatildeo dos tweets onde eacute aplicada a teacutecnica de tokenizaccedilatildeo dividindo o texto em tokens delimitando-ospelo caractere especial ldquo|rdquo (barra vertical) Logo em seguida tem-se como resultado uma sequen-cia de palavras intercaladas Veja o seguinte exemplo deuma frase retirada do Twittertrade ldquoAv Independecircncia apresenta len-tidatildeo Para ocircnibus velocidade meacutedia de 15kmh sentido centro e 14kmh sentido bairro rdquo - que apoacutes tokenizaccedilatildeo resultaraacute em

ldquoAv|Independecircncia|apresenta|lentidatildeo|Para|ocircnibus|-velocidade|meacutedia|de|15kmh|sentido|centro|e|14kmh|senti-do|bairrordquo

422 Anaacutelise de RelevacircnciaApoacutes ser preacute-processado o texto eacute submetido a uma anaacutelise mor-fossintaacutetica onde as palavras satildeo estudadas de forma indepen-dente com o auxilio de um dicionaacuterio que conteacutem um conjunto de palavras chave que surgiram como resultado de um acompa-nhamento dos padrotildees de publicaccedilatildeo na rede social estudada e apoacutes isso eacute verificada em cada palavra a sua relevacircncia diante dos acontecimentos esperados

Veja por exemplo o texto a abaixo

Av Independecircncia Goiacircnia apresenta lentidatildeo Para ocircni-bus velocidade meacutedia de 15kmh

Observe que o texto tem relevacircncia em relaccedilatildeo aos resulta-dos esperados onde satildeo buscadas palavras com teor impeditivo como acidentes tracircnsito lento obras em vias etc

O texto que natildeo conteacutem relevacircncia eacute descartado

423 Obtenccedilatildeo de LocaisCom a obtenccedilatildeo de um texto relevante eacute possiacutevel efetuar uma anaacutelise a fundo e com a utilizaccedilatildeo de teacutecnicas de REM eacute pro-posta a maacutexima obtenccedilatildeo de endereccedilos relevantes

Em primeiro momento o algoritmo obteacutem um local conhe-cido (ex cidade bairro municiacutepio) com base em um dicionaacuterio de locais e armazena-o em uma variaacutevel na memoacuteria como no exemplo abaixo

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

Entatildeo eacute feita uma interaccedilatildeo entre as palavras buscando se-melhanccedila no dicionaacuterio na tentativa de obter a maacutexima compati-bilidade possiacutevel Caso for encontrada a localizaccedilatildeo na sentenccedila a mesma daraacute iniacutecio a um endereccedilo

A dificuldade encontrada nesse processo eacute por causa da fuga geralmente das publicaccedilotildees nas redes sociaisem relaccedilatildeo agrave norma de escrita padratildeo como por exemplo letras minuacutesculas ou erros de acentuaccedilatildeo

Apoacutes a obtenccedilatildeo da localizaccedilatildeo eacute iniciado o processo de busca de logradouros na fraseonde eacute feita uma varredura com o auxiacutelio do dicionaacuterio verificando a semacircntica das palavras utilizando o seguinte processo se a frase contiverpalavras es-pecificadas nodicionaacuterio como ldquoavrdquo ldquopraccedilardquo ldquoruardquo ldquovielardquoetc logicamente o que vem depois delas eacute o nome do logradouro como segue o exemplo

10Twitter4J Disponiacutevel emlthttptwitter4jorgengt Acesso em 24 jun 2013

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 14: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada17

Av|Anhanguera|Centro|Goiacircnia|apresenta|lentidatildeo|Vel|-meacutedia|de|9kmh

O problema encontrado em relaccedilatildeo a esse tipo de tratamen-to eacute em relaccedilatildeo a endereccedilos compostos como ldquoAv 24 de Outu-brordquo Para solucionar esse problema foi aplicada uma teacutecnica de verificaccedilatildeo de palavras seguidas por preposiccedilatildeo onde atraveacutes de um dicionaacuterio de preposiccedilotildees eacute verificado se apoacutes o primeiro lo-gradouro obtido haacute uma preposiccedilatildeo caso sim a proacutexima palavra faz parte do endereccediloExemplo

Av|24|de|Outubro

Primeira iteraccedilatildeo obtenccedilatildeo do endereccedilo Av|24|Se apoacutes a primeira iteraccedilatildeo existir uma preposiccedilatildeo a pala-

vra seguinte faz parte desse endereccedilo Av|24|de|OutubroApoacutes esse processo o logradouro resultante eacute armazenado

em conjunto com a localizaccedilatildeo que foi obtida anteriormente

Resultado Av|Anhanguera|Goiacircnia

424 Obtenccedilatildeo de PrefixosApoacutes a anaacutelise dos textos publicados na rede social foi encon-trado um padratildeo de postagens comum para referenciar rodovias estaduais ou federais (ex GO BR etc) Ao realizar a anaacutelise na frase houve uma dificuldade em identificar esse tipo de locali-zaccedilatildeo com o algoritmo de obtenccedilatildeo de locais pois esses prefixos podem vir de vaacuterias formas

Para solucionar esse problema foi criado um algoritmo que identifica padrotildees de prefixos onde apoacutes a verificaccedilatildeo no di-cionaacuterio de prefixos satildeo etiquetadas todas as citaccedilotildees na frase Exemplo

GO-060 apresenta lentidatildeo devido a acidente na rodovia

Analisada a relevacircncia com o auxiacutelio do dicionaacuterio de pre-fixos obtemos atraveacutes de ldquoGOrdquo a palavra ldquoGO-060rdquo e esse fun-cionamento aplica-se tambeacutem para outros tipos de prefixos

43 Tratamento e Demonstraccedilatildeo dos Dados ObtidosO tratamento e demonstraccedilatildeo dos dados obtidos foram feitos uti-lizando as APIrsquos do Googletrade para a obtenccedilatildeo de geolocalizaccedilatildeo e demonstraccedilatildeo de mapas

431 Obtenccedilatildeo de Dados GeograacuteficosPara a obtenccedilatildeo de dados geograacuteficos foi utilizado o GoogleGe-ocodingAPItrade que atraveacutes de um WebServicedisponibilizado pelo Googletrade eacute passado o endereccedilo como paracircmetro e como resultado temos todos os dados de geolocalizaccedilatildeo referente a esse endereccedilo11 Os paracircmetros que podem ser passados para o WebService satildeo os seguintes

address stringlatLng LatLngbounds LatLngBoundsregion string

No caso da aplicaccedilatildeo Traffic Monitorfoi utilizado o paracirc-metro ldquoaddressrdquo que espera um endereccedilo estaacutetico que esteja se-parado por ldquo+rdquo e que natildeo possua acentuaccedilatildeo ou espaccedilosIsso se daacute devido agrave requisiccedilatildeo ser uma URL Segue abaixo o exemplo completo da requisiccedilatildeo

httpmapsgoogleapiscommapsapigeocodejsonad-dress=Av+Anhanguera+Goianiaampsensor=true

Como retorno dessa requisiccedilatildeo temos um JavaScriptOb-jectNotation(JSON) que conteacutem todos os dados referentes a esse endereccedilo e atraveacutes disso satildeo obtidas a latitude e a longitude dados necessaacuterios para a representaccedilatildeo em um mapa Apoacutes esse processo satildeo inseridas todas as informaccedilotildees no Corpus

Exemplo de uma parte do arquivo JSON retornadoutiliza-do pelo aplicativoTraffic Monitor onde os valores ldquolatrdquo e ldquolngrdquo representam respectivamente a latitude e longitude

location lat -166751692lng -4928020859999999

432 Representaccedilatildeo Graacutefica de Dados Geograacuteficos em Mapa de CalorOs dados satildeo representados em forma de mapa de calor com o auxiacutelio doGoogle Mapstrade APIque disponibiliza de forma faacutecil a manipulaccedilatildeo dos dados de geocalizaccedilatildeo (latitude e longitu-de)12 Esse mapa de calor eacute exibido em uma aplicaccedilatildeo mobile (Android) onde atraveacutes de uma requisiccedilatildeo ao Web Service na nuvem obteacutem-se todos os dados de geolocalizaccedilatildeo Uma vez que esses dadosestatildeo disponiacuteveisno dispositivo mobile a aplica-ccedilatildeo faz o processamento gerando o mapa de calor no displaydo dispositivoe com o auxiacutelio da funccedilatildeo de geolocalizaccedilatildeo que a maioria dos smartphones disponibiliza o mapa eacute centralizado na posiccedilatildeo atual do usuaacuterio

433 Armazenamento da Aplicaccedilatildeo na NuvemA aplicaccedilatildeo foi criada e hospedada na nuvem utilizando a infra-estrutura de servidores do Googletrade que provecirc um ambiente replicaacutevel de raacutepido processo de desenvolvimento e armazena-mento hardware de ponta sistema operacional conectivida-de serviccedilos de software e alta confiabilidade Por meio desse serviccedilo foi obtida uma melhora de desempenho da aplicaccedilatildeo pois houve a integraccedilatildeo de todos os serviccedilos do Googletrade e moacute-dulos da aplicaccedilatildeo sendo que anteriormente para cada moacutedulo do software eram criados ambientes para executaacute-los de forma fragmentada13

5 Coleta e anaacutelise de dados

Com o objetivo de avaliar as informaccedilotildees e o funcionamento da aplicaccedilatildeo desenvolvida foi efetuado um processo de coleta e anaacutelise dos dados em que a aplicaccedilatildeo se baseia onde foi feito o levantamento de dados obtidos no processo de extraccedilatildeo e reco-nhecimento das entidades mencionadasbem como a anaacutelise de

11Google DevelopersThe Google Geocoding API Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationgeocodinggt Acesso em 26 jun 201312Google API Javascript do Google Maps v3 Disponiacutevel emlthttpsdevelopersgooglecommapsdocumentationjavascriptexampleshl=p-t-brgt Acesso em 08 fev 2013

JanDez 2015

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 15: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

18Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 1

relevacircncia desses dados

51 Levantamento de DadosConforme citado nos toacutepicos 41e 42 a aplicaccedilatildeo efetua um processo de obtenccedilatildeo e mineraccedilatildeo dos tweets Por meio desse processo foram obtidas estatiacutesticas sobre a eficaacutecia da aplicaccedilatildeo em relaccedilatildeo aos dados obtidos

Para um melhor resultado na anaacutelise desses dados os testes foram efetuados durante um periacuteodo de 7 dias incluindo o final de semana Nesse periacuteodo os dados foram coletados proposital-mente em horaacuterio de pico devido ao maior traacutefego de tracircnsito na cidade o que ocasiona grande quantidade de fluxo de tweets relacionados a acontecimentos de tracircnsito

Segue o graacutefico que mostra a quantidade de dados relevan-tes ou seja dados vaacutelidos resultantes do processo de Reconhe-cimento de Entidades Mencionadasobtidos em relaccedilatildeo ao total bruto de tweets diaacuterios no periacuteodo de 7 dias

13Google Google AppEngine Disponiacutevel emlthttpsdevelopersgooglecomappenginegt Acesso em 22 fev 2013

Uma vez efetuada a anaacutelise de relevacircncia dessa publicaccedilatildeo pelo aplicativo Traffic Monitor eacute entatildeo feita sua demonstraccedilatildeo em forma de mapa de calor

Figura 4 Relaccedilatildeo de dados relevantes da amostra(Autoria Proacutepria)

A figura 7 exibe outro exemplo de publicaccedilatildeo feita pela RMTC onde havia duas publicaccedilotildees no Twittertrade na mesma data e horaacuterio que demonstravam acontecimentos com teor im-peditivo no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mutiratildeordquo

Figura 5 Publicaccedilatildeo com fato de teor impeditivo(Autoria Proacutepria)

Figura 6 Demonstraccedilatildeo em mapa de calor da publicaccedilatildeo com teor impeditivo(Autoria Proacutepria)

Como demonstrado na figura 8 apoacutes anaacutelise de relevacircn-cia da publicaccedilatildeo o aplicativo exibe a informaccedilatildeo em forma de mapa de calor no cruzamento das avenidas ldquoAv T-7rdquo e ldquoAv Mu-tiratildeordquo

53 Utilizaccedilatildeo do Corpus para EstatiacutesticasCom a finalidade de exibiros cinco locais mais afetados por fato-res impeditivos no tracircnsito de Goiacircnia foi feitaa implementaccedilatildeo de um Corpusque armazena o histoacuterico de todos os aconteci-mentos com fatores impeditivos que foram obtidos a partir da mineraccedilatildeo de dados das publicaccedilotildees feitas pela RMTC em seu perfil no Twittertrade Analisando esse histoacuterico o aplicativo Tra-ffic Monitor disponibiliza ao usuaacuterio por meio de graacutefico as estatiacutesticas do tracircnsito em Goiacircnia como pode ser observado na figura 9

6 Conclusotildees

O desenvolvimento de um aplicativo como o apresentado nesse trabalhoeacute essencial diante de uma sociedade que requer a todo instante informaccedilotildees das mais diversas em meio a uma grande quantidade de dados que satildeo produzidos na internet

Para solucionar esse problema foi empregada a teacutecnica de

52 Anaacutelise da Relevacircncia dos DadosNo toacutepico 43 eacute aplicado o processo de tratamento e demons-traccedilatildeo dos dados obtidos pelo processo de Reconhecimento de Entidades Mencionadas Atraveacutes desse processo temos a amos-tragem graacutefica dos dados relevantes obtidos no algoritmo desen-volvido bem como o cruzamento de informaccedilotildees com o objeti-vo de demonstrar a veracidade desses dados

Nos paraacutegrafos seguintes seratildeo demonstrados os compara-tivos entre a amostragem de algumaspublicaccedilotildees contendo pon-tos criacuteticos na rede social Twittertradebem como suas respectivas representaccedilotildees em forma de mapa de calor

A figura 5 exibe uma publicaccedilatildeo feita pela RMTC onde eacute relatado um fato com teor impeditivo identificado na localidade ldquoAv Independecircnciardquo

Figura 7 Exemplo de publicaccedilotildees de teor impeditivo correspondentes a duas localidades proacuteximas

(Autoria Proacutepria)

JanDez 2015

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 16: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

19JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Reconhecimento de Entidades Mencionadas que serviu de base para o desenvolvimento de um aplicativo que busca automatica-mente informaccedilotildees de tracircnsitos em publicaccedilotildees feitas no perfil da RMTC noTwittertradeDe forma a tornar ainda mais raacutepida a interpretaccedilatildeo dessas informaccedilotildees por parte dos usuaacuterios o apli-

cativo exibe um mapa de calor com as informaccedilotildees mineradas Aleacutem disso disponibiliza tambeacutem estatiacutesticas dos locais mais afetados por fatores impeditivos

Em relaccedilatildeo aos objetivos que motivou o desenvolvimento do presente trabalho o aplicativo mostrou resultados satisfatoacute-rios visto que conseguiu atingir a meta na busca de informaccedilotildees (mineraccedilatildeo de dados) em uma amostra de dados retirados da in-ternetDe um total de 200 tweets que satildeo coletados do perfil da RMTC no Twittertrade a cada solicitaccedilatildeo efetuada por um usuaacuterio o aplicativo Traffic Monitorconsegue retornar somente as infor-maccedilotildees das condiccedilotildees de tracircnsito em Goiacircnia tarefa que deman-daria tempo caso fosse feita de forma manual pelo usuaacuterio

Figura 8 Demonstraccedilatildeo do cruzamento de informaccedilotildees das publicaccedilotildees de teor impeditivo em mapa de calor

(Autoria Proacutepria)

7 ReferecircnciasBORGES EMERSON DA SILVA Mineraccedilatildeo de Textos

Preacute-processamento Distribuiacutedo de Documentos para Algoritmos de Aprendizagem de Maacutequina VI Workshop de Poacutes-Graduaccedilatildeo e Pesquisa do Centro Paula Souza Satildeo Paulo 2011

BIGUS JOSEPH PData mining with neural networks sol-ving business problems from application development to deci-sion support McGraw-Hill 1996

BISHOP C M (2007)Pattern Recognition and Machine Learning Springer

CONCEICcedilAtildeO A W Um sistema voltado ao armazena-mento e recuperaccedilatildeo de conteuacutedo textual de diferentes contex-tos 2013 61f Trabalho de Conclusatildeo de Curso (Bacharel em Tecnologias da Informaccedilatildeo e Comunicaccedilatildeo) - Universidade Fe-deral de Santa Catarina Araranguaacute 2013

CARVALHO WESLEY SEIDEL Reconhecimento de en-tidades mencionadas em portuguecircs utilizando aprendizado de maacutequina 2012 96f Dissertaccedilatildeo (Mestrado em Ciecircncia da Com-putaccedilatildeo) ndash Instituto de Matemaacutetica e Estatiacutestica Universidade de Satildeo Paulo Satildeo Paulo 2012

DAVENPORT T PRUSAK L Conhecimento empresa-rial Rio de Janeiro Campus 2003

FREITAS C ROCHA P BICK E ldquoFlorestaSinta(c)tica Bigger Thicker and EasierrdquoIn Antonio Teixeira (ed) PROPOR 2008 LNAI 5190 (Aveiro Portugal 8-10 September) Springer Verlag 2008

HAYKIN S Redes neurais princiacutepios e praacutetica 2 Ed Por-to Alegre Bookman2001

PADILHA THEREZA P P LACERDA ADRIANA N Reconhecimento de Textos para Construccedilatildeo de Mapas Con-ceituaisem Ambientes Colaborativos Brazilian Symposium on Collaborative SystemsSatildeo Paulo 2012

QUINLAN J R C45 Programs for Machine Learning San Francisco CA USA Morgan Kaufmann Publishers Inc 1993 ISBN 1558602402

RILOFF E JONES R Learning Dictionaries for Informa-tion Extraction by Multi-Level BootstrappingIn Proceedings of AAAI-99 1999

RISH IAn empirical study of the naive Bayes classifierIJCAI 2001 Workshop on Empirical 104 Methods in Artificial Intelligence

ROMAtildeO LUIacuteS CARLOS DA SILVA Reconhecimento de entidades Mencionadas em Liacutengua Portuguesa Locais Pesso-as Organizaccedilotildees e Acontecimentos Instituto Superior Teacutecnico Universidade Teacutecnica de Lisboa Novembro 2007

SUTTON R S BARTO A G Reinforcment Learning AnIntroduction MIT Press Cambridge Massachusetts 1998

Figura 9 Localidades com maior nuacutemero de ocorrecircncias(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 17: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 201220

Artigo 2

Sistema Android To Do List

Leonardo Levi Correcirca de Almeida Ricardo de Andrade Kratz

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

lcalevigmailcom ricardokratzsenaisistemafiegorgbr

Abstract This article describes how to develop an Android OS mobile application Using a simple application as example it covers all the commercial aspects as well as the technical aspects to be taking into account in the development of an appli-cationKeywords Android Development Mobile Applications

Resumo Este artigo descreve como desenvolver uma aplicaccedilatildeo moacutevel para sistema operacional Android Utilizando um simples aplicativo como exemplo ele aborda os aspectos comerciais bem como os aspectos teacutecnicos a serem levados em conta no desenvolvimento de uma aplicaccedilatildeo

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

1 Introduccedilatildeo

Vivemos atualmente em uma sociedade na qual a regra eacute a utiliza-ccedilatildeo da informaccedilatildeo para gerar comodidade agraves nossas vidas Desta maneira por que sentar-se em frente a um computador de mesa para ler e-mails se hoje podemos fazer isso sentados no sofaacute utilizando nosso laptop Se o laptop se tornar pesado e desconfortaacutevel por que natildeo utilizar um tablete Mas e se estivermos na rua e o tablete se tornar desajeitado por que natildeo utilizar nossos smartphones

A Tecnologia da Informaccedilatildeo tambeacutem tem transformado nossa realidade no trabalho muito mais cocircmoda e acessiacutevel A in-ternet sem fio facilitando o compartilhamento as viacutedeo chamadas encurtando distacircncias apresentaccedilotildees muito mais visuais Enfim tudo tem convergido para o faacutecil o moacutevel o dinacircmico De acordo com a Agecircncia Nacional de Telecomunicaccedilotildees (ANATEL 2013) a quantidade de pessoas com banda larga moacutevel 3G totalizaram cerca de 54 milhotildees no ano de 2012 Ainda de acordo com a Agecircncia houve um crescimento de 20 dos celulares no Brasil Jaacute o Web Site especializado Teleco (2013) estima que o Brasil possui cerca de 73 milhotildees de acessos de banda larga moacutevel no ano de 2012 alcanccedilando assim 124 milhotildees de acessos em 2014

Neste cenaacuterio as tecnologias moacuteveis estatildeo tendo grande utilizaccedilatildeo Hoje eacute muito mais raacutepido e praacutetico utilizar o mesmo dispositivo que realizamos ligaccedilotildees para tambeacutem acessar nossos e-mails navegar na web e muito mais Desta forma eacute equivalente dizer que tornar a informaccedilatildeo mais cocircmoda eacute torna-la moacutevel

Somando a esse cenaacuterio nos afazeres diaacuterios do trabalho por exemplo sempre haacute a necessidade de se anotar alguma observa-ccedilatildeo sobre um determinado assunto Nem sempre estamos ldquomunidos de papel e canetardquo nestes momentos Tambeacutem natildeo eacute tatildeo confortaacutevel andar sempre com uma caderneta no bolso Mesmo assim a gerecircn-cia das atividades circunstanciais que surgem durante o dia faz-se muito importante para desempenharmos uma oacutetima performance profissional Logo como seria interessante se uma soluccedilatildeo tecnoloacute-gica pudesse tornar este processo mais dinacircmico e praacutetico

11 ObjetivoBaseado nessa proposta de soluccedilatildeo tecnoloacutegica os objetivos desta pesquisa satildeo

bull Prioritariamente demonstrar o desenvolvimento de uma aplicaccedilatildeo para o sistema operacional Android

bull Criar um simples aplicativo que possa servir de exemplo para a demonstraccedilatildeo de como desenvolver uma aplicaccedilatildeo Android

12 JustificativaProfissionais que em suas atividades atuam diretamente com vaacuterios setores da empresa e estatildeo constantemente em comunicaccedilatildeo ten-dem a ter que gerenciar uma seacuterie de atividades que surgem circuns-tancialmente Ou seja atividades importantes que surgem durante uma conversa no corredor da empresa um bate papo na lanchonete uma ligaccedilatildeo Nestas horas sentimos a necessidade de anotar certas observaccedilotildeeslembretes para que natildeo nos esqueccedilamos de atuar nes-tes problemas posteriormente Embora pareccedila um processo simples e de pouca impor-tacircncia frente a tantas outras atividades um bom desempenho profis-sional eacute constituiacutedo tambeacutem da realizaccedilatildeo de tudo a que nos propo-mos a cumprir Sem mencionar que a natildeo realizaccedilatildeo de um serviccedilo completo contribui diretamente para a natildeo execuccedilatildeo de processos criacuteticos para a empresa afetando assim o andamento do negoacutecio da companhia 13 MetodologiaSeraacute utilizado uma revisatildeo teoacuterica em livros e sites especializados e metodologia aacutegil de desenvolvimento de sistemas no intuito de produzir este artigo cientiacutefico como forma de documentar a criaccedilatildeo do aplicativo e seu encontro aos objetivos propostos

14 OrganizaccedilatildeoAplicativos moacuteveis possuem uma grande diversidade de platafor-mas de desenvolvimento O capiacutetulo 2 vai mostrar de maneira mais detalhada as caracteriacutesticas de desenvolvimento para este tipo de tecnologia Apresentaraacute ainda maiores detalhes sobre qual a pla-taforma escolhida para o desenvolvimento deste aplicativo e suas peculiaridades Jaacute no capiacutetulo 3 entraremos na modelagem do negoacutecio da aplicaccedilatildeo em si Neste capiacutetulo apresentaremos os requisitos para a construccedilatildeo do aplicativo sua diagramaccedilatildeo e macro visualizaccedilatildeo Desta forma seremos capaz de entender de maneira detalhada o que o aplicativo se propotildeem a executar Uma vez claro as funccedilotildees que o aplicativo se propotildeem a executar o capiacutetulo 4 fica a cargo da descriccedilatildeo da implementaccedilatildeo do aplicativo de acordo com os requisitos apresentados no capiacutetulo

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 18: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada21

3 e nos paracircmetros de desenvolvimento apresentados no capiacutetulo 2 tais como padratildeo de projeto escolhido detalhes da plataforma de desenvolvimento e etc Feito o desenvolvimento do aplicativo com o intuito de melhoria contiacutenua o capiacutetulo 5 iraacute abordar os testes realizados para verificar e validar a aplicaccedilatildeo baseada na experiecircncia do usuaacuterio propriamente dita Por fim conforme iniciado pela introduccedilatildeo deste artigo encerraremos com uma conclusatildeo a respeito dos resultados obtidos com o desenvolvimento frente aos objetivos propostos e a experiecircn-cia do usuaacuterio final

2 Referencial TeoacutericoAntes de entrar na codificaccedilatildeo que seria a execuccedilatildeo do projeto propriamente dito assim como qualquer outro tipo de projeto o desenvolvimento de software exige de seus participantes planeja-mento e organizaccedilatildeo Dessa maneira o processo de codificaccedilatildeo fica mais raacutepido o projeto como um todo torna-se menos oneroso e o sistema em si adquire facilidade de manutenccedilatildeo Portanto alguns referenciais teoacutericos foram levados em conta no desenvolvimento deste aplicativo

21 Padrotildees de ProjetoConforme abordado de maneira bem humorado pelos autores do livro Head First Design Patterns (2004 pag 31) Conhecer con-ceitos como abstraccedilatildeo heranccedila e polimorfismo natildeo fazem de vocecirc um bom criador de software orientado a objetos Um bom desen-volvedor na verdade pensa em como criar projetos flexiacuteveis faacuteceis de dar manutenccedilatildeo e que em sua estrutura possam lidar muito bem com mudanccedilas Por isso eacute que existem padrotildees de projeto pois indepen-dente da aacuterea de atuaccedilatildeo ldquocada padratildeo descreve um problema no nosso ambiente e o cerne de sua soluccedilatildeo de tal forma que vocecirc possa usar essa soluccedilatildeo mais de um milhatildeo de vezes sem nunca fazecirc-lo da mesma maneirardquo (Christopher et al 1977) Para o desenvolvimento da aplicaccedilatildeo tema deste artigo foi utilizado o padratildeo de projeto MVC (Model View e Control) ldquoA abordagem MVC eacute composta por trecircs tipos de objetos O Mode-lo eacute o objeto de aplicaccedilatildeo a Visatildeo eacute a apresentaccedilatildeo da tela e o Con-trolador eacute o que define a maneira como a interface do usuaacuterio reage agraves entradas do mesmo Antes da MVC os projetos de interface para o usuaacuterio tendiam a agrupar esses objetos A MVC separa esses ob-jetos para aumentar a flexibilidade e a reutilizaccedilatildeordquo (GAMMA et al 1995)

22 Metodologias AacutegeisSegundo Roger S Pressman (2006)

ldquoNa economia moderna eacute frequentemente difiacutecil ou impossiacutevel prever como um sistema baseado em com-putador (por exemplo uma aplicaccedilatildeo com base na web) evoluiraacute com o passar do tempo Condiccedilotildees de mercado mudam rapidamente necessidades dos usu-aacuterios finais evoluem e novas ameaccedilas de competiccedilatildeo emergem sem alerta Em muitas situaccedilotildees natildeo pode-mos mais definir completamente os requisitos antes do iniacutecio do projeto Os engenheiros de software devem ser aacutegeis suficiente para responder a um ambiente de negoacutecio mutanterdquo

O processo de desenvolvimento aacutegil torna o processo de desenvolvimento mais interativo com o clienteusuaacuterio final Em-bora a entrega de produto natildeo espere a coleta de requisitos por completa a facilidade que este modelo de desenvolvimento tem de

se adaptar a mudanccedilas eacute algo bem procurado atualmente Segundo Fowler M ldquoThe new Methodologyrdquo (2002) um processo de de-senvolvimento aacutegil eacute destinado a projetos com as seguintes carac-teriacutesticas 1) Ambiente instaacutevel incapaz de prever quais requisitos iratildeo persistir ao longo do tempo de desenvolvimento 2) Situaccedilotildees onde o projeto e a construccedilatildeo satildeo intercaladas de modo que a utili-zaccedilatildeo do software iraacute comprovar a necessidade de mais desenvol-vimento ou natildeo 3) Anaacutelise projeto e teste natildeo satildeo tatildeo previsiacuteveis como esperado Enfim processos aacutegeis satildeo usados quando a entre-ga do produto tem que ser raacutepida e os requisitos a serem construiacutedos dependem da comprovaccedilatildeo do produto entregue Para o desenvolvimento do sistema android To Do List foi utilizado o meacutetodo aacutegil XP (Extreme Programming) De uma maneira geral baseamos o desenvolvimento do aplicativo no le-vantamento dos requisitos coletados em pequenos cartotildees que na nomenclatura deste processo satildeo chamados de ldquostory boardsrdquo Cada story board deve ser um requisito a ser implementado Quando as histoacuterias ficam muito longas e complexas eacute solicitado ao clienteusuaacuterio que partilhe a histoacuteria em outras menores Tambeacutem eacute do usuaacuterio a funccedilatildeo de atribuir prioridade agraves histoacuterias Baseado nisso o desenvolvimento se compromete agrave entrega de um produto semanal-mente ao final de cada story board

24 Desenvolvimento MoacutevelldquoMais de trecircs quartos dos especialistas que responderam (77 con-cordaram que dispositivos de computaccedilatildeo moacutevel ndash com mais sig-nificante poder computacional em 2020 ndash seratildeo a principal platafor-ma de comunicaccedilatildeo de internet para a maioria das pessoas ao redor do mundordquo(Pew Internet amp American Life Project The Future of the Internet III December 14 2008) Desde de quando o primeiro computador foi criado temos visto uma constante corrida por dispositivos menores mais baratos e com maior customizaccedilatildeo pessoal Escolhemos o desenvolvimento moacutevel baseado na perspectiva de crescimento deste mercado e na tendecircncia deste se tornar a principal plataforma computacional utili-zada assim como mostram as pesquisas e levantamentos de dados

25 AndroidSegundo PEREIRA e SILVA (2009 p3)rdquo o Android eacute uma plata-forma para tecnologia moacutevel completa envolvendo um pacote com programas para celulares jaacute com um sistema operacional mid-dleware aplicativos e interface de usuaacuteriordquo Ainda de acordo com os autores o Android possui o obje-tivo de permitir aos desenvolvedores a criaccedilatildeo de aplicaccedilotildees moacuteveis que possam tirar proveito do que um smartphone pode oferecer

3 Modelagem do Sistema

31 Coleta de requisitos (Story Boards)

Tabela 1 Primeira story board entregue como requisito

(Autoria Proacutepria)

JanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 19: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

32 Caso de usoO Caso de Uso Figura 1 informa as principais funcionalidades do sistema e seus atores envolvidos

Artigo 2

33 Diagrama de classeNa Figura 2 temos o diagrama de classe mostrando a arquitetura orientada a objetos da proposta onde temos em destaque os relacio-namentos das mesmas

Figura 1 Diagrama de Caso de Uso(Autoria Proacutepria)

34 Interface do UsuaacuterioA interface principal do sistema Figura 3 busca a simplicidade e facilidade de uso pelo o usuaacuterio

Figura 2 Diagrama de Classe(Autoria Proacutepria)

1 Campo de texto para inserir a atividade a ser cadastrada2 Botatildeo de accedilatildeo que gera o evento de registro da atividade cadastrada3 Espaccedilo para o segundo objeto de tela

Jaacute na Figura 4 temos a segunda tela do usuaacuterio respon-saacutevel pela apresentaccedilatildeo e gerenciamento da lista de atividade ao

Figura 3 Interface do Usuaacuterio(Autoria Proacutepria)

usuaacuterio

1 Campo de texto onde eacute apresentado o registro da ativida-de2 Botatildeo com a accedilatildeo de excluir a atividade do banco de da-dos

Por fim na Figura 5 temos a tela de exibiccedilatildeo da atividade selecionada ao usuaacuterio

Figura 4 Segunda Tela de usuaacuterio(Autoria Proacutepria)

1 Campo de texto para exibir a data de registro da atividade2 Campo de texto para exibir a atividade

4 Implementaccedilatildeo

41 Ferramentas utilizadas para o desenvolvimentoA tabela abaixo mostra quais foram as ferramentas utilizadas para o desenvolvimento do aplicativo bem como a categoria e o endereccedilo web onde obter tal ferramenta para desenvolvimento

Tabela 2 Ferramentas para o desenvolvimento

Figura 5 Terceira Tela de usuaacuterio(Autoria Proacutepria)

(Autoria Proacutepria)

JanDez 2015

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 20: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

42 Trechos de coacutedigoO trecho de coacutedigo abaixo mostra a accedilatildeo realizada na classe To-DoListActivity para adicionar uma nova atividade (Nota) agrave lista de atividades

Tabela 3 Trecho de coacutedigo ldquoAdicionar Atividaderdquo

O trecho de coacutedigo a seguir por outro lado apresenta a accedilatildeo na classe ToDoListactiviy para visualizar a descriccedilatildeo de uma atividade que foi criada e estaacute sendo visualizada na lista de ativida-des

Tabela 4 Trecho de coacutedigo ldquoVisualizar Atividaderdquo

(Autoria Proacutepria)

43 Imagem de tela real da aplicaccedilatildeoNa Figura 6 temos a implementaccedilatildeo real da tela da aplicaccedilatildeo

(Autoria Proacutepria)

5 Testando a aplicaccedilatildeo

51 ConceitoConforme CINAR (2012) ldquoTeste eacute uma das mais importantes fases do ciclo de desenvolvimento de uma aplicaccedilatildeo O SDK do Android

Figura 6 Print de tela real(Autoria Proacutepria)

providencia uma ferramenta poderosa de teste por definir e executar uma variedade de testes para validar diferentes aspectos das aplica-ccedilotildees Android O framework de teste do Android eacute construiacutedo sobre o popular framework de teste JUnit do Java Ele eacute uma extensatildeo do JUnit incorporando ao mesmo algumas funcionalidades afim de que este possa controlar o ambiente ao redor das aplicaccedilotildees An-droid Dessa maneira fica faacutecil o teste de todos os possiacuteveis casos de uso Baseado nas orientaccedilotildees de MILANO (2011) construiacutemos o projeto de teste da aplicaccedilatildeo e os pacotes de teste atentando-se mais ao teste de caso de uso das atividades criadas ldquoToDoListActi-vityrdquo e ldquoViewNoteActivityrdquo

52 Experiecircncia do usuaacuterioApoacutes criaccedilatildeo desenvolvimento e implementaccedilatildeo do sistema apre-sentado neste artigo utilizamos o teste de usabilidade para verificar seu desempenho em ambiente de produccedilatildeo real Para tanto distri-buiacutemos uma versatildeo beta do aplicativo a um grupo de pessoas afim de que estas testassem o aplicativo por um periacuteodo de 20 dias Ao final do periacuteodo estipulado para teste cada usuaacuterio preencheu a uma pequena enquete conforme tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio Cada pergunta teve o objetivo de avaliar o desempenho de uma aacuterea estrateacutegica do desenvolvi-mento do aplicativo como um todo

Tabela 5 Enquete Avaliaccedilatildeo de experiecircncia do usuaacuterio

(Autoria Proacutepria)6 ConclusatildeoO desenvolvimento de aplicaccedilotildees moacuteveis exige de seus desenvol-vedores agilidade na entrega do produto No entanto agilidade por si soacute natildeo eacute suficiente para que seja garantida a qualidade do pro-duto Desta maneira eacute necessaacuterio garantir qualidade no processo de desenvolvimento de modo que essa preocupaccedilatildeo natildeo se trans-forme em complicaccedilatildeo para a agilidade de desenvolvimento Com os passos e etapas abordadas neste artigo mostramos atraveacutes do desenvolvimento de uma simples aplicaccedilatildeo exemplo como garantir qualidade e ainda sim entregar um produto com agilidade

7 ReferecircnciasANATEL Banda Larga 3G Disponiacutevel em lthttpwwwanatelgovbrgt Acessado em 06032013CHRISTOPHER Alexander Sara Ishikawa Murray Silverstein Max Iacobson Ingrid Fiksdahl-King and Shlomo Angel A Pattern Language Oxford University Press New York 1977CINAR Onur Android Apps with Eclipse 20062012FREEMAN Eric FREEMAN Elisabeth SIERRA Kathy BA-TES Bert Head First Design Patterns 2004GAMMA Erich HELM Richard JOHNSON Ralph VLISSI-DES John Design Patterns ndash elements of reusable object-oriented software 1995MILANO Diego Torres Android Application Testing Guide 2011PEREIRA Luacutecio Camilo Oliva SILVA Michel Lourenccedilo da An-droid para desenvolvedores Rio de Janeiro Brasport 2009PEW INTERNET amp AMERICAN LIFE PROJECT The Future of the Internet III December 14 2008TELECO 3G 3ordf Geraccedilatildeo de Celular no Brasil Publicado em 05032013 Disponiacutevel em lthttpwwwtelecocombr3g_brasilaspgt Acessado em 05032013

JanDez 2015

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 21: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

24Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

O Uso de Dispositivos Moacuteveis para Mensurar Terrenos

Wanderson Barbosa de Oliveira Heuber Gustavo Frazatildeo de Lima

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

wandersonpba2gmailcom heubersenaisistemafiegorgbr

Abstract One of the many functions available in mobile technology that has interesting possibilities to be explored is the Global Positioning System (GPS) In this article I will address the fact that itrsquos possible to measure terrains with mobile te-chnology with a certain precision and present a considerable difference when compared with professional devices for terrain measurement To better demonstrate my claim a mobile application was created to receive coordinates from the location of the GPS device and manipulate the data to obtain the results without the need for additional calculations At the end of the tests we have seen that it is possible to use a mobile device for measuring an informal area and terrain distance however but you can check that mobile technology offers no accuracy for professional approach

Keywords Android Measure Terrains Mobile Applications

Resumo Uma das funccedilotildees que os dispositivos moacuteveis possuem e que tem grande capacidade para ser explorada eacute o Global Positioning System (GPS - Sistema de Posicionamento Global) Nesse artigo seraacute demonstrado uma aplicaccedilatildeo que tem o objetivo de mensurar terrenos com esse tipo de dispositivo proporcionar precisatildeo a um custo mais acessiacutevel se compararmos com dispositivos profissionais de mediccedilatildeo O aplicativo recebe como paracircmetro a localizaccedilatildeo do GPS do dispositivo e obteacutem os resultados da aacuterea total percorrida e de distacircncia entre os pontos Ao final dos testes eacute demonstrado que eacute possiacutevel utilizar o dispositivo para mediccedilotildees para escrituraccedilatildeo de terra e outras mediccedilotildees informais de aacuterea e distacircncia mas eacute possiacutevel verificar que a tecnologia moacutevel natildeo oferece precisatildeo para o enfoque profissional

Palavras Chaves Android Mensurar Terrenos Aplicaccedilotildees Moacuteveis

1 IntroduccedilatildeoOs aparelhos GPS vecircm conquistando cada vez mais as pessoas independente da aacuterea em que trabalham Pensando nas diversas aplicaccedilotildees que o sistema de GPS pode ter eacute difiacutecil imaginar que no futuro ele natildeo estaraacute ainda mais presente no cotidiano das pessoas Cada dia mais e mais aparelhos com receptores GPS surgem no mercado sempre trazendo alguma aplicaccedilatildeo inova-dora (ELAINE MARTINS 2010) Atraveacutes dessa ferramenta esse artigo aborda se o re-ceptor GPS que vem instalado nos dispositivos moacuteveis eacute capaz de ser utilizado para mensurar terrenos Uma grande parte dos profissionais que trabalha com mediccedilatildeo de terras normalmente utiliza o GPS convencional para o trabalho que na maioria das vezes vem instalado em seu siste-ma softwares complicados e quase sempre em outro idioma Isto dificulta a leitura e o processamento desses dados e os resultados finais podem demorar dias Por outro lado tambeacutem haacute o usuaacuterio comum que natildeo tem instruccedilatildeo nenhuma sobre mediccedilotildees e que agraves vezes precisa medir o tamanho de uma pastagem lotes ruas e outras Neste trabalho seraacute apresentado um aplicativo que faz o intermeacutedio entre o receptor GPS do dispositivo moacutevel e o usuaacute-rio possibilitando assim conseguir mensurar terrenos distacircncias de uma forma menos complicada Tambeacutem seraacute verificado se esta mediccedilatildeo eacute precisa o bastante para ser utilizada tambeacutem por profissionais da aacuterea Este artigo eacute composto de cinco seccedilotildees sendo a seccedilatildeo 1 essa introduccedilatildeo na seccedilatildeo 2 o referencial teoacuterico na seccedilatildeo 3 a metodologia na seccedilatildeo 4 resultados e discussotildees e na seccedilatildeo 5 a conclusatildeo

2 Referencial TeoacutericoPara a apresentaccedilatildeo desse artigo foi necessaacuterio um estudo sobre todo o arcabouccedilo das tecnologias utilizadas para o de-senvolvimento da aplicaccedilatildeo

21 GPS e AGPS e DGPS

211 GPS - Sistema de Posicionamento GlobalO GPS tem como funccedilatildeo mostrar a sua localizaccedilatildeo no globo terrestre Para isso ele utiliza uma triangulaccedilatildeo de sateacutelites para obter a melhor posiccedilatildeo GPS eacute a sigla em inglecircs para Sistema de Posiciona-mento Global Trata-se de um sistema de navegaccedilatildeo orien-tado por 24 sateacutelites (12 em cada hemisfeacuterio) que orbitam em torno da Terra Esses sateacutelites viajam ao redor do planeta a uma distacircncia de 20200 quilocircmetros e fazem uma oacuterbita completa a cada 12 horas (MARCELO AYRES 2008) Isso faz com que sempre trecircs ou mais sateacutelites es-teja disponiacutevel para o receptor Dois desses sateacutelites ficam encarregados de captar o sinal do receptor e com base na dis-tacircncia entre os sateacutelites e o GPS eacute enviado para o dispositivo a sua posiccedilatildeo de Latitude (posiccedilatildeo horizontal em relaccedilatildeo agrave linha do equador) e a Longitude (posiccedilatildeo vertical em relaccedilatildeo ao meridiano de Greenwich) um terceiro sateacutelite pode ser usado para conseguir uma maior precisatildeo (ELAINE MAR-TINS 2010)

212 AGPS - Sistema de Posicionamento Global AssistidoO AGPS combina o uso do GPS com o das antenas de trans-missatildeo de operadoras que tem armazenado a localizaccedilatildeo dos sateacutelites e transmite a localizaccedilatildeo para o dispositivo moacutevel com uma velocidade relativamente maior Com esse modo

JanDez 2015

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 22: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

25JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a primeira conexatildeo natildeo eacute feita com o sateacutelite diretamente e sim pelos sinais emitidos pelas antenas instaladas das operadoras de celular (OFICINA DA NET 2013)

212 DGPS ndash GPS DiferencialO GPS Geodeacutesico tambeacutem conhecido como DGPS (GPS dife-rencial) eacute o dispositivo que mostra com grande precisatildeo as co-ordenadas de latitude e longitude O dispositivo tambeacutem acessa os mesmos sateacutelites poreacutem diferente do GPS comum o mesmo possui uma estaccedilatildeo para apurar o erro dos sateacutelites suas coor-denadas satildeo processadas apoacutes a mediccedilatildeo com um software es-peciacutefico o dispositivo consegue uma precisatildeo exata ou ateacute no maacuteximo 50 cm (GPS GUIA Acesso em 06 nov 2013) poreacutem sua implementaccedilatildeo eacute onerosa em torno de R$ 20000 e usado apenas por profissionais

22 Dispositivos moacuteveisAtualmente os chamados smarthphones podem vir instalados um dos trecircs principais tipos de sistema operacional o IOS que eacute distribuiacutedo somente pela empresa Apple o Windows Phone que eacute distribuiacutedo pela empresa Microsoft e o Android que tem distri-buiccedilatildeo pela empresa Google com parceria de diversas empresas de tecnologiaDentre os trecircs sistemas operacionais foi escolhido para o desen-volvimento dessa aplicaccedilatildeo o Android que eacute uma plataforma de desenvolvimento para aplicativos moacuteveis baseada no sistema operacional Linux (kernel 26) de coacutedigo aberto com excelente interface graacutefica integraccedilatildeo com GPS e banco de dados e que utiliza a linguagem de programaccedilatildeo JAVA (LECHETTA 2010)

23 Unidades de medida AgraacuteriaEm uma mediccedilatildeo de terra eacute utilizado vaacuterios tipos de unidades de medida de aacuterea como exemplo o msup2 kmsup2 are hectare alqueire O msup2 eacute mais utilizado para medir apartamentos salas casas e outros Como exemplo uma casa que possui 45 msup2 compreende-se entatildeo que a sua aacuterea eacute composta por 45 quadrados com lado de 1 metro cada Sobre kmsup2 eacute da mesma forma soacute que os lados medem 1 km Em uma mediccedilatildeo agraacuteria temos como a primeira uni-dade o are (a) 1 are equivale a 100 msup2 o hectare (ha) eacute o mais utilizado para demonstrar quantidades de aacuterea de fazendas 1 hectare tem o tamanho de 10000 msup2 e por fim o alqueire que jaacute foi uma das mais utilizadas por donos de fazendas e terras poreacutem 1 alqueire pode ter diferentes tamanhos de acordo com o estado em que estaacute situado o terreno Por exemplo em Goiaacutes e Minas Gerais um alqueire equivale a 48400 msup2 jaacute em Satildeo Paulo um alqueire corresponde agrave metade 24200 msup2 (MARCOS NOEacute 2010)

24 Tipos de mediccedilatildeoHaacute vaacuterios modos de se medir um terreno as mais utilizadas satildeo por posicionamento por ponto utilizado por GPS Topograacutefico por posicionamento relativo utilizado pelo GPS geodeacutesico ou ateacute angular utilizado por instrumentos como o Teodolito O meacutetodo mais antigo eacute o angular nele eacute posicionado o teodolito em uma base plana de modo que decirc para observar todos os veacutertices da poligonal e assim eacute rotacionado o equipa-mento aos pontos e com o auxiacutelio da reacutegua graduada (taqueo-metria) satildeo anotados os acircngulos necessaacuterios para assim conse-guir as coordenadas polares e posteriormente a aacuterea do terreno (FERNANDO ZACHI 2013) Para o GPS Topograacutefico o meacutetodo mais utilizado eacute o posicionamento por ponto nele consiste em percorrer todos os pontos da poligonal do terreno a ser mensurado e em cada ponto

deve ficar em torno de dois a cinco minutos para o sinal que eacute enviado do sateacutelite estabilizar no receptor e assim obter as coor-denadas (IBGE 2008 p7)

Sobre o GPS Geodeacutesico eacute utilizado um meacutetodo dife-rente o posicionamento relativo Com esse meacutetodo eacute necessaacuterio uma estaccedilatildeo de referecircncia que recebe o sinal do sateacutelite e ao mesmo tempo haacute outro receptor que coleta as coordenadas em torno da poligonal em boas condiccedilotildees de clima esse meacutetodo pode conseguir exatidatildeo em sua mediccedilatildeo (IBGE 2008 p8)

Figura 1 Posicionamento por ponto(IBGE 2008 p7)

Desde novembro de 2013 o uacutenico meio de mediccedilatildeo profissional aceita pelo INCRA (Instituto Nacional de Coloniza-ccedilatildeo e Reforma Agraacuteria) eacute com o GPS Geodeacutesico A partir da Lei 1026701 estaacute escrito o seguinte exige que este georreferencia-mento seja executado de acordo com a sua Norma Teacutecnica para Georreferenciamento de Imoacuteveis Rurais que impotildee a obrigato-riedade de descrever seus limites caracteriacutesticas e confrontaccedilotildees atraveacutes de memorial descritivo executado por profissional habi-litado - com a emissatildeo da devida Anotaccedilatildeo de Responsabilidade Teacutecnica (ART) por parte do CREA - contendo as coordenadas dos veacutertices definidores dos limites dos imoacuteveis rurais georre-ferenciadas ao Sistema Geodeacutesico Brasileiro com a precisatildeo posicional de 50 cm sendo atingida na determinaccedilatildeo de cada um deles (art 176 sect 4ordm da Lei 601575 com redaccedilatildeo dada pela Lei 1026701) (INCRA 2011) 25 Coordenadas Geograacuteficas e UTMCoordenadas geograacuteficas eacute um sistema de localizaccedilatildeo global onde a latitude eacute uma distacircncia angular em relaccedilatildeo agrave linha do equador e longitude eacute uma distacircncia angular em relaccedilatildeo ao Me-ridiano de Greenwich O valor tanto da Longitude quanto da Latitude possui duas formas de representaccedilatildeo A primeira eacute o afastamento me-dido em graus do meridiano de Greenwich a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 180deg e pode ser leste ou

Figura 2 Posicionamento relativo(IBGE 2008 p8)

JanDez 2015

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 23: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

26Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

oeste A segunda eacute uma angulaccedilatildeo da linha do Equador a um ponto qualquer da superfiacutecie terrestre Ela vai de 0deg a 90deg e pode ser norte ou sul combinando esses dois componentes eacute possiacutevel localizar a posiccedilatildeo em qualquer lugar no nosso planeta (OLI-VEIRA 2013) Temos tambeacutem o sistema de coordenadas em UTM (Universal Transversa de Mercator) que se baseia em um plano cartesiano (x y) e utiliza metros para determinar a posiccedilatildeo e di-ferente das coordenadas geograacuteficas natildeo acompanha a curvatura da terra e satildeo chamadas de coordenadas planas Existem 60 fusos que eacute o cruzamento das linhas dos pa-ralelos com os meridianos e em cada um desses fusos possuem coordenadas em metros da distacircncia entre o paralelo e o meri-diano Sendo assim a mesma coordenada pode se repetir sendo diferenciada pelo fuso onde a mesma se localiza26 Foacutermula de Haversine Para Caacutelculo de DistacircnciaA foacutermula de Haversine eacute um caso especial de uma foacutermula de trigonometria esfeacuterica e muito usada para navegaccedilatildeo por mostrar a distacircncia entre dois pontos de uma esfera a partir da latitude e a longitude Considere na imagem abaixo que o ponto x eacute o norte enquanto os pontos y e z satildeo os pontos onde se deve determinar

a distacircncia (OLIVEIRA 2013)Como eacute uma esfera seus comprimentos de a b e c satildeo iguais aos acircngulos em radianos de seus lados assim determinando que eacute a separaccedilatildeo de longitude de Δλ temos a foacutermula abaixo Utilizando a foacutermula para o sistema Geomensura con-siderando que R = diacircmetro da terra dada em metros que eacute de

Figura 3 Representaccedilatildeo da foacutermula de Haversine(OLIVEIRA 2013)

6378140m ela ficaria dessa forma

27 Caacutelculo Analiacutetico de Aacuterea (foacutermula de Gauss)O caacutelculo analiacutetico de aacuterea consiste em foacutermulas matemaacuteticas que a partir de coordenadas que definem uma poligonal a partir daiacute eacute feito vaacuterios caacutelculos das aacutereas dos trapeacutezios formados pelos veacutertices da mesma ao final se obtem duas aacutereas diferentes sub-traindo a primeira aacuterea com a segunda eacute igual agrave aacuterea calculada (AUGUSTO 2012) Exemplo na Figura 4

Considerando o mapa acima com quatro cordenadas sendo lat = latitude e long = longitude entatildeoAacuterea1 = (lat1 long2) +(lat2 long3)+(lat3 long4) +(lat4 long1)Aacuterea2 = (long1 lat2) -(long2 lat3) -(long3 lat4) -(long4 lat1)

Figura 5 Representaccedilatildeo de poligonais com resultados inesperados (AUGUSTO 2012)

AacutereaTotal = aacuterea1+aacuterea22Para essa foacutermula existem algumas circunstacircncias onde se obteacutem resultados inesperados basta salvar algum ponto que cruze com

Figura 4 Demonstraccedilatildeo do caacutelculo analiacutetico de aacuterea(AUGUSTO 2012)

algum outro ponto da poligonal como nas imagens da Figura 53 MetodologiaPara obter o resultado desejado foi utilizado para o teste um dis-positivo moacutevel da marca Samsung modelo Galaxy Y GT-S5367 com o sistema operacional Android na versatildeo 236 onde poste-riormente tambeacutem foi testado com o modelo Samsung Galaxy Ace 3 GT-S7275B com o sistema operacional Android na versatildeo 422 foi usado o aplicativo Geomensura que foi desenvolvido para ser usado especialmente para esse estudo e o GPS da marca Garmin modelo GPSmap 60cs (em todas as mediccedilotildees)

31 Sobre o AplicativoO aplicativo Geomensur foi criado atraveacutes da interface de desen-volvimento Android Studio na versatildeo 031 e a partir das foacutermu-las de calculo de aacuterea analiacutetica e distacircncia foram criadas classes que adaptassem ao sistema O sistema conta com um banco de dados SQLite onde eacute

JanDez 2015

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 24: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

27JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

possiacutevel salvar as coordenadas recebidas do GPS do dispositivo moacutevel onde tambeacutem eacute possiacutevel lista-las e excluiacute-las Em sua tela inicial ele mostra a latitude longitude e a precisatildeo de sua locali-zaccedilatildeo atual

Figura 6 Diagrama de caso de uso da aplicaccedilatildeo (Autoria Proacutepria)

311 Caacutelculo de DistacircnciaAssim que eacute salvo no sistema duas coordenadas ou mais con-segue-se mensurar a distacircncia entre os pontos salvos no banco de dados da aplicaccedilatildeo para isso eacute usado agrave foacutermula de Haversi-ne que eacute utilizada para se obter resultados mais precisos pois a mesma leva em consideraccedilatildeo a curvatura da terra (GELLERT 1989) Assim eacute convertido agraves coordenas geograacuteficas para ra-dianos utilizando o meacutetodo toRadians que jaacute eacute nativo da lingua-gem Java e tambeacutem na maioria das outras linguagens de progra-maccedilatildeo para entatildeo utilizarmos o meacutetodo com a foacutermula abaixo

Figura 7 Diagrama de Classes da aplicaccedilatildeo (Autoria Proacutepria)

Ao final o meacutetodo retorna a distacircncia em metros do ponto Agrave ao ponto B e assim sucessivamente ateacute a uacuteltima coorde-nada salva

Figura 8 Meacutetodo de caacutelculo de distacircncia por coordenadas geograacuteficas (Autoria Proacutepria)

312 Caacutelculo de AacutereaO Caacutelculo de aacuterea eacute efetuado quando no banco de dados estiver salvo o equivalente a trecircs coordenadas ou mais Para obter a aacuterea de um poliacutegono eacute utilizado um meacutetodo que adapta a formula de caacutelculo de uma poligonal pelo meacutetodo analiacutetico de Gauss onde eacute determinada pela soma das aacutereas dos trapeacutezios que se forma sendo que as bases satildeo dadas pelas coordenadas (UTM) (ERNI 2009)

Ao enviar ao meacutetodo uma lista com todas as coordena-das salvas no banco de dados o meacutetodo retorna o valor total da aacuterea da poligonal em Hectares

Figura 9 Meacutetodo de caacutelculo de aacuterea da poligonal (Autoria Proacutepria)

Figura 10 O aplicativo Geomensura listando as coordenadas salvas em uma mediccedilatildeo

(Autoria Proacutepria)

JanDez 2015

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 25: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

28Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 3

2 Sobre a MediccedilatildeoOs terrenos escolhidos foram um loteamento uma fazenda e um lote todos situados na cidade de Piracanjuba ndash Goiaacutes As medi-ccedilotildees dos terrenos foram feitas ao lado de um agrimensor que utilizando o meacutetodo de mediccedilatildeo ponto a ponto se posicionou em cada marco das aacutereas e aguardou em torno de dois minutos para obter uma boa precisatildeo e assim salvou em seu GPS a coor-denada do ponto da poligonal o mesmo procedimento foi feito no aplicativo instalado no dispositivo moacutevel ao final dos pontos percorridos foi comparado os resultados

Tabela 1 Coordenadas do loteamento obtidas atraveacutes dos dispositivos

Tabela 2 Coordenadas da fazenda obtidas atraveacutes dos dispositivos

Tabela 3 Coordenadas do lote obtidas atraveacutes dos dispositivos

4 Resultados e DiscuccedilotildeesA aplicaccedilatildeo construiacuteda se mostrou eficiente ao ser comparada com o GPS convencional e na maioria dos pontos a mesma conseguiu ser mais raacutepida para conseguir a posiccedilatildeo atual que o outro dispositivo A aplicaccedilatildeo mostrou uma diferenccedila muito pequena entre as coordenadas com margem de erro de dois me-tros aacutes vezes um pouco menos em comparaccedilatildeo com o GPS Sobre caacutelculo de aacuterea houve uma diferenccedila de 601 msup2 para o loteamento 847 msup2 para a fazenda e apenas 19 msup2 para o lote o que em todas as mediccedilotildees eacute uma pequena diferenccedila para os tamanhos das aacutereas mensuradas Apoacutes transferir todas as coordenadas dos dois disposi-tivos para a ferramenta Google Earth obtiveram-se as figura 11 ateacute 16

Figura 11 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 12 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 13 A aacuterea colorida de azul foi percorrida com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida pelo GPSmap 60cs

(Autoria Proacutepria)

Figura 14 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta

foi percorrida pelo GPSmap 60cs (Autoria Proacutepria)

JanDez 2015

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 26: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

29JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

5 ConclusatildeoConsiderando as aacutereas mensuradas obtiveram-se os seguintes resultados demonstrados na tabela abaixo

Tabela 4 Comparativos dos resultados

Figura 15 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Figura 16 Comparaccedilatildeo entre as distacircncias de uma mediccedilatildeo colorida de azul com o aplicativo Geomensura enquanto a de coloraccedilatildeo magenta foi percorrida

pelo GPSmap 60cs(Autoria Proacutepria)

Se for feito um caacutelculo de porcentagem sobre as diferenccedilas das aacutereas entre a aplicaccedilatildeo e o GPS na primeira mediccedilatildeo (loteamen-to) tem-se uma diferenccedila de 601msup2 para o tamanho de 023764 ha o que temos um valor de 2 de diferenccedila do total da aacuterea jaacute na segunda mediccedilatildeo (fazenda) que tem uma diferenccedila de em 847msup2 temos 02273 para o tamanho de 372533 ha enquan-to na terceira mediccedilatildeo (lote) a porcentagem chega a 54441 entatildeo conclui-se que quanto maior a aacuterea medida menor seraacute a diferenccedila do aplicativo para o GPS Geomensura eacute uma aplicaccedilatildeo que pode ser usado para mensurar tanto a aacuterea de um lote quanto a aacuterea de uma grande fazenda com isso o agrimensor pode registrar escrituraccedilatildeo de terras separar uma aacuterea para lavoura ou pastagem mensurar a distacircncia de um rio teacutecnicos de internet podem verificar a dis-tacircncia da casa do cliente ateacute a central e muitos outros usos infor-mais para a aplicaccedilatildeo A mesma possui margem de erro aceitaacutevel se comparado com dispositivos de GPS comuns e na maioria dos pontos obteve-se o resultado preciso antes mesmo do outro dis-positivo Eacute uma aplicaccedilatildeo relativamente leve e natildeo houve difi-culdades para ser executada em dispositivos com configuraccedilotildees de hardware modestas Com exceccedilatildeo para mediccedilotildees para o INCRA como divi-satildeo de terras que exige ser feita pelo GPS Geodeacutesico mensurar

terrenos com dispositivos de GPS ainda eacute bastante utilizada por profissionais da aacuterea para mediccedilotildees informais visto o elevado custo dos dispositivos de Georeferenciamento Eacute nesse quesito que a aplicaccedilatildeo Geomensura se mostra eficaz cumpre bem o seu papel em mensurar as aacutereas e distacircncias e com um custo relati-vamente baixo pois qualquer smartphone com a funccedilatildeo GPS e o sistema operacional Android (a partir da versatildeo 23) iraacute conse-guir utilizar a aplicaccedilatildeo ReferecircnciasAUGUSTO Luis LUIS Pedro APARECIDA Maria Funda-mentos de Topografia engenharia cartograacutefica e de agrimensura Paranaacute Universidade Federal do Paranaacute 2012 274 pELAINE MARTINS Por que o GPS vai ser indispensaacutevel na sua vida 2010 Disponiacutevel em lthttpwwwtecmundocombrgps7109-por-que-o-gps-vai-ser-indispensavel-na-sua-vida-htmgt Acesso em 06 de novembro 2013FERNANDO ZACCHI Relatoacuterio de Topografia teodolito 2013 Disponiacutevel em lthttpwwwebahcombrcontentABA-AAexmEAArelatorio-topografia-teodolitogt Acesso em 08 de novembro 2013GELLERT W GOTTWALD M HELLWICH M KAumlST-NER H KUumlSTNER H Global seafloor topography from sa-tellite altimetry and ship depth soundingsrdquo Van Nostrand Rei-nhold1989 760pGPS GUIA GPS de Precisatildeo Disponiacutevel em lthttpgpsguiacombrgps-de-precisaogt Acesso em 06 de novembro 2013INCRA Prorrogado prazo de georreferenciamento para imoacute-veis rurais com menos de 500 hectares 2011 Disponiacutevel em lthttpwwwincragovbrindexphpnoticias-sala-de-imprensanoticias11283-prorrogado-prazo-de-georreferenciamento-pa-ra-imoveis-rurais-com-menos-de-500-hectaresgt Acesso em 07 novembro de 2013)INSTITUTO BRASILEIRO DE GEOGRAFIA ESTATIacuteSTICA (IBGE) Recomendaccedilotildees para Levantamentos Estaacuteticos - GPS pp7-8 2008 Disponiacutevel em lt ftpgeoftpibgegovbrdocu-mentosgeodesiapdfrecom_gps_internetpdfgt Acesso em 08 de novembro 2013JOSEacute Erni APOSTILA DE TOPOGRAFIA Santa Maria Uni-versidade Federal de Santa Maria 2009 37pLECHETA Ricardo Google Android aprenda a criar aplica-ccedilotildees para dispositivos moacuteveis com o Android sdk 2 ed Satildeo Paulo Novatec 2010 609 pMARCELO AYRES Entenda como funciona o sistema de GPS 2008 Disponiacutevel em lt httptecnologiauolcombrult-not20080115ult4213u295jhtmgt Acesso em 06 de novem-bro 2013MARCOS NOEacute Medidas Agraacuterias Disponiacutevel em lthttpwwwbrasilescolacommatematicamedidas-agrariashtmgt Acesso em 07 de novembro 2013OFICINA DA NET O que eacute AGPS 2013 Disponiacutevel em lthttpwwwoficinadanetcombrartigo1185gt Acesso em 06 de novembro 2013OLIVEIRA Samuel SISTEMA DE MONITORAMENTO DE VEIacuteCULOS DE TRANSPORTE PUacuteBLICO Porto Alegre Uni-versidade Federal do Rio Grande do Sul 2013 39 p

JanDez 2015

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 27: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

30Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012JanDez 2015

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 28: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

31JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 29: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

32Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

1 IntroduccedilatildeoEste artigo trata sobre o que desenvolvedores na pla-taforma moacutevel Android precisam saber para construir bons aplicativos de georreferenciamento A platafor-ma eacute a que mais cresce no mercado por ser de coacutedigo fonte aberto e estar presente em diversos tipos de dis-positivos e fabricantes Antes de tudo eacute descrito uma abordagem so-bre o que eacute de fato georreferenciamento e qual a sua utilidade Isso ajuda ao leitor para que tenha caso ne-cessaacuterio um breve entendimento de conceitos baacutesico para que se possa entender os especiacuteficos apresenta-dos adiante neste artigo Satildeo descritas tambeacutem as facilidades que a pla-taforma Android fornece para o desenvolvimento de aplicativos de georreferenciamento Como eacute a estru-tura da arquitetura tanto em hardware como em sof-tware e de que forma foram projetados para abstrair camadas complexas de captura de dados geoespaciais e como eacute feita a renderizaccedilatildeo de mapas com a ajuda de APIrsquos Neste artigo para renderizaccedilatildeo de mapas eacute utilizada a API do Google Maps a principal do mer-cado Mas nem tudo eacute a favor Caracteriacutesticas da plataforma como a fragmentaccedilatildeo de hardware in-fluencia pesadamente na qualidade de captura de dados geoespaciais esta que pode ser considerada a maior dificuldade enfrentada pelos desenvolvedores Aleacutem disso os fatores externos como chuva altitude e localizaccedilatildeo que independem de qualquer dispositi-vo vem a tona para aumentar o niacutevel de dificuldade Como se natildeo bastasse o alto consumo de bateria in-crementa ainda mais o problema por isso eacute vital que o desenvolvedor tambeacutem se preocupe com esse fator

Georreferenciamento para a plataforma Android

Leandro Rezende Carneiro de Mendonccedila MSc Gustavo Gomes da Feacute

Faculdade SENAI FATESGRua 227-A ndeg 95 Setor Leste Universitaacuterio - Goiacircnia ndash GO ndash Brasil

leandrorcmprofessor ggomesfegmailcom

Resumo Atualmente o smartphone eacute um bem de consumo desejado por muitas pessoas isso devido a sua capacidade de agregar diversos recursos proporcionando diversas facilidades para o usuaacuterio Um dos recursos mais utilizados atualmente eacute o georreferenciamento com ele acutee possacuteıvel transformar os dispositivos moacuteveis em aparelhos GPS1 portaacuteveis Este artigo forneceraacute uma visatildeo geral de como implementar recursos de georreferenciamento utilizando a API2 Google Android para o desenvolvimento de aplicaccedilotildees para dispositivos moacuteveis e sem fio

Palavras Chaves Android Desenvolvimento Aplicaccedilotildees moacuteveis

durante o desenvolvimento Diante dos problemas apresentados surge um desafio desenvolver um aplicativo que consiga cap-turar dados de georreferenciamento de qualidade e que seja fiel a sua regra de negoacutecio Para realizar tal feito o artigo descreve algumas boas praacuteticas e teacutecni-cas que podem ser usadas e combinadas que podem resolver ou pelo ou menos amenizar algumas dessas dificuldades O que definiraacute quais e de que maneira seraacute a utilizaccedilatildeo dessas teacutecnicas seraacute a regra de negoacute-cio do aplicativo Pra finalizar nada melhor que apresentar ao leitor o Cidadatildeo Participativo para a versatildeo Android um produto final real desenvolvido pelo autor junto a Coordenadoria de TI da Assembleia Legislativa do Estado de Goiaacutes

2 O que eacute georreferenciamentoGeorreferenciamento consiste de uma teacutecnica utiliza-da capaz de relacionar informaccedilotildees como nome de lu-gares ou referecircncias geoespaciais (latitude longitude e coordenadas) a uma localizaccedilatildeo geograacutefica (mapa por exemplo)Olhando para a figura abaixo fica facilmente entender

1Global Positioning System 2Application Programming Interface

Figura 1 Goiacircnia - Goiaacutes (Google Maps acessado em 04092012 2331)

JanDez 2015

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 30: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

33JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

a explicaccedilatildeo A figura 1 mostra um mapa (localizaccedilatildeo ge-ograacutefica) e nele haacute uma aacuterea delimitada pela cidade de Goiacircnia (nome do lugar) desenhada por meio de coordenadas (referencias geoespaciais) Portanto toda e qualquer informaccedilatildeo que possa ser vinculada a uma localizaccedilatildeo geograacutefica eacute considerado teacutecnica de geor-referenciamento Partindo da explicaccedilatildeo acima fica nacuteıtido dizer que todo o processo dessa teacutecnica se divide em duas partes primeiro eacute necessaacuterio a obtenccedilatildeo de dados geoespaciais e segundo eacute preciso relaciona-las a uma determinada localizaccedilatildeo geografica Toda e qualquer soluccedilatildeo utiliza este princiacutepio o que muda eacute a forma de executar ambas as partes do processo Para soluccedilotildees tecnoloacutegicas (gadgets aplicati-vos rastreadores GPS etc) a obtenccedilatildeo desses dados geralmente eacute feita por hardware e a correlaccedilatildeo deles por software Na plataforma Android natildeo eacute diferen-te para desenvolver aplicativos desse tipo eacute essencial saber como eacute a caracteriacutestica do hardware que realiza essa captura e como eacute feita a correlaccedilatildeo delas atraveacutes de software Isso define sua arquitetura

3 Arquitetura Android para georreferenciamento

31 HardwareA captura de informaccedilotildees de georreferenciamento eacute realizada por duas tecnologias de hardware presente nos dispositivos o GPS e conexatildeo de dados Eacute impor-tante ressaltar que nem todos aparelhos possui estes recursos portanto o desenvolvedor deve ficar atento a isso e a versatildeo da plataforma do qual seraacute desenvol-vido o aplicativo

311 Proacutes x ContrasA figura abaixo descreve as vantagens e desvantagens

Figura 2 Comparativo entre as tecnologias atuais de captura de dados (Autoria Proacutepria)

de ambos Repare que ambos satildeo totalmente opostos em caracteriacutesticas poreacutem possui diferenccedilas em desem-penho No quesito consumo de bateria a diferenccedila eacute bastante significativa No GPS a bateria se acaba rapidamente e haacute inclusive um aumento de tempera-tura no dispositivo fato que natildeo acontece por meio da conexatildeo de dados Poreacutem sua precisatildeo eacute muito superior e a diferenccedila na rapidez de captura entre as duas tecnologias eacute mediana Diante dessa contradiccedilatildeo de caracteriacutesticas o desenvolvedor pode ficar com duacutevida em qual esco-lher Essa decisatildeo deve ser tomada sempre levando em consideraccedilatildeo a regra de negoacutecio do aplicativo Em alguns casos a regra exige o uso das duas tecnologias simultaneamente e esta teacutecnica eacute descrita neste artigo

312 Obtenccedilatildeo de dadosPara obter os dados geoespaciais eacute necessaacuterio primei-ramente solicitar ao sistema operacional Android o serviccedilo de localizaccedilatildeo que se chama LocationMana-ger Essa classe eacute responsaacutevel pela gerecircncia do har-dware de captura e quando obtida retorna um objeto do tipo Location que encapsula todos os dados geoes-paciais para qualquer classe que implemente a inter-face LocationLister e seus meacutetodos de tratamento O coacutedigo abaixo mostra como eacute feito o procedimento

Listing 1 Coacutedigo baacutesico de captura de dados geoes-paciais

12 package comexampleexemploartigo34 import androidlocationLocation5 import androidlocationLocationListener6 import androidlocationLocationManager7 import androidosBundle8 import androidwidgetToast9 import androidappActivity10 import androidcontentContext1112 public class MainActivity extends Acti-vity implements LocationListener f1314 Override15 public void onCreate(Bundle savedInstan-ceState) f16 superonCreate(savedInstanceState)17 setContentView(Rlayoutactivity main)1819 Ativa o servico de localizacao20 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVI-CE)21

JanDez 2015

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 31: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

34Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

22 Ativa o GPS para captura23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0 this)2425 g2627 Override28 public void onLocationChanged(Location loc) f2930 O objeto loc vem preenchido com dados geoespaciais31 double latitude = locgetLatitude() Obtem a latitude32 double longitude = locgetLongitude() Obtem a longitude3334 Mostra pro usuario as coordenadas cap-turadas35 ToastmakeText(this rdquoLatitude rdquo + la-titude + rdquo Longitude rdquo + longitudeToastLENGTH SHORT)show()3637 g3839 Metodos de implementacao da interface LocationListener 40 Override41 public void onProviderDisabled(String provider) f g42 43 Override44 public void onProviderEnabled(String provider) f g4546 Override47 public void onStatusChanged(String pro-vider int status Bundle extras) f g4849 g

O meacutetodo LocationListenerrequestLocatio-nUpdates() possui a seguinte assinatura

bull String provider define o provedor de cap-tura de dados geoespacias a ser utilizado Para escolher o GPS utiliza-se o LocationManagerGPS PROVIDER para conexatildeo de dados Loca-tionManagerNETWORK PROVIDERbull long minTime define o intervalo de tempo em milisegundos de captura Se for definido 0 como valor a frequecircncia passa a ser a todo mo-mentobull float minDistance define a distacircncia miacutenima ateacute a proacutexima captura Da mesma forma que o paracircmetro minTime se o valor for 0 o provedor ignora a distacircncia e captura a todo momento Po-reacutem o minTime tem mais prioridadebull LocationListener listener define a classe responsaacutevel por escutar todas as alteraccedilotildees vindas

do provedor escolhido No exemplo acima estaacute definido como this que eacute a proacutepria classe Activi-tyMain

O meacutetodo LocationListeneronLocation-Changed() eacute invocado toda vez em que um dado geo-espacial eacute obtido No exemplo acima eacute extraiacutedo des-ses dados a latitude e longitude e mostrada ao usuaacuterio pela classe Toast

32 Software

321 API Google MapsAtualmente existem algumas APIrsquos livres e pagas para a utilizaccedilatildeo em renderizaccedilao de mapas poreacutem a mais utilizada e do qual seraacute descrita eacute a API do Goo-gle Maps Sua abstraccedilatildeo facilita bastante o trabalho do desenvolver com muitas classes e meacutetodos prontos para serem utilizados aleacutem de uma base de mapas que inclui todo o globo terrestre

322 CaracteriacutesticasPelo fato do Google ser uma empresa inovadora no ramo de georreferenciamento com softwares e ferra-mentas para desenvolvedores faz com que sua API para Android natildeo fique pra traz das outras em faci-lidade afinal a empresa eacute praticamente fundadora e apoiadora da plataforma Poreacutem apesar das facilidades sua utilizaccedilatildeo eacute um pouco burocraacutetica Eacute necessaacuterio que o desen-volvedor tenha cadastro para a obtenccedilatildeo da chave de acesso que permite a renderizaccedilatildeo dos mapas Essa chave eacute obtida a partir do fornecimento do coacutedigo MD5 do certificado responsaacutevel por assinar a aplica-ccedilatildeo Os detalhes da obtenccedilatildeo da chave de acesso foge do escopo deste artigo Para saber mais acesse a documentaccedilatildeo em inglecircs httpsdevelopersgooglecom mapsdocumentationandroidmapkey Em um projeto Android dois passos satildeo ne-cessaacuterios para ter acesso ao uso da API Primeiro eacute necessaacuterio referenciar seu uso no manifesto do proje-to como mostra o coacutedigo (Listing 2) A declaraccedilatildeo na linha 11 especifica que o aplicativo utilizaraacute uma API compartilhada no caso do Google Poreacutem natildeo provecirc acesso aos seus compo-nentes (classes) para o desenvolvimento O segundo passo eacute a definiccedilatildeo do ldquotargetrdquo na propriedade do pro-jeto no Eclipse para qualquer das versotildees do Android que possua a API do Google como mostra a figura 3

JanDez 2015

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 32: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

35JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

323 Principais componentes da API

MapViewA classe MapView eacute a mais importante da API Atra-veacutes dela eacute possiacutevel o acesso aos serviccedilos do Google que permitem o download renderizaccedil ao bem como a adiccedilatildeo de marcadores que satildeo utilizados para definir lugares ou pontos no mapa Como qualquer classe View a melhor manei-ra da utilizaccedilatildeo eacute a declaraccedilatildeo de sua referecircncia como componente em qualquer arquivo xml de layout como

Listing 2 Referecircncia do uso da API do Google Maps

Figura 3 Definiccedilatildeo do target do emulador Android no ambiente de desenvolvimento Eclipse

(Autoria Proacutepria)

mostra Listing 3

Listing 3 Referecircncia da classe MapView em um layout XML

Repare na linha 11 o atributo androidapiKe-y=rdquo0xsGl-uQ9MqFSEVvFKAhCwATre6EV5l6hR-BG Esse coacutedigo eacute a chave de acesso do certificado que assina a aplicaccedilatildeo que permite a renderizaccedilatildeo do mapa Para ambientes de desenvolvimento a IDE Eclipse possui um certificado padratildeo responsaacutevel por assinar automaticamente quando o projeto eacute execu-tado no programa do qual deve-se extrair seu coacutedigo MD5 para obter a chave de acesso codificada Quando o aplicativo estaacute pronto para o ambiente de produccedilatildeo eacute necessaacuterio trocar o certificado por um certificado real de produccedilatildeo Poreacutem a partir daqui a renderiza-ccedilatildeo dos mapas soacute aconteceraacute atraveacutes dos downloads

JanDez 2015

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 33: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

36Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

do aplicativo no Google Play

MapControllerA classe MapController eacute responsaacutevel por gerenciar a renderizaccedilatildeo dos mapasquando o usuaacuterio interage com o mapa bem como controlar os niacuteveis de zoom Apoacutes isso a renderiza-ccedilatildeo eacute feita pela classe MapView

GeoPoint A classe GeoPoint eacute responsaacutevel por representar as coordenadas geoespaciais em pontos de localizaccedilatildeo no mapa Os objetos do tipo GeoPoint armazenam a latitude e longitude em microdegrees (IE6) ou seja eacute necessaacuterio a multiplicaccedilatildeo de coordenadas por IE6 Caso contraacuterio o ponto a aparecer natildeo seraacute mostrado

MapActivityA classe MapActivity nada mais eacute que uma Activity que conteacutem o mesmo ciclo de atividade poreacutem com algumas caracteriacutesticas voltadas para a manipulaccedilatildeo de mapas com meacutetodos peculiares da API do Google O principal meacutetodo desta classe e que deve ser obri-gatoriamente implementado eacute o isRouteDisplayed()Este meacutetodo retorna um tipo boleano e faz parte dos termos de uso da API que serve para informar ao Google se o aplicativo estaacute utilizando qualquer tipo de caacutelculo de rotas se sim retorne true se natildeo false Caso natildeo seja respeitado esta regra estaracutea infringindo o termo de uso da API O coacutedigo abaixo descreve um simples exem-plo que utiliza as classes descritas acima

Listing 4 Utilizaccedilatildeo da API do Google Maps

12 import javautilArrayList3 import javautilList45 import comgoogleandroidmapsGeoPoint6 import comgoogleandroidmapsMapActi-vity7 import comgoogleandroidmapsMapCon-troller8 import comgoogleandroidmapsMapView910 import androidosBundle11 import androidviewView12 import androidviewViewOnClickListe-ner13 import androidwidgetButton14 import androidwidgetTextView15 16 public class ActivityPrincipal extends MapActivity f

1718 TextView txtShowCoordenadas19 Button btTrocarCoordenadas20 MapView meuMapView21 MapController meuMapController22 ListltGeoPointgt lstGeoPoints = new Ar-rayListltGeoPointgt()23 int indexGeoPoint = 02425 Override26 public void onCreate(Bundle savedInstan-ceState) f27 superonCreate(savedInstanceState)28 setContentView(Rlayoutmain)2930 Carregamento de variaveis31 txtShowCoordenadas = (TextView) find-ViewById(Ridtxt show coordenadas)32 btTrocarCoordenadas = (Button) find-ViewById(Ridbutton trocar coordenadas)33 meuMapView = (MapView) findViewById(Ridmapa)34 meuMapController = (MapController) meu-MapViewgetController()3536 Instanciando os GeoPoints 1048576 Necessarioa conversao para microdegrees e ocasting para int37 GeoPoint centroDeGoiania = new GeoPoin-t((int)(1048576 16677718 1E6) (int)(1048576 49267631 1E6))38 GeoPoint centroDeSaoPaulo = new GeoPoin-t((int)(1048576 23548984 1E6) (int)(1048576 46638808 1E6))39 GeoPoint centroDeNovaYork = new GeoPoin-t((int)(40719681 1E6) (int)(1048576 74005966 1E6))4041 Adicionando os pontos a lista42 lstGeoPointsadd(centroDeGoiania)43 lstGeoPointsadd(centroDeSaoPaulo)44 lstGeoPointsadd(centroDeNovaYork)4546 Adicionar por padrao o centro de goia-nia47 meuMapControllersetZoom(16)48 meuMapControlleranimateTo(centroDe-Goiania)49 meuMapViewinvalidate()50 txtShowCoordenadassetText(rdquoLat rdquo + centroDeGoianiagetLatitudeE6() + rdquo Lonrdquo + centroDeGoianiagetLongitudeE6())5152 btTrocarCoordenadassetOnClickListe-ner(new OnClickListener() f5354 Override55 public void onClick(View v) f56 indexGeoPoint++57 Modularizacao para alternar entre os GeoPoints doarray58 GeoPoint g = lstGeoPointsget(indexGeo-

JanDez 2015

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 34: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

37JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

Point 3)59 meuMapControlleranimateTo(g)60 meuMapViewinvalidate()61 txtShowCoordenadassetText(rdquoLat rdquo + ggetLatitudeE6() + rdquo Lon rdquo + ggetLongitudeE6())62 g6364 g)6566 g6768 Override69 protected boolean isRouteDisplayed() f return false g70 g

33 Juntando Hardware e SoftwareComo foi dito anteriormente o georreferenciamento eacute composto pela captura de dados e sua renderizaccedilatildeo O coacutedigo abaixo mostra como eacute realizado este feito A cada vez em que eacute obtido uma coordenada essa seraacute extraiacuteda a latitude e longitude para instan-ciaccedilatildeo de um GeoPoint para ser renderizado por um MapView

Listing 5 Captura e renderizaccedilatildeo de dados geoespa-ciais

12 import comgoogleandroidmapsGeoPoint3 import comgoogleandroidmapsMapActi-vity4 import comgoogleandroidmapsMapCon-troller5 import comgoogleandroidmapsMapView67 import androidlocationLocation8 import androidlocationLocationListener9 import androidosBundle1011 public class ActivityMain extends MapAc-tivity implements LocationListenerf1213 MapView meuMapView14 MapController meuMapController1516 Override17 public void onCreate(Bundle savedInstan-ceState) f18 superonCreate(savedInstanceState)19 setContentView(Rlayoutmain)2021 Ativacao do GPS22 LocationManager lm = (LocationManager)getSystemService(ContextLOCATION SERVICE)23 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 30f this)24

25 meuMapView = (MapView) findViewById(Ridmapa)26 meuMapController = (MapController) meu-MapViewgetController()27 meuMapControllersetZoom(16)28 meuMapViewinvalidate()2930 g3132 Override33 protected boolean isRouteDisplayed() f return false g3435 Override36 public void onLocationChanged(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 public void onProviderDisabled(String provider) f g5152 Override53 public void onProviderEnabled(String provider) f g5455 Override56 public void onStatusChanged(String pro-vider int status Bundle extras) f g57

4 Amenizando os problemasSegue uma lista de problemas jaacute citados na introdu-ccedilatildeo e as soluccedilotildees para amenizaacute-los que faz com que se tenha a garantia de um aplicativo de qualidade com foco no cumprimentoda regra de negoacutecio

41 Lentidatildeo na capturaDesenvolver aplicativos de georreferenciamento para Android eacute um tremendo desafio Isso porque a frag-mentaccedilatildeo da plataforma ou seja diversos dispositi-vos de diversos fabricantes com diferentes hardwares que hospedam o sistema operacional altera significa-tivamente o desempenho de captura de coordenadas Dessa forma o desenvolvedor fica a mercecirc sem saber quando teraacute o dado obtido O desempenho tambeacutem

JanDez 2015

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 35: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

38Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

depende muito da localizaccedilatildeo do dispositivo como lugares fechados e fatores externos como chuva difi-cultam ainda mais A melhor forma de amenizar esse tipo de problema eacute ativar tanto o GPS como a rede de dados para capturar os dados Como a rede de dados tem a caracteriacutestica de responder de forma mais raacutepi-da ela pode servir de ldquocoberturardquo temporaacuteria enquanto o GPS trabalha para obter coordenadas mais precisas O coacutedigo abaixo implementa a soluccedilatildeo descrita

Listing 6 GPS e Conexatildeo de dados atuando simulta-neamente

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationListener9 import androidlocationLocationManager10 import androidosBundle1112 public class ActivityMain extends MapAc-tivity implements LocationListenerf1314 MapView meuMapView15 MapController meuMapController16 LocationManager lm1718 Override19 public void onCreate(Bundle savedInstan-ceState) f20 superonCreate(savedInstanceState)21 setContentView(Rlayoutmain)2223 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2425 Ativacao do GPS e da Conexao de dados simultaneamente26 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)27 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER 0 0networkListener)2829 meuMapView = (MapView) findViewById(Ridmapa)30 meuMapController = (MapController) meu-MapViewgetController()31 meuMapControllersetZoom(16)32 meuMapViewinvalidate()3334 g35

36 private void tratarCoordenadas(Location loc) f37 Extracao da latitude e longitude38 double latitude = locgetLatitude()39 double longitude = locgetLongitude()4041 Instanciacao de um GeoPoint42 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))4344 Renderizacao no MapView45 meuMapControlleranimateTo(geoPointOb-tido)46 meuMapViewinvalidate()47 g4849 Override50 protected boolean isRouteDisplayed() f return false g5152 LocationListener gpsListener = new Loca-tionListener() f53 public void onLocationChanged(Location location) f54 tratarCoordenadas(location)5556 Desativa a conexao de dados pois o GPS ja esta capturando dados57 lmremoveUpdates(networkListener)5859 g60 public void onProviderDisabled(String provider) f g61 public void onProviderEnabled(String provider) f g62 public void onStatusChanged(String pro-vider int status Bundle extras) fg63 g6465 LocationListener networkListener = new LocationListener() f66 public void onLocationChanged(Location location) f67 A obtencao de dados geoespaciais por meio da conexao de dadosgeralmente sera executado primeiro que o GPS68 tratarCoordenadas(location)69 g70 public void onProviderDisabled(String provider) fg71 public void onProviderEnabled(String provider) f g72 public void onStatusChanged(String pro-vider int status Bundle extras) fg73 g7475 Override76 public void onLocationChanged(Location loc) f77 Extracao da latitude e longitude78 double latitude = locgetLatitude()

JanDez 2015

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 36: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

39JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

79 double longitude = locgetLongitude()8081 Instanciacao de um GeoPoint82 GeoPoint geoPointObtido = new GeoPoin-t((int)(latitude 1E6) (int)(longitude 1E6))8384 Renderizacao no MapView85 meuMapControlleranimateTo(geoPointOb-tido)86 meuMapViewinvalidate()87 g8889 Override90 public void onProviderDisabled(String provider) f g9192 Override93 public void onProviderEnabled(String provider) f g9495 Override96 public void onStatusChanged(String pro-vider int status Bundle extras) f g

97 g

Esta teacutecnica pode ser uacutetil para aplicativos que priorizam a rapidez na captura de coordenadas poreacutem natildeo descarta a qualidade sendo alcanccedilada em seguida Outra teacutecnica que pode aumentar o desempe-nho eacute despejar toda a regra de negoacutecio de captura de dados em um Service Pelo fato do componente tra-balhar automaticamente em segundo plano acarreta uma seacuterie de outras vantagens O aplicativo fica mais raacutepido pois haacute uma thread exclusiva no caso o Service para executar operaccedilotildees em segundo plano enquanto que a principal estaacute gerenciando a interface e ciclos da activity e as camadas do aplicativo ficam bem se-paradas como mostra o coacutedigo abaixo

Listing 7 GPS e Conexatildeo de dados atuando simulta-neamente em um Service

12 import androidappService3 import androidcontentContext4 import androidcontentIntent5 import androidlocationLocation6 import androidlocationLocationListener7 import androidlocationLocationManager8 import androidosBundle9 import androidosIBinder1011 public class ServiceMain extends Servi-cef1213 LocationManager lm1415 Override

16 public IBinder onBind(Intent arg0) f17 return null18 g1920 Servico iniciado21 Override22 public void onCreate() f23 superonCreate()2425 ativarListeners()26 g2728 Servico esta sendo finalizado pelo An-droid29 Override30 public void onDestroy() f31 superonDestroy()3233 if(lm = null) f34 lmremoveUpdates(gpsListener)35 lmremoveUpdates(networkListener)36 g3738 g3940 private void ativarListeners() f4142 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)4344 Ativacao do GPS e da Conexao de dados simultaneamente45 lmrequestLocationUpdates(LocationMana-gerGPS PROVIDER 0 0gpsListener)46 lmrequestLocationUpdates(LocationMana-gerNETWORK PROVIDER0 0 networkListener)4748 g4950 LocationListener gpsListener = new Loca-tionListener() f51 public void onLocationChanged(Location location) f52 Mostrar dados da location para o usu-ario5354 Desativa a conexao de dados pois o GPS ja esta capturando dados55 lmremoveUpdates(networkListener)5657 g58 public void onProviderDisabled(String provider) f g59 public void onProviderEnabled(String provider) f g60 public void onStatusChanged(String pro-vider int status Bundle extras) fg61 g6263 LocationListener networkListener = new

JanDez 2015

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 37: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

40Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

LocationListener() f64 public void onLocationChanged(Location location) f65 Mostrar dados da location para o usu-ario66 g67 public void onProviderDisabled(String provider) fg68 public void onProviderEnabled(String provider) f g69 public void onStatusChanged(String pro-vider int status Bundle extras) fg70 g71 g

Uma outra teacutecnica eacute a recuperaccedilatildeo da uacuteltima posilccedilatildeo capturada Eacute possiacutevel mostra-la (contanto que haja conexatildeo com a internet) ateacute que o hardwa-re trabalhe para obter novas posiccedilotildees Isso ajuda na apresentaccedilatildeo do usuaacuterio e da a impressatildeo de que o aplicativo estaacute trabalhando

42 Alto consumo de bateriaA precisatildeo de uma localizaccedilatildeo no Android eacute direta-mente proporcional ao tempo e ao consumo de ba-teria ou seja apoacutes iniciado o processo de obtenccedilatildeo localizaccedilotildees mais precisas levaratildeo maior tempo para serem obtidas e consequentemente mais bateria seraacute gasta Algumas boas praacuteticas durante a solicitaccedilatildeo de coordenadas podem ser utilizadas para amenizar o problema Definir paracircmetros que limita a frequecircncia de requisiccedilotildees para o GPS ou a conexatildeo de dados aju-dar a reduzir o consumo Essa limitaccedilatildeo pode ser tan-to em frequecircncia de tempo definido em milisegundos quanto por distacircncia em metros O uso da conexatildeo de dados tambeacutem eacute outra boa praacutetica se atender regra de negoacutecio do aplicativo

43 Cache da API do GooglePoreacutem como jaacute foi dito nem tudo eacute a favor Uma es-pecificaccedilatildeo dos termos de uso cita que natildeo eacute permi-tido a realizaccedilatildeo cache de mapas ou seja os mapas natildeo deveratildeo ser armazenado em cache para exibiccedilatildeo enquanto o dispositivo natildeo estiver conectado com a internet Isso elimina uma das melhores funcionalida-des para esse tipo de aplicativos que eacute a capacidade do usuaacuterio interagir com o mapa e salvar informaccedilotildees que poderatildeo ser mandadas posteriormente para o ser-vidor Outros motivos que impossibilita explorar a ca-pacidade maacutexima do aplicativo

bull Dispositivos moacuteveis representam mobilidade sendo assim esta caracteriacutestica fica limitada a dis-

ponibilidade de conexatildeobull O georreferenciamento eacute uma aacuterea abrangente que envolve qualquer parte do planeta e muitos deles natildeo possui conexatildeo incluindo os dispositi-vos que utilizam 3Gbull Dependendo da regra de negoacutecio o projeto pode se tornar inviaacutevel De nada adianta capturar dados com GPS se natildeo eacute possiacutevel mostraacute-las no mapa O que se tem a fazer neste caso infelizmen-te eacute informar ao usuaacuterio que ative a conexatildeo de internet do dispositivo

Listing 8 Item 82 dos termos de uso da API do Goo-gle Maps httpsdevelopersgooglecommapsterms

1 82 copy translate modify create a derivative work of pre-fetch cache or publicly display any Content or any part thereof

Todo bom aplicativo que trafega dados pela internet deve tambacuteem de ser capaz de trabalhar sem ela PorEacutem se a renderizaccedilatildeo de mapas for a principal regra de negoacutecio e utilizarmos a API do Google para realizar esse serviccedilo podemos definitivamente des-cartar essa possibilidade Agrave uacutenica forma de amenizar o problema eacute infelizmente informar ao usuaacuterio que ative a conexatildeo para que os mapas possam ser visua-lizados

Listing 9 Cache de dados geoespaciais

1 import comgoogleandroidmapsGeoPoint2 import comgoogleandroidmapsMapActi-vity3 import comgoogleandroidmapsMapCon-troller4 import comgoogleandroidmapsMapView56 import androidcontentContext7 import androidlocationLocation8 import androidlocationLocationManager9 import androidosBundle1011 public class ActivityMain extends MapAc-tivityf1213 MapView meuMapView14 MapController meuMapController15 LocationManager lm1617 Override18 public void onCreate(Bundle savedInstan-ceState) f19 superonCreate(savedInstanceState)20 setContentView(Rlayoutmain)21

JanDez 2015

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 38: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

41JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada

22 meuMapView = (MapView) findViewById(Ridmapa)23 meuMapController = (MapController) meu-MapViewgetController()24 meuMapControllersetZoom(16)25 meuMapViewinvalidate()2627 lm = (LocationManager)getSystemService(-ContextLOCATION SERVICE)2829 Busca a ultima posicao no GPS30 Location location = lmgetLastKnownLoca-tion(LocationManagerGPS PROVIDER)3132 if (location == null) f33 Se nao obtiver busca tambem na conexao de dados34 location = lmgetLastKnownLocation(Loca-tionManagerNETWORK PROVIDER)35 gelse f36 meuMapControlleranimateTo(new GeoPoin-t((int) (locationgetLatitude() 1E6) (int) (locationgetLon-gitude() 1E6)))37 g3839 Ativa os providers4041 g4243 Override44 protected boolean isRouteDisplayed() f return false g4546 g

5 Cidadatildeo ParticipativoO Cidadatildeo Participativo foi desenvolvido pela As-sembleia Legislativa no intuito de aproximar o cida-datildeo agraves autoridades poliacuteticas do estado de Goiaacutes por meio de denuacutencias realizadas tanto na internet pelo portal wwwassembleiagogovbrcidadaoparticipati-vo quanto pelos dispositivos moacuteveis nas plataformas iOs e Android Segue algumas telas do aplicativo para a ver-satildeo Android (figuras 4 e 5)

6 Os benefiacutecios do georreferenciamento para pla-taforma moacutevelEacute uma tendecircncia de todas as aplicaccedilotildees utilizarem recursos de georreferenciamento combinados com o uso de dispositivos moacuteveis Com isso pode-se obter informaccedilotildees precisas sobre a localizaccedilatildeo do usuaacuterio para o fornecimento de conteuacutedo serviccedilos ou produ-tos que mais despertem o interesse do usuaacuterio naquele momento e instante de tempo

Figura 4 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Figura 5 Cidadatildeo Participativo para Android (Autoria Proacutepria)

Muitas regras de negoacutecios empresariais po-dem se beneficiar deste recurso reduzindo os custos e gerando mais lucro para as empresas A API do An-droid torna mais faacutecil o desenvolvimento de aplica-ccedilotildees com recursos de georreferenciamento fazendo com que o desenvolvedor priorize as regras de negoacute-cio da aplicaccedilotildees natildeo perdendo tempo em implemen-taccedilotildees desnecessaacuterias

7 ConclusatildeoEste artigo trouxe uma vis˜ao geral do que eacute desen-volver aplicativos utilizando georreferenciamento na plataforma Android Foram citados as facilidades e problemas tanto doAndroid como fatores externos Diante desse cenaacuterio algumas teacutecnicas foram citadas para fazer com que minimize o impacto provocado pelos obstacuteaculos ci-tados e busque atenderfielmente as regras de negoacutecios

JanDez 2015

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 39: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

42Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Artigo 4

Referecircncias[1] LECHETA R Ricardo Google Android Satildeo Paulo Novatec 2010[2] LECHETA R Ricardo Google Android para Ta-blets Satildeo Paulo Novatec 2011[3] httpsmapsgooglecom Goiˆania-Goiacuteas aces-sado em 23 de outubro[4] httpsdevelopersgooglecommapsdocumenta-tionandroidmapkey acessado em 10 de outubro de 2014[5] httpdeveloperandroidcomreferenceandroidlocationLocationManagerhtml acessado em 8 de ou-tubro de 2014[6] httpdeveloperandroidcomguidetopicsloca-tionstrategieshtml acessado em 8 de outubro de 2014

JanDez 2015

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 40: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

43JanJun 2012 Revista Tecnologia da Informaccedilatildeo AplicadaJanDez 2015

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 41: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

Revista Tecnologia da Informaccedilatildeo Aplicada JanJun 2012

Dica da Professor

44

Sugestotildees de leitura

Carreira de Gestores em TIhttpciouolcombrhttpcarreiradeticombrhttpidgnowuolcombrti-corporativa20130222carrei-

ra-em-ti-certificacoes-itil-voltam-a-ganhar-destaquehttpwwwcadware-technologycomcertificacao

Poacutes-graduaccedilatildeo em Desenvolvimento MobilehttpwwwsenaigocombrsenaisitePosGraduacaoVisua-

lizardovocodigo=142ampv=0

AndroidAndroid Studio Overview | Android Developers developerandroidcomtoolsstudioDownload Android Studio and SDK Tools | Android ht-tpsdeveloperandroidcomsdkhttpwwwtecmundocombrandroid69111-android-stu-dio-ferramenta-criacao-apps-google-ganha-versao-1-0htm

IOSApple - Desenvolvimento de apps corporativos httpswwwapplecombrbusinessacceleratordevelopOs primeiros passo para desenvolver para IOS httpwwwdevmaccombr201008os-primeiros-passos-para-desen-volver-para-ios

Windows PhoneIntroduccedilatildeo - Desenvolvimento de aplicativos do Windows httpsdevwindowscompt-brgetstartedCentro de Desenvolvimento do Windows httpsdevwin-dowscompt-brApps Windows Phone - Microsoft Brasil httpwwwmi-crosoftcombrasilappswindows_phonehtml

Cursoshttpesrrnpbrgtihttpcursostiespecialistascombr

Eventoshttpwwwconip2013combrhttpsbsi2013dceufpbbrpt-brstarthttpwwwcinufpebr~erbr13indexphplang=pthttpwwwtecsifeauspbreventoscontecsiq=en

node17

Empregabilidadehttpempregostrovitbrasilcombremprego-gestatildeo-ti httpempregocathocombrvagasinformatica-ti-enge-

nharia-da-computacao

LivrosAndroid para Desenvolvedoreshttpsbooksgooglecombrbooksisbn=8574524050

Aprendendo Programaccedilatildeo iOS Do Xcode agrave App Storehttpsbooksgooglecombrbooksisbn=8575223631

Desenvolvendo Aplicaccedilotildees para Windows Phonehttpsbooksgooglecombrbooksisbn=8574525200

Possui graduaccedilatildeo em Ciecircncia da Computaccedilatildeo pela Pontifiacutecia Universida-de Catoacutelica de Goiaacutes (2000) e mestrado pela Universidade do Vale do Rio dos Sinos (2006) Atualmente eacute professor universitaacuterio da Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial (FATESG) e do Instituto de Poacutes-Gra-duaccedilatildeo (IPOG) Foi Ex-Gerente de Tecnologia da Informaccedilatildeo da Secretaria de Ciecircncia e Tecnologia do Estado de Goiaacutes Tem experiecircncia na aacuterea de Ciecircncia da Computaccedilatildeo com ecircnfase em Engenharia de Software e Rede de Computadores atuando principalmente nos seguintes temas Engenharia de Software Design Patterns Sistema de Informaccedilatildeo Automaccedilatildeo Governanccedila em TI Tecnologia da Informaccedilatildeo e Redes de Computadores

MSc Ricardo de Andrade Kratz

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 42: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam

JanJun 2012 Revista Tecnologia da Informaccedilatildeo Aplicada45

JanDez 2015

Page 43: Revista da Faculdade SENAI FATESG · Pensei que se marcasse o caminho com o bar-bante, eu conseguiria retornar. Retornar ao princípio, à ... Harpa Meus versos são como água, voam