1.数据库方法sql
CREATE FUNCTION [GetDistance]
(
@GPSLng DECIMAL(12,6),
@GPSLat DECIMAL(12,6),
@Lng DECIMAL(12,6),
@Lat DECIMAL(12,6)
)
RETURNS DECIMAL(12,2)
AS
BEGIN
DECLARE @result DECIMAL(12,2)
SELECT @result=6371.004ACOS(SIN(@GPSLat/180PI())SIN(@Lat/180PI())+COS(@GPSLat/180*PI())COS(@Lat/180PI())COS((@GPSLng-@Lng)/180PI()))
RETURN @result
END
备注:GetDistance(某一点的经度,某一点的纬度,数据库中经度,数据库中纬度)
2.使用
Select * from (SELECT *,dbo.GetDistance(120,36,slng,slat)AS dis FROM chargeStation)s where s.dis<200 order by s.dis desc