MySQL是一種廣泛使用的關系型數據庫管理系統,它支持各種數據類型,包括經緯度字段。經緯度是用來表示地理位置的坐標系。若要在MySQL中存儲經緯度,需要將它們存儲為Decimal類型的字段,并使用經度值和緯度值分別存儲。
CREATE TABLE locations (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
latitude DECIMAL(10,8),
longitude DECIMAL(11,8)
);
該表有id、name、latitude和longitude等字段。經度和緯度的Decimal類型是10和8,11和8。這些數字表示可用位數的總數和小數點后的位數。
一旦有這些字段,我們就可以開始在Table中插入數據。通常,通過API或終端控制臺等工具獲取帶有經緯度信息的外部數據,隨后插入Table的行中。
INSERT INTO locations (name, latitude, longitude)
VALUES
('San Francisco', '37.7749', '-122.4194'),
('New York', '40.7128', '-74.0060'),
('London', '51.5074', '-0.1278')
;
然后,我們就可以用一些查詢語句來查找這些地點中最靠近某一個目標地點的位置。以下是以緯度和經度為變量查詢的SQL語句的示例。
SELECT name, ( ‘’ + latitude + ‘, ‘’ + longitude + ‘’ ) as lat_lng,
/* From a fixed position */
( 3959 * acos(cos(radians(37)) * cos(radians(latitude)) * cos(radians(longitude)
- radians(-122)) + sin(radians(37)) * sin(radians(latitude))) ) AS distance
FROM locations
ORDER BY distance
LIMIT 5;
在這個SQL查詢中,我們選擇了距離某個位置最近的5個地點,并將它們按照距離的順序排列。
在MySQL中使用經緯度字段需要注意的是,需要將Decimal類型的經緯度放入適當的查詢語句中進行計算,并將這些計算總結為有效的坐標距離。
上一篇標準流 css
下一篇樹形菜單的css樣式