-- 创建一个包含点类型字段的表
CREATE TABLE location (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
position POINT NOT NULL,
SPATIAL INDEX(position)
);
-- 插入一些示例数据
INSERT INTO location (name, position) VALUES
('Point A', ST_PointFromText('POINT(10 20)')),
('Point B', ST_PointFromText('POINT(30 40)')),
('Point C', ST_PointFromText('POINT(50 60)'));
-- 查询并返回点的位置信息
SELECT name, ST_X(position) AS longitude, ST_Y(position) AS latitude
FROM location;
-- 计算两个点之间的距离(假设使用的是经纬度)
SELECT name, ST_Distance_Sphere(
position,
ST_PointFromText('POINT(10 20)')
) AS distance_in_meters
FROM location;
location 的表,其中包含一个 POINT 类型的字段 position。SPATIAL INDEX 用于对空间数据进行索引,以提高查询性能。ST_PointFromText 函数将文本格式的点转换为 POINT 类型,并插入到表中。ST_X 和 ST_Y 函数分别提取点的 X(经度)和 Y(纬度)坐标。ST_Distance_Sphere 函数计算两个点之间的球面距离(单位为米)。上一篇:mysql修改数据库名称
下一篇:mysql 删除字段sql
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站