2012-11-27 82 views
0

可能重複:
What is the ideal data type to use when storing latitude/longitudes in a MySQL database?我應該使用double類型來保存mysql數據庫中的座標嗎?

我有GPS座標和一些服務提供商的轉換地圖座標保存到dababase。我不知道哪種類型的數據對我來說是明智的保存,varchar,float,double?也很容易使用。

我應該根據這些數據進行查詢,例如查找位置'大於'或'小於'某個距離。

「雙」似乎沒問題。但是當我看着它保存在數據庫中的值。它看起來不太好。它添加了很多零到最後,因爲我必須設置一個小數和長度,這只是基於我擁有的數據的猜測。它可能會改變的風險。事實證明,我不能在小數點後面有數據。我只是查看了所有現有的數據,如果我這樣做。

我不知道哪種方法是高效和正確的。

有沒有人有這方面的經驗?

+0

你有mysql作爲db。但是你用什麼前端?所以你可以使用一個數據類型,可以很容易地從mysql轉換/解析到你的前端語言:)相應地選擇。否則,你只會知道你保存數據的XYZ類型後沒有解析器..但是,雖然最不可能的。 – bonCodigo

回答

4

使用float而不是double,除非您是一位計劃三英畝停車場或橋樑的土木工程師。在這種情況下,您已經知道您是使用Lambert還是Universal Transverse Mercator投影來繪製您的地圖,以及您將基準高度的基準。如果這句古語可能在古桑克斯特里給你,你只需要漂浮,而不是雙倍。

GPS座標和用於將他們的東西像商店取景器根本不具備更高的精度比浮動提供了傳統的半正矢算法。造成這種情況的原因很複雜,但它們與地球不是一個完美的領域有關。

順便說一句,-xxx.yyyyy顯示精度對於MySQL來說很好。

SELECT FORMAT(latitude, 5) AS latitude 

做什麼你需要從你的顯示器上去掉大量尾隨零。

0

我使用MySQL的DECIMAL數據類型,也可以用來處理在座標系負值。

相關問題