This page was last modified 01:16, 27 November 2007.
API GPS para S30 3a edição
From Forum Nokia Wiki
Original: GPS API in S60 3rd Edition
Contents |
Visão geral
S60 3a Edição provê suporte completo ao sistema de posicionamento geográfico GPS. Ambos módulos GPS, interno e externo, são suportados. Existem diversos dispositivos com GPS disponíveis no mercado, entre os quais temos o Nokia 6110 e o Nokia N95. E outros ainda deverão surgir.
A Nokia disponibiliza gratuitamente um sistema de navegação GPS chamado Smart2Go (também conhecido como Nokia Maps). Existem ainda diversos sistemas de outros fabricantes que utilizam o sistema GPS.
Implementação
Existem duas formas de usar o sistema GPS em suas aplicações. O primeiro é através do uso de um dispositivo GPS externo via Bluetooth. Essa solução foi bastante aplicada nos dispositivos S60 2a edição. Ela envolve vários aspectos técnicos e pode não funcionar corretamente com alguns disposititos GPS Bluetooth externos. Além disso, essa solução não irá funcionar com o GPS interno dos Nokia 6110 e N95. É a forma antiga de fazer a coisa.
A outra forma (a recomendada) é usar a API Location que foi introduzida nos S60 2a edição, FP 2 e que também está disponível nos S60 3a edição.
Existem diversas classes na API Location. Entre elas: RPositionServer, RPositioner e TPositionInfo. Primeiro, deve-se conectar usando RPositionServer. Então deve-se criar um objeto RPositioner e lançar uma requisição assíncrona para a localização atual. O resultado será retornado na estrutura TPositionInfo.
Forma de uso
A seguir, apresenta-se uma classe de alto nível chamada CGpsPositionRequest. Ela soluciona três problemas. Primeiro, ela esconde todos os detalhes e complexidade da API Location do usuário (programador). Segundo, ela funciona de forma síncrona e remove toda a complexidade de lidar com requisições assíncronas do usuário. Terceiro, um janela de progresso é exibida durante a requisição de localização. Dessa maneira o usuário final irá ver que a aplicação está sendo executada. Abaixo temos um exemplo de uso.
#include "GpsPositionRequest.h" ... // variáveis para guardar a posição atual TReal latitude, longitude; // cria objeto CGpsPositionRequest e coloca na pilha de limpeza; // passa nome da aplicação como argumento CGpsPositionRequest* request = CGpsPositionRequest::NewLC(_L("My application")); // pega posição atual (esta operação pode levar até 30 segundos); // barra de prograsso é mostrada ao usuário enquanto isso TBool result = request->FetchCurrentPostionL(latitude, longitude); // apaga objeto da requisição CleanupStack::PopAndDestroy(request); // processa o resultado aqui if (result) { // deu certo, usa as coordenada de latitude e longitude aqui } else { // ops... ocorreu um erro ao recuperar a posição, exibe mensagem de erro }
Observe que você deve incluir as seguintes linhas no seu arquivo de projeto MMP:
SOURCE GpsPositionRequest.cpp LIBRARY lbs.lib
Você irá precisar também incluir o arquivo GpsPositionRequest.ra ao seu arquivo de recursos:
#include "GpsPositionRequest.ra"
Links
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Programación de una aplicación JAVA para el Nokia 6610 | blancavillamia | Foro en Español (Spanish Forum) | 1 | 2007-09-04 22:00 |
| Mobile support for GPS... | kannabiran.krish | Symbian Tools & SDKs | 3 | 2007-08-16 23:08 |
| Gps | FelipeHenriques | Mobile Java General | 1 | 2004-03-17 09:22 |
| Hands free | PDV | Mobile Java General | 1 | 2003-02-24 09:26 |
| Nokia 6210 A-GPS | hajbeko | Location Based Services and Navigation | 2 | 2008-06-19 14:13 |
