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
本文介绍了一个SQL函数GetDistance,用于计算两点之间的地理距离。该函数接收四参数:目标点的经度、纬度,以及数据库中存储的另一点的经度和纬度。通过地球半径和经纬度转换为弧度后的余弦公式,返回两点间的大圆距离。适用于地理信息系统(GIS)和位置服务应用。
170

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



