首頁 > 資料庫 > mysql教程 > MySQL中如何精確儲存小數點後8位的經緯度資料?

MySQL中如何精確儲存小數點後8位的經緯度資料?

Linda Hamilton
發布: 2024-12-01 11:38:09
原創
883 人瀏覽過

How Can I Precisely Store Latitude/Longitude Data with 8 Decimal Places in MySQL?

MySQL 精確儲存小數點後8 位的經緯度資料

問題:

處理資料時,以足夠的地圖時,以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以便以足夠的地圖時,以足夠的地圖精度存儲緯度/經度座標至關重要。在這種情況下,要求是容納小數點後 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板