-- 使用 ST_Distance_Sphere 计算两个地理坐标点之间的距离(单位:米)
-- 创建一个包含地理坐标点的表
CREATE TABLE locations (
id INT PRIMARY KEY,
name VARCHAR(100),
coord POINT
);
-- 插入一些示例数据
INSERT INTO locations (id, name, coord) VALUES
(1, 'Location A', ST_PointFromText('POINT(116.397428 39.916527)')), -- 北京
(2, 'Location B', ST_PointFromText('POINT(121.473701 31.230416)')); -- 上海
-- 查询两个地点之间的球面距离
SELECT
name AS from_location,
(SELECT name FROM locations WHERE id = 2) AS to_location,
ST_Distance_Sphere(coord, (SELECT coord FROM locations WHERE id = 2)) AS distance_in_meters
FROM
locations
WHERE
id = 1;
-- 解释:
-- 1. `ST_PointFromText` 函数用于将 WKT (Well-Known Text) 格式的点转换为 MySQL 的几何类型。
-- 2. `ST_Distance_Sphere` 函数计算两个地理坐标点之间的球面距离,结果以米为单位。
-- 3. 在上面的例子中,我们计算了北京和上海之间的距离。
下一篇:mysql新增用户
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站