You Are Here:

Community: Wiki

This page was last modified on 24 July 2008, at 01:24.

Flash LiteでGoogle Mapsを使ってGPS位置を表示する

From Forum Nokia Wiki


原文(英語): Displaying GPS position using Google Maps images in FlashLite

本ページでは、Flash Lite, KunerLite, Google Static Maps を使用して、端末の現在のGPS座標を表示する方法を示します。 Image:Kuneri_maps_screenshot.jpg

Contents

前もって準備すべきもの

Google Maps APIキーの取得

Google Mapsサービスを使用するため、Google Maps APIキーを取得する必要があります。まだ取得していない場合、下記サイトに行き、サインアップしてAPIキーを取得できます。 http://code.google.com/apis/maps/signup.html

KuneriLiteのダウンロード・インストール

KuneriLiteはFlash Liteの機能を拡張するツールキットで、Flash Liteアプリケーションが、ファイル書き込み、GPSデータの読み込みといったSymbianのネイティブ機能にアクセスできるようにするものです。
本チュートリアルを進めるには、KuneriLiteをダウンロード・インストールする必要があります。 KuneriLiteダウンロードページ

Flash Liteアプリケーションを作成する

Flash Liteムービーを作成する

本例題ではFlash Lite 2.1を使用しますが、それを別バージョン(新旧問わず)に移植することはとても簡単です。空のFlash Liteムービーを作成した後は、以下に示す簡単なステップに従うだけです。

  • メニューから挿入 → 新規シンボル...と辿って「ボタン」を作成し、以下のプロパティを入力します。
    • 「名前」を GpsButton
    • チェックボックスのActionScriptに書き出し最初のフレームに書き出しにチェックを入れる

Image:gpsButtonProperties.jpg

  • ボタンの作成が終了した後、そのボタンを、下記スクリーンショット中にあるようにルートムービー上のステージ底辺部に置き、そのインスタンス名を startButton とします。

Image:buttonOnStage.jpg

ActionScriptコードを入力する

ルートムービー上で、Actionsというラベルのレイヤーを新たに作り、そのActionScriptエディタを開きます。 そして、プロパティを数ヶ所定義します。

// Enter your api key here
var apiKey = 'API_KEY';
 
//If you're using non-commercial version of KuneriLite, you'll not need to change this
var kuneriPath = 'http://127.0.0.1:1001/Basic/';

ここで、コード中で使う、いくつかの有用な関数を定義します。

//We'll call this function when some KuneriLite related errors occur
function kuneriError(error:String)
{
trace("KuneriLite error: " + error);
}
 
//This function will do all calls to KuneriLite servers
//and call the given handler passing response values as argument
function kuneriLoad(url, handler)
{
var loader:LoadVars = new LoadVars();
 
loader.onLoad = function()
{
handler(this);
}
trace("LOADING: " + url);
 
loader.load(url);
}

ここで、ボタンに関連したロジックとして、コードを入力します。ユーザーが startButton を押した時の動作として、

  • GPSを開始する
  • 現在のGPS座標を取得する
  • 取得したGPS座標を中心とした、地図を表示する

KuneriLite GPS pluginについての情報は、以下に示す関連Wikiページで確認できます。 http://wiki.kunerilite.net/index.php?title=GPS_plugin

gpsButtonを押した時に、GPSを開始し、start klCommandを使用します。

startButton.onPress = function()
{
kuneriLoad(kuneriPath + 'GPS?klCommand=start', gpsStarted);
}
function gpsStarted(res:LoadVars)
{
if(res.klError == 0 || res.klError == -11)
{
trace("GPS started");
 
kuneriLoad(kuneriPath + 'GPS?klCommand=read', gpsDataRead);
}
else
{
kuneriError("Error starting GPS!");
}
}

gpsStarted()ハンドラは、以下のことを行います。

  • エラーが全く発生していない(klError = 0)、もしくはGPSが既に開始している場合(klError = -11)をキャッチします。GPSプラグインに関連したエラー一覧については、下記KuneriLite Wikiページをご確認ください。

http://wiki.kunerilite.net/index.php?title=GPS_plugin

  • GPSを開始する際にエラーが発生した場合、上記で定義したkuneriError()関数を呼出します。
  • GPSが正しく開始された場合、KuneriLiteの次の呼出しを行い、ここで現在のGPS座標を取得します(klCommand=read)。

KuneriLiteへのこの呼出しでは、gpsDataRead()ハンドラを呼出します。それを下記に示します。

function gpsDataRead(res:LoadVars)
{
if(res.klError == 0)
{
var lat = res.klPosLatitude;
var lng = res.klPosLongitude;
 
trace("POSITION: " + lat + ", " + lng);
 
loadMap(lat, lng);
}
else
{
kuneriError("Error starting GPS!");
}
}

上記のように、本ハンドラは、KuneriLiteによって何らかのエラーが発生するかどうかをチェックし、エラーがなければ緯度(latitude)と経度(longitude)をそれぞれklPosLatitude,klPosLongitudeプロパティとして取得します。 それが終わったら、loadMap()関数を呼出し、実際にStatic Map画像をロードします。

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);
}

上記関数では、以下の処理をします。

  • 新しい空のムービークリップをムービールートに関連付けます。
  • 上記ムービークリップを座標(0,0)に配置します。
  • 空のクリップ中に240x280ピクセルのマップイメージをJPEG形式でロードするため、MovieClipLoaderを使用します。

それが終わったら、作成したFlashLiteムービーをテストできます。

作成したFlash Liteアプリケーションをテストする

PC上でテストする

実端末にデプロイせずにアプリケーションをテストするため、以下に示す簡単なステップに従う必要があります。

  • デフォルトの設定(port: 1001, key: Basic)で、KuneriLite Emulatorを起動する
  • Flash Liteムービーを起動する
  • Find Me!をクリックし、イメージがロードされるのを待ちます。(エミュレータを使用するので、GPS位置は実際のものではありません。)

KuneriLite Emulatorについての詳細は、以下のリンクをご参照ください。 KuneriLite Emulator

実端末でテストする

アプリケーションを実端末でテストするため、以下の手順に従い、KuneriLite Wizardを使用してSISアプリケーションをパッケージ化する必要があります。 Image:Kunerimaps_wizard_shot.jpg

  • FlashLiteムービーをエクスポートする
  • "Create a new project"で新しくプロジェクトを作成する
  • プロジェクト名(Project name)その他データを入力し、プラグイン(Plug-ins)からGPSを選択する
  • Flash Lite2.xまたは3.xを使用していて、その1つでアプリケーションを起動する場合、"Use external player"オプションにチェックを入れる
  • 常に"Use stub"オプションにチェックを入れることを推奨
  • プロジェクトのMain SWFとして、エクスポートしたSWFファイルを選択する

KuneriLite Wizardについての詳細は、以下のリンクをご参照ください。KuneriLite Wizard Beginner's Guide

リソース類

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qdcZidentifierQSxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2findeE78E2ephpE2fHowE5ftoE5fvibrateE5fphonesE5ffromE5fJavaE5fME45X qdcZpublisherQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fidE2fc764fd1cE2d8b06E2d499aE2d9a6aE2d17c3903d5a65E2fforumE5fnokiaE5fcrawlerE5fagentX qdcZtitleQSxHowE20toE20vibrateE20phonesE20fromE20JavaE20ME45E20E2dE20ForumE20NokiaE20WikiX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqfntypeZWikiContentQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qrssZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qfnZdistributionQUxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2fX qfnZtopicQUqfnTopicZjavaQRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZtypeQUqfntypeZWikiContentQ qfnZupdatedQDx2008E2d10E2d03X qfnZuserE5ftagQSxjavaX qmarsZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqfntypeZWikiContentQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ