(Difference between revisions)

Archived:S60 3rd Edition でのGPS API

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Hamishwillee - Fix typo)
hamishwillee (Talk | contribs)
m (Hamishwillee - Fix translation link)
(One intermediate revision by one user not shown)
Line 82: Line 82:
位置を選ぶ前に見るために使う(簡単な再利用できる)コンテナを含んでいる他のサンプルが、ここにあります:[[File:GeoTagging Example.zip]]
位置を選ぶ前に見るために使う(簡単な再利用できる)コンテナを含んでいる他のサンプルが、ここにあります:[[File:GeoTagging Example.zip]]
<!-- Translation --> [[pt:API GPS para S30 3a edição]]
<!-- Translation --> [[pt:Archived:API GPS para Symbian 3a edição]]
<!-- Translation --> [[en:Archived:GPS API in Symbian 3rd Edition]]
<!-- Translation --> [[en:Archived:GPS API in Symbian 3rd Edition]]

Latest revision as of 06:57, 10 September 2012

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.

The article is believed to be still valid for the original topic scope.

Article Metadata
Code ExampleCompatibilityArticle
By masatoshi
Last edited: hamishwillee (10 Sep 2012)

[edit] 概要

S60 3rd Editionは、GPS測位を完全にサポートしています。内蔵と拡張Bluetooth GPSモジュールの両方をサポートしています。市場には、既にGPSが利用可能な電話機がいくつかあります。Nokia 6110 とNokia N95 です。今後もGPS内蔵の電話機が発売されます。

Nokiaから出されたSmart2Go(別名をNokia マップ)という、無料のGPSナビゲーション・ソフトがあります。GPS測位を利用した、サード・パーティのタイトルもいくつかあります。アプリケーションでGPS測位を使うにはどうしたらよいでしょうか?

[edit] 実装

2つの方法があります。最初の方法は、外部Bluetooth GPSモジュールとロー・レベルのコミュニケーションを行う方法です。これは、S60 2nd Edition で広く使用されました。これには、多くの技術的問題や、いくつかの外部Bluetooth GPS機器で正しく動作しないことがあります。また、Nokia 6110 やNokia N95 電話機の内蔵GPSモジュールとは動作しません。これは、推奨されないやり方です。

推奨される方法は、S60 2nd Edition, Feature Pack 2 で導入されたLocation API を使う方法です。これは、S60 3rd Edition でもサポートされています。

Location API には、いくつかのキーとなるクラスがあります。RPositionServerとRPositioner、TPositionInfo です。最初に、RPositionServerに接続します。次に、RPositionerのオブジェクトを作成し、現在位置を取得するための非同期リクエストを発行します。結果は、TPositionInfo構造体で返されます。

[edit] 使用方法

ここに、CGpsPositionRequest というハイ・レベルなユーティリティ・クラスがあります。これは、次の3つの問題を解決します。1つ目は、ユーザー(プログラマ)からLocation API の詳細と複雑さを全て隠します。2つ目に、これは同期で動作し、ユーザーから非同期の複雑さを全て除きます。3つ目に、位置リクエスト中にプログレス・ダイアログ(ウエイト・ノート)が表示され、エンド・ユーザーは、アプリケーションは動作していることがわかります。次は、使用例です:

    #include "GpsPositionRequest.h"
// variables to hold current locations
TReal latitude, longitude;
// create CGpsPositionRequest object and put it into cleanup stack;
// pass application name as argument
CGpsPositionRequest* request = CGpsPositionRequest::NewLC(
_L("My application"));
// get current location (this operation can be long up to 30 seconds);
// progress dialog is shown to user during this time
TBool result = request->FetchCurrentPostionL(latitude, longitude);
// delete request object
// process result here
if (result)
// success, use latitude and longitude coordinates
// failed getting current position, show error message to user


SOURCE GpsPositionRequest.cpp
LIBRARY lbs.lib


#include "GpsPositionRequest.ra"

CGpsPositionRequest のソース・コードのダウンロードは、ここからです: File:GpsPositionRequest.zip

位置を選ぶ前に見るために使う(簡単な再利用できる)コンテナを含んでいる他のサンプルが、ここにあります:File:GeoTagging Example.zip

This page was last modified on 10 September 2012, at 06:57.
98 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.