1
wesley 2016-10-10 17:18:11 +08:00
计算距离最近的
|
2
wanderingFaker OP @wesley 嗯 我也是这样想的 但怎样实现呢,数据全部取出来再计算比较吗?
|
3
shlabc 2016-10-10 17:30:41 +08:00
CREATE FUNCTION GetDistance
( @GPSLng DECIMAL(12,6), @GPSLat DECIMAL(12,6), @Lng DECIMAL(12,6), @Lat DECIMAL(12,6) ) RETURNS DECIMAL(12,4) AS BEGIN DECLARE @result DECIMAL(12,4) SELECT @result = 6378137.0*ACOS(SIN(@GPSLat/180*PI())*SIN(@Lat/180*PI())+COS(@GPSLat/180*PI())*COS(@Lat/180*PI())*COS((@GPSLng-@Lng)/180*PI())) RETURN @result END GO 这是一个在网上找的 SQL Server 的 2 个地图标记距离计算函数,实测有效,具体调用这个函数的 SQL 语句自己写即可, mysql 版、 oracle 版都可类似修改 |
4
akira 2016-10-10 17:33:48 +08:00
mysql 5.6 以后 支持坐标类型和坐标距离计算了
|
5
mcfog 2016-10-10 19:26:19 +08:00
补充楼上,
mysql 版本老的话,存 geohash 字符串前缀 like 不限 mysql 的话, redis / mongo 都支持 |