
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 都支持 |