×
Namespaces

Variants
Actions
Revision as of 02:13, 6 October 2011 by hamishwillee (Talk | contribs)

Archived:Mostrando a localização GPS utilizando as imagens do Google Maps no Flash Lite

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Exemplo de código
Código fonte: Media:KuneriGpsMap.zip

Compatibilidade
Plataforma(s): Flash Lite 2.1

Artigo
Tradução:
Por edprado 20 April 2010
Última alteração feita por hamishwillee em 06 Oct 2011

--edprado 17:22, 20 April 2010 (UTC)


Original: Displaying GPS position using Google Maps images in Flash Lite (Inglês)

Este artigo explica como mostrar a posição atual do telefone baseado no GPS Flash Lite, KuneriLite e Google Static Maps.

Kuneri maps screenshot.jpg

Contents

Pré-requisitos

Consiga o seu próprio serial do Google Maps API

NOTA: A utilização deste código com a Google Maps API grátis quebra os termos da Google Terms and Conditions (section 10.8). Você deverá comprar uma licença Enterprise se você deseja usar a Google Maps API que é mostrado neste exemplo.

Para utilizar os serviços do Google Maps, você precisa de um serial. Se você não tiver um, você pode cadastrar-se e consegui-la aqui: http://code.google.com/apis/maps/signup.html

Baixar e Instalar o KuneriLite

KuneriLite é um conjunto de ferramentas (toolkit) que complementa as funcionalidades do Flash Lite, permitindo que as aplicações acessem nativamente as funcionalidades do Symbian OS, como escrita de arquivos e leitura de informações do GPS.

Para continuar com este tutorial, baixe e instale o KuneriLite : KuneriLite Página para Download.

Flash Lite

Criando um aplicação em Flash Lite

Neste exemplo, é utilizado o Flash Lite 2.1. Entretanto, adaptá-lo para versões mais novas ou antigas não será difícil. vvocê terá que criar um Movieclip em branco, como explicado a seguir:

  • Crie um botão indo em Insert > New Symbol... e adicione estas propriedades:
    • Digite GpsButton no campo nome(name).
    • Marque as caixas de verficação(checkbox) Export for ActionScript e Export in first frame .

GpsButtonProperties.jpg

  • Desenho de um botão. Você pode, por exemplo, adicionar um rótulo(label) "Find me!" sobre ele.
  • Depois de você ter desenhado o botão, coloque-o no palco(Stage) na parte inferior e dê o nome de sua instância(Instance name) como startButton.

ButtonOnStage.jpg

Código ActionScript

No Movieclip principal, crie um nova camada(layer) chamada Actions e abra o editor de código ActionScript(pressione F9 no teclado). Primeiro, defina as propriedades:

// Digite o serial da API aqui
var apiKey = 'serial';
 
//Se você usa a versão grátis, não comercial, do KuneriLite, você não precisa alterar este instrução abaixo
var kuneriPath = 'http://127.0.0.1:1001/Basic/';

A seguir, é interessante mostrar algumas funções muito úteis que são utilizadas no código:

//Esta função é chamada quando ocorre algum erro no KuneriLite
function kuneriError(error:String)
{
trace("Erro no KuneriLite: " + error);
}
 
//Esta função fará todas as chamadas ao servidores KuneriLite
//e chamará o handler passando a resposta como argumento
function kuneriLoad(url, handler)
{
var loader:LoadVars = new LoadVars();
 
loader.onLoad = function()
{
handler(this);
}
trace("Carregando: " + url);
 
loader.load(url);
}

Depois, adiciona-se a lógica do botão. Quando o usuário pressionar o startButton, a aplicação deverá:

  • Iniciar o GPS.
  • Obter a posição atual do GPS.
  • Exibir um mapa centralizado de acordo com a posição do GPS.

Para conseguir mais informações sobre o KuneriLite GPS plug-in, verifique esta página: http://wiki.kunerilite.net/index.php?title=GPS_plugin o GPS é iniciado quando o gpsButton é pressionado, usando o start klCommand:

startButton.onPress = function()
{
kuneriLoad(kuneriPath + 'GPS?klCommand=start', gpsStarted);
}
function gpsStarted(res:LoadVars)
{
if(res.klError == 0 || res.klError == -11)
{
trace("GPS iniciado");
 
kuneriLoad(kuneriPath + 'GPS?klCommand=read', gpsDataRead);
}
else
{
kuneriError("Erro na inicialização do GPS");
}
}

O gpsStarted() tem como finalidade:

  • Verificar se não existem erros (klError = 0) ou se o GPS já foi inicializado (kdError = -11). Para visualizar a lista completa de erros associados com o GPS plug-in, confira neste site: http://wiki.kunerilite.net/index.php?title=GPS_plugin
  • Se ocorrer um erro na inicialização do GPS, chame o kuneriError() função definida acima.
  • Se o GPS for iniciado corretamente, ele fará duas chamadas ao KuneriLite, na primeira ele obterá a posição atual do GPS (klCommand=read) a segunda chamada ao KuneriLite chamará o handler(manipulador) gpsDataRead() definido abaixo:
function gpsDataRead(res:LoadVars)
{
if(res.klError == 0)
{
var lat = res.klPosLatitude;
var lng = res.klPosLongitude;
 
trace("posição: " + lat + ", " + lng);
 
loadMap(lat, lng);
}
else
{
kuneriError("Erro ao iniciar o GPS!");
}
}

Este handler, acima, verifica se existe algum erro lançado pelo KuneriLite se não, obtém as coordenadas de latitude e longitude a partir das propriedades klPosLatitude e klPosLongitude. Depois disto, é chamado a função loadMap() que carrega uma imagem de um mapa estático.

function loadMap(lat:Number, lng:Number)
{
 
var mapClip:MovieClip = _root.createEmptyMovieClip('mapClip', _root.getNextHighestDepth());
 
mapClip._x = 0;
mapClip._y = 0;
 
var mapWidth = 240;
var mapHeight = 280;
 
var loader:MovieClipLoader = new MovieClipLoader();
 
var mapUrl:String = 'http://maps.google.com/staticmap?center=' +
lat + ',' + lng + '&format=jpg&zoom=8&size=' +
mapWidth + 'x' + mapHeight + '&key=' + apiKey;
 
loader.loadClip(mapUrl, mapClip);
}

A função acima:

  • Adiciona um MovieClip em branco ao Stage.
  • Coloca-o na coordenada (0,0).
  • Usa um MovieClipLoader para carregar uma imagem de 240x280 pixels no formato JPEG dentro do mapClip. Depois disto, você pode testar a sua aplicação.

Teste a sua aplicação em Flash Lite

Teste no PC

Para testar sua aplicação sem implantá-la em um dispositivo real:

  • Inicie o KuneriLite emulator com as configurações padrão (porta: 1001, chave: Basic ).
  • Inicie sua aplicação em Flash Lite.
  • Pressione Find Me! e espere que até que a imagem seja carregada(a posição GPS não é real quando testado no emulador).

Para maiores informações sobre o emulador do KuneriLite, veja em KuneriLite Emulator

Teste no dispositivo real

Para testar a sua aplicação no dispositivo real, empacote a sua aplicação em um arquivo .sis utilizando o KuneriLite Wizard:

Kunerimaps wizard shot.jpg

  • Exporte a sua Aplicação em Flash Lite.
  • Cria um novo projeto KuneriLite.
  • Digite o nome da aplicação e outras informações. Selecione GPS como plugins disponíveis(available plug-ins).
  • Selecione a opção "Use external player" se você está desenvolvendo para o Flash Player 2.x ou 3.x.
  • É também recomendado que você sempre selecione a opção "Use stub" .
  • Selecione o arquivo .swf exportado como projeto Main SWF.

Para maiores informações sobre o KuneriLite Wizard, veja este site: KuneriLite Wizard Beginner's Guide.

Recursos

74 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×