GoogleMapなどの緯度経度の数値を入れる場合、データ型はどうするのが良いのでしょうか。
GoogleMapで表示される数値(小数点以下14桁程度)は全て保存したいたいと考えています。
値を入れないときもあります。
緯度、経度は別のデータとしての保存を考えています。
現在「lat DECIMAL(20,17)」としているのですが、
値を入れない場合、「0.00000000000000000」となってしまいます。
おすすめや一般的な方法を教えてください。
よろしくお願いします。
GoogleMAPって、少数点以下6桁しか持ってないのでは?
うちは、decimal(9,6)にしてます。
.
ちなみにそれ以外に、度分秒のデータも同時にDBに書いています。
いちいち変換するの面倒なので・・・ご参考まで。
.
是非、サービスができたら教えて下さい。
私も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 でも十分なのですね。
ありがとうございました。
ありがとうございます。
ちなみに小数点以下ですが
「googlemap 緯度 経度 取得」で検索した1位のページを参考に...
http://www.geekpage.jp/web/google-maps-api/get-xy.php
地図をクリックすると小数点以下は14桁まで表示されているようです。
(このぺーじは地図の下に表示されます)
http://maps.google.co.jp/
でリンク用のURLを取得しようとすると6桁のようです。
他の方のご意見もお待ちしています。
よろしくお願いします。