×
Namespaces

Variants
Actions
Revision as of 06:25, 9 December 2011 by hamishwillee (Talk | contribs)

Location API(Java, 日本語)

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Article
Translated:
By fnjwikimng
Last edited: hamishwillee (09 Dec 2011)


Location API (JSR-179) は、Java MEアプリケーションでユーザーの位置情報を取得することができます。

端末中におけるその技術の実装には、下記のようなものがあります。

  • GPS技術、例えばNokia N95にあるようなもの
  • Cell IDを持つ、携帯端末のネットワークを使用する
  • 狭い範囲を扱う測位システムを使用する

その中で最も一般的な手法はGPSで、その他の手法はオペレータ専用APIが必要だったり、あるいは建物に機器を設置する必要があったりします。

本APIは、Java実装にjavax.microedition.locationパッケージを追加し、開発者が、ワイアレスの位置ベースアプリケーションやサービスを作成することを可能にし、また、一般的な位置に関する手段を実装することができます。そのAPIはモバイルアプリケーションに端末の現在位置や方位(コンパス方位)についての情報を提供し、ランドマーク(landmark)と呼ばれる端末に格納されるデータベースの使用/利用についてもサポートします。

クラス類

ユーザーの位置を抽象化した Location クラスがあります。そのクラスは、座標(緯度、経度)データを持ち、速度など、場所に関するオプションの情報を持つこともあります。

また、名称やそれに関する記述を含む Landmark オブジェクトを定義することもできます。Landmarkオブジェクトは今後使用するために、端末中の LandmarkStore に格納することができます。その端末がコンパスをサポートする場合、Orientationクラスを保有することもできます。

Criteriaクラスは、端末の位置取得手法に影響を及ぼすキークラスです。

// 以下に示すサンプルコードは、Location APIの使用法を記述しています。

	  double lat,lon;
QualifiedCoordinates qc=null;
Criteria cr=new Criteria();
cr.setHorizontalAccuracy(500);
cr.setVerticalAccuracy(500);
cr.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);
LocationProvider lp=LocationProvider.getInstance(cr);
Location loc=lp.getLocation(60);
qc=loc.getQualifiedCoordinates();
AddressInfo adinfo = loc.getAddressInfo();
String place="";
if(adinfo!=null){
place = adinfo.getField(AddressInfo.COUNTRY);
}
 
// To get the latitude and longitude
lat = qc.getLatitude();
lon = qc.getLongitude();

LocationProviderクラスから、更新情報を取得する: javax.microedition.location.LocationListener

LocationListener インタフェースの setLocationListener メソッドは、以下のような記述で、更新情報を取得するために使われます。

setLocationListener( listener, interval, timeout, maxAge );

  • interval - 更新頻度の固定値。秒単位で設定。
  • timeout - タイムアウト時間。秒単位で設定。
  • maxAge - 取得済み位置情報を、キャッシュ情報として保持しておける最大時間。
58 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.

×