NTT DOCOMO and Hitachi Kokusai Electric Know-how & Confidential

com.docomo_um.lang
クラス Degree

java.lang.Object
  上位を拡張 com.docomo_um.lang.Degree

public class Degree
extends java.lang.Object

緯度・経度の角度を表します。 角度は、DEGREE 単位と DMS 単位を取得可能ですが、 どの場合でも、内部的には DEGREE 単位の値が保持されており、 必要に応じてDMS 単位への変換が行われます。 その際、DEGREE 単位から DMS 単位へ変換した場合は、 得られる値の精度が落ちることに注意してください。


コンストラクタの概要
Degree(int degree, int minute, int centisecond)
          DMS 単位で角度を指定して、このオブジェクトを生成します。
Degree(long degree)
          DEGREE 単位(固定小数点数表現)で角度を指定して、このオブジェクトを生成します。
 
メソッドの概要
 int getCentisecondPart()
          この角度を DMS 単位で表した場合の second 部分を 100 倍した値を取得します。
 int getDegreePart()
          この角度を DMS 単位で表した場合の degree 部分を取得します。
 long getFixedPointNumber()
          この角度を DEGREE 単位で表した場合の値を、固定小数点数表現で取得します。
 int getMinutePart()
          この角度を DMS 単位で表した場合の minute 部分を取得します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait
 

コンストラクタの詳細

Degree

public Degree(int degree,
              int minute,
              int centisecond)
DMS 単位で角度を指定して、このオブジェクトを生成します。

-512 度 0 分 0.0 秒以上、512 度 0 分 0.0 秒未満の値が指定できます。 負の角度を指定する場合は、引数 degree を負の値として下さい。 例えば、-40 度 15 分 23.45 秒 を指定したい時には、 new Degree(-40, 15, 2345) とします。

パラメータ:
degree - DMS 単位の degree 部を指定します。 区間 [-512, 512) に含まれている必要があります。
minute - DMS 単位の minute 部を指定します。 区間 [0, 60) に含まれている必要があります。
centisecond - DMS 単位の second 部を100倍した値を指定します。 区間 [0, 6000) に含まれている必要があります。
例外:
java.lang.IllegalArgumentException - 引数 degree が、区間 [-512, 512) に含まれていない場合に発生します。
java.lang.IllegalArgumentException - 引数 minute が、区間 [0, 60) に含まれていない場合に発生します。
java.lang.IllegalArgumentException - 引数 centisecond が、 区間 [0, 6000) に含まれていない場合に発生します。
java.lang.IllegalArgumentException - -512 度 0 分 0.00 秒未満の角度を表現する値の組み合わせが指定された場合に発生します。

Degree

public Degree(long degree)
DEGREE 単位(固定小数点数表現)で角度を指定して、このオブジェクトを生成します。

パラメータ:
degree - 角度を、2-31度を1に換算した整数値で指定します。 -1099511627776 (0xFFFFFF0000000000) 以上 1099511627775 (0x000000FFFFFFFFFF) 以下の値 (41ビットで表現できる値。約±512度) が指定できます。
例外:
java.lang.IllegalArgumentException - 引数 degree に -1099511627776 (0xFFFFFF0000000000) 未満を指定した場合や、 1099511627775 (0x000000FFFFFFFFFF) を超える値を指定した場合に発生します。
メソッドの詳細

getDegreePart

public int getDegreePart()
この角度を DMS 単位で表した場合の degree 部分を取得します。

値域についての正規化は行われません。 すなわち、コンストラクタで +200 度と指定した場合には 200 が、 -250 度と指定した場合には -250 が返されます。 取得した値には、DMS 単位への変換に伴なう丸め誤差が含まれている可能性があります。

戻り値:
DMS 単位で表した場合の degree 部分を返します。

getMinutePart

public int getMinutePart()
この角度を DMS 単位で表した場合の minute 部分を取得します。

取得した値には、 DMS 単位への変換に伴なう丸め誤差が含まれている可能性があります。

戻り値:
DMS 単位で表した場合の minute 部分を返します。

getCentisecondPart

public int getCentisecondPart()
この角度を DMS 単位で表した場合の second 部分を 100 倍した値を取得します。

取得した値には、 DMS 単位への変換に伴なう丸め誤差が含まれている可能性があります。

戻り値:
DMS 単位で表した場合の second 部分を 100 倍した値を返します。

getFixedPointNumber

public long getFixedPointNumber()
この角度を DEGREE 単位で表した場合の値を、固定小数点数表現で取得します。 下位31ビットが小数部を表します。 すなわち、2-31度を1とした整数が返ります。

値域についての正規化は行われません。 すなわち、コンストラクタで +250.0 度と指定した場合には (250 << 31) が、 -210.0 度と指定した場合には (-210 << 31) が返されます。 このオブジェクトが Degree(int,int,int) によって生成された場合、 取得した値には DEGREE 単位への変換に伴なう丸め誤差が含まれている可能性があります。 一方、このオブジェクトが Degree(long) によって生成された場合、 取得した値には誤差は含まれません。

戻り値:
DEGREE 単位(固定小数点数表現)で表した場合の値を返します。

Copyright © 2013 NTT DOCOMO, INC. and Hitachi Kokusai Electric Inc. All Rights Reserved.