web-dev-qa-db-ja.com

GPS座標用にデータベースに何桁の有効数字を保存する必要がありますか?

MySQLデータベースに経度と緯度の両方の座標(GPSデータ)があります。

現在、次のように保存されています。

_column     type
------------------------
geolat     decimal(10,6)
geolng     decimal(10,6)
_

質問:座標データを適切に格納するには、本当にdecimal(10,6)と同じ大きさのデータ型が必要ですか?

私は経度と緯度の複合インデックスを持っているので、このインデックスのサイズは巨大です。何も妥協することなく小さくできるといいですね。

40
teddyk

WGS84 データムは通常、小数点以下5桁の完全な10進表記の座標として与えられるため、緯度(-90〜+90)にはdecimal(7、5)(-90.00000〜90.00000)を使用できます。 )、経度の場合、decimal(8、5)(-180.00000〜180.00000)を使用できます。

.00001 赤道で約1メートルの精度を提供します

DECIMAL/NUMERICデータ型は固定精度のスケーリングされた整数です であり、範囲の正と負の両方の部分が常に利用可能です-精度やスケールには影響しません(明らかにストレージが必要ですが、 DECIMALの場合、その選択肢はありません)

35
Cade Roux

私は常に小数点以下6桁で作業してきました。以前は軍事契約の下でGIS作業を行っていましたが、これで十分でした。

4
Steve Elmer

それはあなたが行っている調査の正確さに依存します。一般に:

  • 6桁の場所は、精度が約10 cmを表す
  • 〜1 cmの小数点以下7桁
  • 小数点以下13桁-atom構造の精度...

したがって、非常に正確な研究、つまり構造プレートの動きを除いて、6桁の使用で十分です


これはwhuberからの 完全な回答のコピーです(GISスタックオーバーフロー):

精度は、測定値が真の値と一致する傾向です。 Precisionは、測定値が実際の値を特定する度合いです。問題は、精度と精度の相互作用についてです。

一般的な原則として、測定値の記録には、精度が組み込まれている以上の精度は必要ありません。精度を使いすぎると、精度が実際よりも高いと人々に誤解させる可能性があります。

一般に、精度を下げる、つまり小数点以下の桁数を少なくすると、精度がいくらか失われる可能性があります。しかし、どのくらいですか?メーターが最初に定義されたことを知っておくのは良いことです(フランスが、革命の頃に古いシステムを捨て、熱心に新しいシステムに置き換えたとき)、1千万個が赤道からポール。それは90度なので、1度の緯度は約10 ^ 7/90 = 111,111メートルをカバーします。 (「約」、その間メーターの長さが少し変わったためです。しかし、それは問題ではありません。)さらに、経度(東西)の長さは、緯度とほぼ同じかそれ以下です。なぜなら、赤道からいずれかの極に向かって移動すると、緯度の円が地球の軸に向かって縮むからです。したがって、小数点以下1桁の6桁目が111,111/10 ^ 6 =約1/9メートル=約4インチの精度であると考えるのは常に安全です。

したがって、たとえば10メートルの精度を必要とする場合、1/9メートルではなく、小数点以下6桁を使用しても本質的に精度を失うことはありません。精度の必要性がサブセンチメートルである場合、少なくとも7桁、おそらく8桁の小数点以下が必要ですが、それ以上の場合はあまり役に立ちません。

小数点以下13桁は、位置を111,111/10 ^ 13 =約1オングストロームに固定し、小さな原子の厚さの約半分になります。

これらのアイデアを使用して、10進度の各桁が意味するものの表を作成できます。

  • 記号は、地球の北か南か、東か西かを示します。
  • ゼロ以外の100桁は、緯度ではなく経度を使用していることを示しています!
  • 十桁は、約1,000キロメートルまでの位置を示します。それは私たちがどの大陸や海にいるかについての有用な情報を私たちに与えてくれます。
  • 単位の桁(1度)は、最大111キロメートル(60海里、約69マイル)の位置を示します。大まかな州や国を知ることができます。
  • 小数第1位は最大11.1 kmの価値があります。ある大都市の位置を隣接する大都市の位置から区別できます。
  • 2番目の小数点の場所は最大1.1 kmの価値があります。これは、ある村を次の村から分離することができます。
  • 小数点第3位は最大110 mに相当します。これにより、大規模な農地や施設のキャンパスを特定できます。
  • 小数点以下4桁目の場所は最大11 mの価値があります。土地の区画を識別できます。これは、干渉のない補正されていないGPSユニットの標準的な精度に匹敵します。
  • 5番目の10進数の場所は最大1.1 mの価値があります。これは、ツリーを互いに区別します。商用GPSユニットでこのレベルの精度を達成するには、差分補正が必要です。
  • 6番目の10進数の場所は最大0.11 mの価値があります。これを使用して、構造を詳細にレイアウトしたり、ランドスケープを設計したり、道路を構築したりできます。氷河や河川の動きを追跡するには十分以上のはずです。これは、GPSを使用して、微分補正されたGPSなどの骨の折れる対策を講じることによって達成できます。
  • 7番目の10進数の場所は最大11 mmの価値があります。これは多くの測量に適し、GPSベースの手法で達成できる限界に近づいています。
  • 10進数の場所は最大1.1 mmの価値があります。これは、構造プレートの動きや火山の動きをグラフ化するのに適しています。永久に修正され、常に実行されているGPS基地局は、このレベルの精度を達成できる可能性があります。
  • 9番目の10進数の場所は、最大110ミクロンの価値があります。顕微鏡の範囲に入ります。地球上の位置について考えられるほとんどすべてのアプリケーションでは、これはやり過ぎであり、どの測量デバイスの精度よりも正確です。
  • 10以上の小数点の場所は、コンピュータまたは計算機が使用され、余分な小数点が役に立たないことに注意が払われなかったことを示します。あなたがデバイスからこれらの数値を読み取っているのでない限り、これは低品質の処理を示している可能性があるので注意してください!
3
maycca

データを増やすよりデータを減らす方が簡単であることに注意してください。通常、データの正確性を高めることは、再測定ができない限り不可能です。そして、再測定にはコストがかかります。あなたの状況や業界について他に何も知らないので、できるだけ多くのデータ/特異性をキャプチャします。

実際に使用するデータは、このセットから選別できます。より高い特異度が必要になる場合は、再測定せずにいつでも再計算できます。

また、生データは個別の要素のセットではないため、インデックスを付けるのが最善の方法かどうかはわかりません。精度が低い/小さいデータポイントのテーブルを作成すると、インデックスがはるかに小さくなります。

3
Mark Canlas

これが不動産用である場合、実際には家が非常に多く、1行あたり2バイトの節約が顕著になるでしょうか。正当な理由がない限り、できる限り精度を維持します。

1
jk.

NMEA緯度/経度出力の通常のGGAセンチメントは、赤道でおよそ10mの解像度でわずか3桁です。一部のブランドは、1mを与えるためにカスタムの余分な数字を追加します。

4桁deg.mm mm/1000も一般的です。

ハイエンドの精度のRTK-GPSを使用している場合、mmの精度を得るにはさらに場所が必要になる場合があります

0
Martin Beckett

これは、配置可能性をどの程度正確にしたいかによって異なります。明らかに、大きいほど精度が高くなり、小さいほど結果の幅が広がります。いずれにせよ、あまりデータではないので、値を大きくすることをお勧めします。

0
Sampson

すべての座標が特定の領域にある場合は、いくつかの中心点を修正し(つまり、現在の平均点と四捨五入して、大声で言うことができる数を取得)、この点を基準として座標を保存します。そうすれば、最初の2〜4桁の最上位桁をスキップできるため、大幅な節約につながります。ただし、このデータは、真のWGS84座標を返すクラスまたはVIEWを介してのみ処理することを忘れないでください。

0
Simon B.

座標をさまざまな単位で保存(または操作)することもできます。私が取り組んだ1つのプロジェクトでは、すべての座標はlongとして保存されたミリ秒単位でした(おそらくint、それは数年前です)。これは、速度とストレージスペースのために部分的に行われました(これは組み込みシステムでした)。ただし、同じロジックをここで適用できます。

0
miko