Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

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
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX