×
Namespaces

Variants
Actions

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

From Nokia Developer Wiki
Jump to: navigation, search

Archived.pngAquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.

Não recomendamos o desenvolvimento em Flash Lite para aparelhos atuais da Nokia. Todos os artigos relacionados a Flash Lite foram arquivados. A plataforma Nokia Asha e os aparelhos recentes S40 não possuem mais o Flash Lite. O uso de Flash Lite em Symbian é limitado. Por exemplo, informações relativas à plataforma Nokia Belle podem ser encontradas neste link (em Inglês). Informações específicas de Flash Lite para aparelhos S40 ANTIGOS e Symbian podem ser encontradas na Flash Lite Developers Library (em Inglês).

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 14 May 2013

--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

This page was last modified on 14 May 2013, at 10:20.
242 page views in the last 30 days.