|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
Objectcom.docomostar.device.location.Location
public class Location
測位結果を表します。 このオブジェクトには、緯度・経度・高度・測地系・水平方向の精度といった位置情報、 ならびに測位時刻が格納されています。
緯度や経度の正負の解釈は以下の通りです。
| 正の角度 | 0 | 負の角度 | |
|---|---|---|---|
| 緯度 | 北緯 | 赤道 | 南緯 |
| 経度 | 東経 | 本初子午線 | 西経 |
プログラマが 測位を実施すると、
測位結果が格納されたこのクラスのインスタンスが返却されます。
| パラメータ | オプション/必須 | 説明 | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| lat | 必須 | 緯度 | ||||||||||||||||||||||||
| lon | 必須 | 経度 | ||||||||||||||||||||||||
| alt | オプション | 標高 | ||||||||||||||||||||||||
| geo | 必須 |
測地系
このパラメータ値のアルファベット部は小文字をサポートします。 |
||||||||||||||||||||||||
| x-acc | オプション |
測位レベル 精度(水平誤差)との関係は以下になります。
|
Location オブジェクトの経度に東経 180 度も設定可能です。
Locationオブジェクトの経度に東経 180 度が指定された場合、
西経 180 度に変換されます。
| フィールドの概要 | |
|---|---|
static int |
ACCURACY_COARSE
「測位レベル 1」に対応する精度の最悪値 [m] です(=2147483647)。 |
static int |
ACCURACY_FINE
「測位レベル 3」に対応する精度の最悪値 [m] です(=49)。 |
static int |
ACCURACY_NORMAL
「測位レベル 2」に対応する精度の最悪値 [m] です(=299)。 |
static int |
ACCURACY_UNKNOWN
精度が不明であることを表します(=-1)。 |
static int |
ALTITUDE_UNKNOWN
高度が不明であることを表します(=0x80000000)。 |
static int |
PREFIX_DIRECTION
緯度・経度を表す文字列の表記方法として、 先頭に N/S/W/E を指定することを表します(=0)。 |
static int |
PREFIX_SIGN
緯度・経度を表す文字列の表記方法として、 先頭に (+)/- を指定することを表します(=1)。 |
| コンストラクタの概要 | |
|---|---|
Location(Degree latitude,
Degree longitude)
緯度・経度を指定して、このオブジェクトを生成します。 |
|
Location(Degree latitude,
Degree longitude,
int altitude,
int datum,
long timestamp,
int accuracy)
緯度・経度・高度、基づいている測地系、測位時刻、水平方向の精度を指定して、 このオブジェクトを生成します。 |
|
Location(String url)
位置情報 URL を指定して、このオブジェクトを生成します。 |
|
Location(String url,
int altitude,
long timestamp)
位置情報 URL、高度、測位時刻 を指定して、このオブジェクトを生成します。 |
|
Location(String latitude,
String longitude,
int altitude,
int datum,
long timestamp,
int accuracy)
緯度・経度・高度、基づいている測地系、測位時刻、水平方向の精度を指定して、 このオブジェクトを生成します。 |
|
| メソッドの概要 | |
|---|---|
Degree |
calculateAzimuth(Location dst)
このオブジェクトに対応する位置から、 指定された目的地への方位角を計算します。 |
double |
calculateDistance(Location dst)
このオブジェクトに対応する位置と、指定された目的地との地表面の距離を計算します。 |
int |
getAccuracy()
水平方向の精度を [m] 単位で取得します。 |
int |
getAltitude()
高度を取得します。 |
int |
getDatum()
このオブジェクトの緯度・経度・高度が基づいている測地系を取得します。 |
String |
getJointRFIURL()
このオブジェクトに対応する位置情報 URL のクエリー文字列 (Joint RFI 形式) を取得します。 |
Degree |
getLatitude()
緯度を取得します。 |
String |
getLatitudeString(int prefix,
int unit)
緯度の、指定された方位の接頭辞と単位における文字列表現を返します。 |
Degree |
getLongitude()
経度を取得します。 |
String |
getLongitudeString(int prefix,
int unit)
経度の、指定された方位の接頭辞と単位における文字列表現を返します。 |
long |
getTimestamp()
測位した時刻をミリ秒単位で取得します。 |
Location |
transform(int datum)
このオブジェクトを、指定された測地系に変換した Location オブジェクトを取得します。 |
| クラス Object から継承されたメソッド |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
public static final int ACCURACY_FINE
getAccuracy(),
定数フィールド値public static final int ACCURACY_NORMAL
getAccuracy(),
定数フィールド値public static final int ACCURACY_COARSE
getAccuracy(),
定数フィールド値public static final int ACCURACY_UNKNOWN
getAccuracy(),
定数フィールド値public static final int PREFIX_DIRECTION
getLatitudeString(int, int),
getLongitudeString(int, int),
定数フィールド値public static final int PREFIX_SIGN
getLatitudeString(int, int),
getLongitudeString(int, int),
定数フィールド値public static final int ALTITUDE_UNKNOWN
getAltitude(),
定数フィールド値| コンストラクタの詳細 |
|---|
public Location(Degree latitude,
Degree longitude)
Location(latitude, longitude, ALTITUDE_UNKNOWN,
LocationProvider.DATUM_WGS84,
System.currentTimeMillis(),
0)
を呼び出すことと等価です。
latitude - 緯度を表す Degree オブジェクトを指定します。
表現する角度が、区間 [-90度, 90度] に含まれている必要があります。longitude - 経度を表す Degree オブジェクトを指定します。
表現する角度が、区間 [-180度, 180度]に含まれている必要があります。
UnsupportedOperationException -
NullPointerException -
IllegalArgumentException -
IllegalArgumentException -
public Location(String url)
位置情報 URL を指定して、このオブジェクトを生成します。
Location(url, ALTITUDE_UNKNOWN, System.currentTimeMillis())
を呼び出すことと等価です。
url - 位置情報 URL を指定します。クエリー文字列部分だけを指定しても、
ホスト名やプロトコルスキームを含めた完全な
URL を指定しても構いません。
UnsupportedOperationException -
NullPointerException -
IllegalArgumentException -
public Location(Degree latitude,
Degree longitude,
int altitude,
int datum,
long timestamp,
int accuracy)
latitude - 緯度を表す Degree オブジェクトを指定します。
表現する角度が、区間 [-90度, 90度] に含まれている必要があります。longitude - 経度を表す Degree オブジェクトを指定します。
表現する角度が、区間 [-180度, 180度] に含まれている必要があります。altitude - 高度 [m]
を指定します。
不明な場合には ALTITUDE_UNKNOWN を指定します。datum - 引数で指定した緯度・経度
・高度が基づいている測地系を指定します。
LocationProvider クラスで定義されている
"DATUM_"
から始まる定数を指定できます。timestamp - 測位時刻を、
1970 年 1 月 1 日午前 0 時 (GMT) との差分で指定します。accuracy - 水平方向の精度 [m]
を指定します。
不明な場合は ACCURACY_UNKNOWN を、
1m
未満である場合には 0 を指定します。
UnsupportedOperationException -
NullPointerException -
IllegalArgumentException -
IllegalArgumentException -
IllegalArgumentException -
IllegalArgumentException -
public Location(String latitude,
String longitude,
int altitude,
int datum,
long timestamp,
int accuracy)
緯度・経度・高度、基づいている測地系、測位時刻、水平方向の精度を指定して、 このオブジェクトを生成します。
このコンストラクタでは、緯度や経度に文字列を指定できます。
getLatitudeString(int, int)、
getLongitudeString(int, int)
により定義されているフォーマットに従っていれば、
どの形式であっても正しく解釈されます。
特に、形式によって、正の角度を表す時に
"+" を指定しなければならないものと、
"+" を指定できないものが混在していることに注意してください。
latitude - 緯度を表す文字列を指定します。
表現する角度が、区間 [-90度, 90度] に含まれている必要があります。longitude - 経度を表す文字列を指定します。
表現する角度が、区間 [-180度, 180度] に含まれている必要があります。altitude - 高度 [m]
を指定します。
不明な場合には ALTITUDE_UNKNOWN を指定します。datum - 引数で指定した緯度・経度
・高度が基づいている測地系を指定します。
LocationProvider クラスで定義されている
"DATUM_"
から始まる定数を指定できます。timestamp - 測位時刻を、
1970 年 1 月 1 日午前 0 時 (GMT) との差分で指定します。accuracy - 水平方向の精度 [m]
を指定します。
不明な場合は ACCURACY_UNKNOWN を、
1m
未満である場合には 0 を指定します。
UnsupportedOperationException -
NullPointerException -
IllegalArgumentException -
IllegalArgumentException -
IllegalArgumentException -
IllegalArgumentException -
IllegalArgumentException -
public Location(String url,
int altitude,
long timestamp)
位置情報 URL、高度、測位時刻 を指定して、このオブジェクトを生成します。
位置情報 URL のクエリー文字列としては、
このクラス説明にある形式を指定することができます。
このオブジェクトの緯度・経度、測地系、精度(測位レベル)は、 指定された URL のクエリー文字列に含まれるパラメータ値を基に設定されます。
なお、 このクラス説明にある形式のパラメータについて 「必須」と書かれているパラメータは必ず指定されていなければなりませんが、 「オプション」と書かれているものは指定されていなくても構いません。 「オプション」 のパラメータが指定されていなかった場合のデフォルト値は以下の通りです。
x-acc
が指定されていない場合、
精度には ACCURACY_UNKNOWN が指定されたものとして解釈されます。
alt が指定されていない場合は、
高度として引数 altitude で指定された値が採用されます。
なお、指定されたクエリー文字列の中に、 他の余分なパラメータが指定されていても構いません (そのようなパラメータは単に無視されます)。
url - 位置情報 URLを指定します。クエリー文字列部分だけを指定しても、
ホスト名やプロトコルスキームを含めた完全な
URL を指定しても構いません。altitude - 高度 [m]
のデフォルト値を指定します。
不明な場合には ALTITUDE_UNKNOWN を指定します。timestamp - 測位時刻を、
1970 年 1 月 1 日午前 0 時 (GMT) との差分で指定します。getJointRFIURL()
UnsupportedOperationException -
NullPointerException -
IllegalArgumentException -
| メソッドの詳細 |
|---|
public long getTimestamp()
測位した時刻をミリ秒単位で取得します。
このオブジェクトが、LocationProvider.getLocation()
により取得されたものである場合、取得できる時刻は、
測位結果を受け取った時点の端末時刻であり、
ミニマムスペックでは、その時の精度は1秒です。
public int getDatum()
LocationProvider クラスで定義されている
"DATUM_"
から始まる定数のいずれかです。
public Location transform(int datum)
Location オブジェクトを取得します。
このメソッド呼び出しによる副作用はありません。
計算時に用いられる緯度・経度・高度の値は
DEGREE 単位です。
datum - 変換したい測地系を指定します。
LocationProvider クラスで定義されている
"DATUM_"
から始まる定数を指定できます。
getDatum()
の戻り値と同じ値が指定された場合は、このオブジェクト自身
(this) が返されます。
IllegalArgumentException -
public Degree getLatitude()
緯度を取得します。
Degree オブジェクトを返します。
値域は [-90度, 90度] です。
public String getLatitudeString(int prefix,
int unit)
緯度の、指定された方位の接頭辞と単位における文字列表現を返します。 各引数の組み合わせにおける文字列表現のフォーマットは以下の通りです。
unit = UNIT_DEGREEの場合:
latstring = sign num
num = 緯度の絶対値の10進小数表記 [度] を小数点以下第6位まで表したもの。
小数部は常に6桁で表現し、整数部は先頭には "0" をつけません。
(C言語ライブラリ関数 printf の書式指定文字列 "%.6f" と同等)
に従います。
unit = UNIT_DMSの場合:
latstring = sign degrees "." minutes "." seconds
degrees = Integer.toString(Math.abs(getLatitude().getDegreePart())) の値
(先頭に "0" は付けず、桁数は可変となります)
minutes = Integer.toString(getLatitude().getMinutePart()) の値
(1 桁の場合は、先頭に "0" を 1 つ付加します)
seconds = getLatitude().getSecondPart() の値を、小数点以下第2位まで表したもの。
常に、整数部は2桁、小数部は2桁で表現し、必要に応じて "0" を付加します。
(C言語ライブラリ関数 printf の書式指定文字列 "%05.2f" と同等)
に従います。
unit = UNIT_DMS_2の場合:
latstring = sign2 degrees "." minutes "." seconds
degrees = Integer.toString(Math.abs(getLatitude().getDegreePart())) の値
常に、整数部2桁で表現し、必要に応じて "0" を付加します。
(C言語ライブラリ関数 printf の書式指定文字列 "%02d" と同等)
minutes = Integer.toString(getLatitude().getMinutePart()) の値
(1 桁の場合は、先頭に "0" を 1 つ付加します)
seconds = getLatitude().getSecondPart() の値を、小数点以下第3位まで表したもの。
常に、整数部は2桁、小数部は3桁で表現し、必要に応じて "0" を付加します。
(C言語ライブラリ関数 printf の書式指定文字列 "%06.3f" と同等)
に従います。
sign = sign-except-plus
| "" ; 引数 prefix が PREFIX_SIGN で、角度が 0 か正の値の場合
sign2 = sign-except-plus
| "+" ; 引数 prefix が PREFIX_SIGN で、角度が 0 か正の値の場合
sign-except-plus =
"N" ; 引数 prefix が PREFIX_DIRECTION で、角度が 0 か正の値の場合
| "S" ; 引数 prefix が PREFIX_DIRECTION で、角度が負の値の場合
| "-" ; 引数 prefix が PREFIX_SIGN で、角度が負の値の場合
です。
なお、引数 unit に指定する値によっては、
得られる文字列表現に、単位の変換による丸め誤差が含まれている場合があります。
詳細は Degree クラスの説明を参照してください。
prefix - 方位の接頭辞の表記方法を指定します。
PREFIX_SIGN、
PREFIX_DIRECTION のいずれかの値を指定します。unit - 単位を指定します。
LocationProvider.UNIT_DEGREE、
LocationProvider.UNIT_DMS、
LocationProvider.UNIT_DMS_2 のいずれかの値を指定します。
IllegalArgumentException -
IllegalArgumentException -
public Degree getLongitude()
Degree オブジェクトを返します。
値域は [-180度, 180度) です。
public String getLongitudeString(int prefix,
int unit)
unit = UNIT_DEGREEの場合:
lonstring = sign num
num = 経度の絶対値の10進小数表記 [度] を小数点以下第6位まで表したもの。
小数部は常に6桁で表現し、整数部は先頭には "0" をつけません。
(C言語ライブラリ関数 printf の書式指定文字列 "%.6f" と同等)
に従いますが、
丸め誤差などの原因により "180.000000" ("E180.000000")
が得られた場合には、代わりに
"-180.000000" ("W180.000000")を出力文字列とします。
unit = UNIT_DMSの場合:
lonstring = sign degrees "." minutes "." seconds
degrees = Integer.toString(Math.abs(getLongitude().getDegreePart())) の値
(先頭に "0" は付けず、桁数は可変となります)
minutes = Integer.toString(getLongitude().getMinutePart()) の値
(1 桁の場合は、先頭に "0" を 1 つ付加します)
seconds = getLongitude().getSecondPart() の値を、小数点以下第2位まで表したもの。
常に、整数部は2桁、小数部は2桁で表現し、必要に応じて "0" を付加します。
(C言語ライブラリ関数 printf の書式指定文字列 "%05.2f" と同等)
に従いますが、
丸め誤差などの原因により
"180.00.00.00" ("E180.00.00.00")
が得られた場合には、代わりに
"-180.00.00.00" ("W180.00.00.00")
を出力文字列とします。
unit = UNIT_DMS_2の場合:
lonstring = sign2 degrees "." minutes "." seconds
degrees = Integer.toString(Math.abs(getLongitude().getDegreePart())) の値
常に、整数部3桁で表現し、必要に応じて "0" を付加します。
(C言語ライブラリ関数 printf の書式指定文字列 "%03d" と同等)
minutes = Integer.toString(getLongitude().getMinutePart()) の値
(1 桁の場合は、先頭に "0" を 1 つ付加します)
seconds = getLongitude().getSecondPart() の値を、小数点以下第3位まで表したもの。
常に、整数部は2桁、小数部は3桁で表現し、必要に応じて "0" を付加します。
(C言語ライブラリ関数 printf の書式指定文字列 "%06.3f" と同等)
に従いますが、
丸め誤差などの原因により
"+180.00.00.000" ("E180.00.00.000")
が得られた場合には、代わりに
"-180.00.00.000" ("W180.00.00.000")
を出力文字列とします。
sign = sign-except-plus
| "" ; 引数 prefix が PREFIX_SIGN で、角度が 0 か正の値の場合
sign2 = sign-except-plus
| "+" ; 引数 prefix が PREFIX_SIGN で、角度が 0 か正の値の場合
sign-except-plus =
"E" ; 引数 prefix が PREFIX_DIRECTION で、角度が 0 か正の値の場合
| "W" ; 引数 prefix が PREFIX_DIRECTION で、角度が負の値の場合
| "-" ; 引数 prefix が PREFIX_SIGN で、角度が負の値の場合
です。
なお、引数 unit に指定する値によっては、
得られる文字列表現に、単位の変換による丸め誤差が含まれている場合があります。
詳細は Degree クラスの説明を参照してください。
prefix - 方位の接頭辞の表記方法を指定します。
PREFIX_SIGN、
PREFIX_DIRECTION のいずれかの値を指定します。unit - 単位を指定します。
LocationProvider.UNIT_DEGREE、
LocationProvider.UNIT_DMS、
LocationProvider.UNIT_DMS_2 のいずれかの値を指定します。
IllegalArgumentException -
IllegalArgumentException -
public int getAltitude()
高度を取得します。
高度の測位がサポートされているかどうかは機種依存です。
高度の測位がサポートされていない場合には、
LocationProvider インスタンスに対する
getLocation().getAltitude()
呼び出しは、常に ALTITUDE_UNKNOWN を返します。
なお、コンストラクタ
によって明示的に高度が指定されているインスタンスについては、
指定された高度の値をそのまま返します。
public int getAccuracy()
水平方向の精度を [m] 単位で取得します。
現在の、
精度情報が「測位レベル」としてしか取得できない実装では、
ACCURACY_FINE、
ACCURACY_NORMAL、
ACCURACY_COARSE、
ACCURACY_UNKNOWN
のいずれかしか返されません。
しかしながら、これらのフィールド値はそれぞれの
「測位レベル」における精度値(の最悪値)と一致しているため、
どちらの実装の場合でも同様な方法で精度の大小を比較することが可能です。
なお、コンストラクタによって明示的に水平方向の精度が指定されているインスタンスについては、 指定された水平方向の精度の値をそのまま返します。
ACCURACY_UNKNOWN が返ります。public double calculateDistance(Location dst)
このオブジェクトに対応する位置と、指定された目的地との地表面の距離を計算します。 高度の情報は無視されます。
引数 dst とこのオブジェクトの測地系が異なる場合には、 引数 dst の測地系をこのオブジェクトの測地系に変換した上で、 距離の計算が行われます。 計算時に用いられる緯度・経度などの値は DEGREE 単位 です。
距離の計算に利用されるアルゴリズムは「球面三角法」です。
dst - 目的地を表す Location オブジェクトを指定します。
NullPointerException -
public Degree calculateAzimuth(Location dst)
このオブジェクトに対応する位置から、 指定された目的地への方位角を計算します。
真北(true north)の方向を基準として、 そこから時計回りに指定された目的地の方向をなす角度を計算します。
引数 dst とこのオブジェクトの測地系が異なる場合には、 引数 dst の測地系をこのオブジェクトの測地系に変換した上で、 方位角の計算が行われます。 計算時に用いられる緯度・経度などの値は DEGREE 単位です。
dst - 目的地を表す Location オブジェクトを指定します。
NullPointerException -
ArithmeticException -
public String getJointRFIURL()
このオブジェクトに対応する位置情報 URL のクエリー文字列 (Joint RFI 形式) を取得します。
URL とクエリー文字列の区切り文字である「?」は含まれません。
返却されるクエリー文字列は、
このクラス説明の表にあるJoint RFI 形式のパラメータで構成されており、
application/x-www-form-urlencoded によってエンコードされています。
このオブジェクトが保持している高度が不明な場合は、返される文字列に alt
パラメータは含まれません。
同様に、精度が不明な場合は、
返される文字列に x-acc パラメータは含まれません。
このオブジェクトが Location(String, int, long)
や Location(String) によって生成された場合、
オブジェクト生成時に指定したクエリー文字列と同じ文字列を取得できるとは限りません。
オブジェクトは内部的に DEGREE 単位で値を保持するため、
その単位との変換による丸め誤差が含まれる可能性があります。
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
NTT DOCOMO,INC.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。