-- mysql中心点查询几公里范围其他坐标
CREATE DEFINER=`air`@`%` FUNCTION `mydistance`(sLongitude VARCHAR(20), sLatitude VARCHAR(20),sLongitude1 VARCHAR(20), sLatitude1 VARCHAR(20)) RETURNS double
READS SQL DATA
begin
return ifnull(
ROUND(
6378.138 * 2 * ASIN(
SQRT(
POW(
SIN( ( sLatitude * PI( ) / 180 - sLatitude1 * PI( ) / 180 ) / 2 ),
2
) + COS( sLatitude * PI( ) / 180 ) * COS( sLatitude1 * PI( ) / 180 ) * POW(
SIN( ( sLongitude * PI( ) / 180 - sLongitude1 * PI( ) / 180 ) / 2 ),
2
)
)
) * 1000
),
999999
);
end
使用方式
select mydistance ( 107.80918, 30.67525, longitude, latitude ) juli from table_name where
mydistance ( 107.80918,30.67525, longitude, latitude )<=5000 -- (5000值得5公里)
这篇博客介绍了一个MySQL自定义函数`mydistance`,用于计算两个地理坐标之间的距离(以公里为单位)。函数利用了经纬度和地球半径来计算两点之间的大圆距离。通过这个函数,可以在SQL查询中筛选出特定半径内的坐标记录,例如查找距离给定点5公里以内的所有坐标。这对于地理位置相关的应用,如地图服务或店铺搜索等场景非常有用。
1766

被折叠的 条评论
为什么被折叠?



