最近在做一个app的服务器端接口,当前位置寻找酒店,从近到远排序。
在mssql数据库新建一个函数
create FUNCTION [dbo].[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=6371.004*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语句 有近到远排序
select *,dbo.GetDistance(当前经度,当前维度,经度字段,维度字段) AS dis FROM 表名 order by dis