我目前在數據庫中存儲緯度/經度值爲6位小數精度。但是,我需要在此數據庫中存儲的某些值具有12位精度。我的數據庫目前設置lat和長ASTMySQL存儲經度,高度精度的經度
FLOAT(10,6)
是否有可能設置的存儲類型,使得它可以處理任6十進制或12位的十進制緯度/經度值?
我目前在數據庫中存儲緯度/經度值爲6位小數精度。但是,我需要在此數據庫中存儲的某些值具有12位精度。我的數據庫目前設置lat和長ASTMySQL存儲經度,高度精度的經度
FLOAT(10,6)
是否有可能設置的存儲類型,使得它可以處理任6十進制或12位的十進制緯度/經度值?
使用DOUBLE
數據類型。
您應該可以非破壞性地改變您現有的桌子以這種方式工作。例如,
alter table `mytable`
change `LAT` `LAT` double NULL ,
change `LONG` `LONG` double NULL
但請注意不要誇大數據的準確性。一個普通的float
的32位浮點經緯度值(最好的準確度)的epsilon在地面上只有幾釐米。 double
的小數點距離很小。幾乎不可思議的是,你的緯度/經度信息是精確的。如果是這樣,除非你使用複雜的地圖投影,否則它並不重要:計算距離的典型半散射公式假定地球是一個完美的球體。事實並非如此。地球的赤道凸起足夠大,以使得球形假設的距離更精確,而數釐米的距離更精確。
注意:當Ollie表示浮球的最佳準確度只有幾釐米時,只有在緯度/經度點0,0(主要子午線與赤道相交處)附近纔是真實的。在美國,用浮球來描述釐米精度的位置是不可能的。經緯度最好使用雙倍。 – TreyA 2012-02-12 14:37:49
你想看看使用空間擴展.. 看看這個鏈接
小數點後12位描述的緯度/經度位置等於千分尺精度。我很好奇應用程序需要在地球上描述一個微米級別的位置? – TreyA 2012-02-12 14:26:48