人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLについて

GoogleMapなどの緯度経度の数値を入れる場合、データ型はどうするのが良いのでしょうか。

GoogleMapで表示される数値(小数点以下14桁程度)は全て保存したいたいと考えています。
値を入れないときもあります。

緯度、経度は別のデータとしての保存を考えています。

現在「lat DECIMAL(20,17)」としているのですが、
値を入れない場合、「0.00000000000000000」となってしまいます。

おすすめや一般的な方法を教えてください。

よろしくお願いします。

●質問者: worldtravel
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:MySQL おすすめ データ 小数点 現在
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● gaziro2000
●35ポイント

GoogleMAPって、少数点以下6桁しか持ってないのでは?

うちは、decimal(9,6)にしてます。

ジオクリ http://www.geoclip.jp/

.

ちなみにそれ以外に、度分秒のデータも同時にDBに書いています。

いちいち変換するの面倒なので・・・ご参考まで。

.

是非、サービスができたら教えて下さい。

◎質問者からの返答

ありがとうございます。


ちなみに小数点以下ですが

「googlemap 緯度 経度 取得」で検索した1位のページを参考に...

http://www.geekpage.jp/web/google-maps-api/get-xy.php

地図をクリックすると小数点以下は14桁まで表示されているようです。

(このぺーじは地図の下に表示されます)


http://maps.google.co.jp/

でリンク用のURLを取得しようとすると6桁のようです。


他の方のご意見もお待ちしています。

よろしくお願いします。


2 ● systemkun
●35ポイント

私もGoogle Maps APIを使ってWeb上で地図を表示させるプログラムを作ったことがあります。


その時は建物が特定できる程度の精度があればよかったので、

MySQLで保存する場合はdoubleで十分確保できました。


自分がAPIを使っていたときは、小数点以下は12桁でした。

それにしても、Google Mapsの仕様変更は激しいですね。


念のためどのくらいの精度なのか計算すると。


地球の円周を計算しやすく40,000kmとし、

緯度、経度の小数点精度を8桁とすると、

小数点第8桁における誤差は、


40,000 / 360 = 111.111km = 111,111m( = 経度1度あたりの長さ)


111,111 / 100,000,000 = 0.000111 m = 0.111mm( = 経度 1億分の1度の長さ)


とこの時点でミリ単位以下の精度ですので心配いりませんよ。


もし、度分秒単位も取得できるようでしたら、gaziro2000のされた通りそちらも保存されるといいと思います。

◎質問者からの返答

計算までありがとうございます。

14桁なんて保存しても私のやりたいことには意味がなさそうです...

double でも十分なのですね。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ