6

次のように、MySQL テーブルにロードした対応する緯度/経度を含む都市名のデータセットを取得しました。

都市 ID | 都市名 | 緯度 DECIMAL(9,6) | 経度 DECIMAL(9,6)

一般的な緯度/経度の座標は、54.284758 / 32.484736 のようになります。

ただし、テーブルに正しく表示されるのはスケール 2 の値のみです。つまり、DECIMAL(5,2) に相当します。データは、UTF-8 の目的で OpenOffice Calc からエクスポートされたテキスト CSV からアップロードされます。OpenOffice には小数に関する問題があることは知っていますが、完全な緯度/経度は確かにエクスポートされた CSV に含まれています。メモ帳でCSVを開くと、データは問題ありません。

誰かが私が間違っているかもしれないことを見ることができますか?

ありがとう。

更新: すべての入力に感謝します。すべてをゼロから再作成し、新しいスキーマ ファイル (ORM を使用しています)、新しい CSV エクスポート、新しいテーブル、新しい LOAD DATA INFILE を作成し、正しい 10 進出力で動作します。私を殴る。

4

3 に答える 3

5

これは必要に応じてやり過ぎかもしれませんが、地理データを操作する場合は、MySQL Spatial Extensionsの使用を検討することをお勧めします。

現在使用しているデータ型は、CSV ファイルのデータをそのまま表すのに十分であることを付け加えておきます。インポーターにインポート時に切り捨てられているものがあるか、データを表示するために使用しているもので切り捨てられています。

于 2010-01-27T15:53:42.967 に答える
1

Lat、Long の格納には varchar などの文字列データ型を使用することをお勧めします。これらの座標を広範囲に使用するアプリに取り組んでおり、文字列として保存する際に問題は発生していません。数値として保存すると、精度の問題が発生します。

考慮すべきことだけです。

于 2010-01-27T15:32:35.620 に答える
0

MySQLテーブルでフィールドのタイプがDOUBLEであると宣言してみませんか?桁数および小数点以下の桁数の修飾子はオプションです。

于 2010-01-27T15:56:21.867 に答える