38


8

GPS座標の場合、データベースに有効桁数をいくつ保存する必要がありますか?

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

現在、次の形式で保存されています。

column     type
------------------------
geolat     decimal(10,6)
geolng     decimal(10,6)

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

経度と緯度の複合インデックスがあるため、このインデックスサイズは膨大です。 何も妥協することなく小さくすることができれば、それは素晴らしいことです。

8 Answer


35


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

00001

http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Geographical_coordinates#Precision [赤道で約1メートルの精度を与えます]

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


4


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


3


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

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

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


1


これが不動産向けである場合、行ごとに2バイト節約されるほど多くの家が本当にあるのでしょうか? 正当な理由がない限り、できるだけ精度を維持します。


0


それは、ロケータビリティをどの程度正確にしたいかによって異なります。 明らかに、大きいほど正確になり、小さいほど結果が広くなります。 とにかく大量のデータではないので、値を大きくすることをお勧めします。


0


NMEA Lat / lon出力での通常のGGAセンテンスは、赤道での解像度が約10mのわずか3桁です。 一部のブランドは、1mを与えるためにカスタムの追加桁を追加しています。

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

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


0


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


0


すべての座標が特定の領域にある場合、中心点を修正します(つまり、 現在のポイントの平均を計算し、数値を取得して大声で言うことができます)、このポイントを基準にして座標を保存します。 そうすれば、おそらく最初の2〜4桁の有効数字をスキップして大幅に節約できます。 ただし、真のWGS84座標を返すClassまたはVIEWを介してのみこのデータを処理することを忘れないでください。