我知道postgres有一個用於存儲地理座標的數據類型。但是我正在尋找一個RDBMS不可知論的解決方案。目前我在MySQL中使用Decimal(25,20)。我可能會使用這些數據來查找這些位置,這些位置是根據給定位置後面給定的距離來查找的。這將是存儲這種數據的最佳方法?用於在數據庫中存儲地理定位的最有效方式
5
A
回答
1
5
另一個好方法是將這些值乘以一個常量並將它們存儲爲整數值。僅使用整數也可以幫助加速計算。
除非您嚴格需要精度,否則應該只需要在小數點後面存儲5個以上的值。
這個Latitude Longitude Data Storage Specification給出了一個顯示精度與小數位數的圖表。
# decmal places, example, precision
5 51.22135 ± 0.8 m
6 50.895132 ± 0.08 m
7將工作爲8mm或約0.314英寸。
0
正在關注@vfilby's回答,爲什麼不把數字的兩半存儲爲兩個單獨的int類型?
1
AFAIK,MS SQL Server 2008支持將GeoLocations作爲DataType。我知道你在使用MySQL,但是我想我會在這個問題上提到它。
0
我一直使用4字節的浮點列來保存經度和緯度,因爲精度誤差遠遠小於我們使用的設備的精度。這可能不是你的應用程序的情況,但如果是這樣的話,你不能獲得比浮動更多的RDBMS不可知論。
1
vfilby's answer可能是最好的一個,但許多RDBMS都有索引性格比索引密集整數(或浮點數)領域領域更好的支持。由於這個原因,我可能會首先推薦轉換數據:如果你想找到值「接近」另一個值,你還需要一個保存這個值的函數 - 也許通過轉換爲base36和_
-padding小數點,但如果你只需要一個精確的匹配,幾乎任何快速哈希函數都可以。
再說一次:如果你沒有很多數據,或者你沒有使用這樣的RDBMS,請執行什麼操作vfilby suggested。
相關問題
- 1. 使用Phonegap在本地存儲數據庫的最佳方式
- 2. 在SQLCe數據庫中存儲對象的最有效方式是什麼?
- 3. 在MySQL中存儲IP地址的最有效方式
- 4. 將數據庫中的IP地址存儲爲最佳方式
- 5. 如何有效地在數據庫中存儲多個數據?
- 6. 在C#中,存儲器中用於處理數據庫行的最小內存佔用方式是什麼?
- 7. 在數據庫中處理退款或/存儲信用的最佳方式?
- 8. 在SQL Server中存儲數字11.111的最有效方式
- 9. 用於本地存儲的數據庫
- 10. 最有效的方式來存儲和遍歷這些數據?
- 11. 存儲財務數據的最有效方式(Python)
- 12. 用於存儲數字數據的最有效的Django模型
- 13. 在.NET中本地存儲數據的最佳方式(C#)
- 14. HTML5地理位置,JavaScript和數據庫中的存儲
- 15. 在數據庫中存儲一對多列的最佳方式
- 16. 將標籤存儲在數據庫中的最佳方式?
- 17. 在SQL Server數據庫中存儲GUID值的最有效方法
- 18. 用於存儲AJAX數據庫憑證的最佳(最安全)方式
- 19. 在數據存儲中存儲元組的有效方法
- 20. 存儲用戶消息的最佳方式:MySQL數據庫或其他地方?
- 21. 將國際地址存儲在數據庫中的「最佳」方式是什麼?
- 22. 在Redis中存儲32位有符號整數的內存有效方式
- 23. 在Amazon DynamoDB中存儲IP地址的最有效方法?
- 24. 在AS3中存儲和解析數據的最有效方式是什麼?
- 25. 在MySQL中存儲URL的最有效方式是什麼?
- 26. 在Android中存儲字符串的最有效方式
- 27. 用本地數據庫在WPF中存儲/處理文件附件的最佳方式是什麼?
- 28. 最高效的數據庫日期存儲方法?
- 29. 最好的方式來存儲和檢索數據在Android中的數據庫
- 30. PHP:在數據庫中存儲簡單緩存數組的有效方法?
DataTypes是GEOGRAPHY和GEOMETRY。他會想使用GEOGRAPHY。 – 2009-07-08 13:38:21