問題:
處理資料時,以足夠的地圖時,以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以足夠的地圖精度存儲緯度/經度座標至關重要。在這種情況下,要求是容納小數點後 8 位的值。
討論:
引用的 Google 文件建議使用 FLOAT(10, 6) 字段,這最多允許 6 位小數。為了容納 8 位小數,可以考慮使用 FLOAT(10, 8)。不過,還有一個更精確、更適合的解決方案。
解決方案:
MySQL 提供 Spatial 資料類型,而 Point 是一個合適的單點資料類型。用於精確儲存地理座標的值類型。以下範例示範了其用法:
CREATE TABLE `buildings` ( `coordinate` POINT NOT NULL, /* Even from v5.7.5 you can define an index for it */ SPATIAL INDEX `SPATIAL` (`coordinate`) ) ENGINE=InnoDB;
要插入數據,可以使用如下SQL 語句:
INSERT INTO `buildings` (`coordinate`) VALUES (POINT(40.71727401 -74.00898606));
Point 資料類型確保座標以高精度存儲,保留精確地圖計算所需的8 位小數。
以上是MySQL中如何精確儲存小數點後8位的經緯度資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!