4

GPS LocationManagerからHDOPまたはVDOP値を取得するにはどうすればよいですか?

4

5 に答える 5

8

GPS_Location:

double lo=gps_loc.getLongitude();
double la=gps_loc.getLatitude();

Horizo​​ntal_Accuracy:

int horiAcc=(int)(gps_loc.getAccuracy());

HDOP:

int hd= (int) (horiAcc/5);
于 2012-09-04T06:42:42.100 に答える
2

GpsStatus オブジェクトの GpsSatellite オブジェクトから DOP 値の概算 (技術的には生の値) を取得できます。これにより、NMEA 文字列を解析する必要がなくなり、H(orizo​​ntal)、V(ertical)、および P(ositional) DOP を取得できるだけではありません。N(orth)、E(ast)、T(ime)、および G(eometric) DOP を取得することもできます。

GpsSatellite オブジェクトごとに、仰角、方位角、usedInFix、および snr を取得する必要があります。最初にすべてのサテライトを除外し、snr>0 および usedInFix==true のサテライトのみを保持します。

サテライトごとに、各サテライトがマトリックスの行を表すマトリックスを作成し (double の配列として表されます)、Aと呼ぶマトリックスを作成します。

注: これが適切に機能するには、少なくとも 4 つのサテライトが必要です

el=ラジアンでの高度

az=ラジアンでの方位角

Sv=GpsSatellites のコレクション

A[n]={sin(Sv[n].az)*cos(Sv[n].el), cos(Sv[n].az)*cos(Sv[n].el), sin(Sv[ n].el), 1d}

ここが楽しい部分です

DOP マトリックス方程式は次のとおりです。

At = 転置行列 A

(At*A)^-1 = inverse(transpose(A).times(A)) =

EDOP^2 xxx
  xNDOP^2xx
  xx VDOP^2 x
  xxxTDOP^2

明らかな DOP:

EDOP = 平方根(EDOP^2)

NDOP = sqrt(NDOP^2)

VDOP = sqrt(VDOP^2)

TDOP = 平方根(TDOP^2)

派生DOP:

GDOP = sqrt(EDOP^2+NDOP^2+VDOP^2+TDOP^2)

HDOP = sqrt(EDOP^2+NDOP^2)

PDOP = sqrt(EDOP^2+NDOP^2+VDOP^2)

于 2016-07-25T15:43:39.647 に答える
1

精度は通常、ロケーション クラスの GPS の HDOP を指します。ただし、両方が必要な場合は、 NmeaListenerを試して生の NMEA 文字列を取得し、それを解析して HDOP と VDOP を取得できます。

于 2011-08-09T08:42:22.560 に答える
1

を登録して、文 (HDOP、VDOP、および PDOP を含む) または文 (修正のために HDOP を含む)NMEAListenerを解析する必要があります。GSAGGA

詳細については、NMEA 0183 規格を参照してください。

于 2012-02-20T10:41:27.947 に答える