根据当前所在的坐标点也即经纬度,查找数据库中附近5公里或10公里附近的所有信息。
MSSQL函数
CREATE FUNCTION [GetDistance]
(
@Longitude DECIMAL(12,6),
@Latitude DECIMAL(12,6),
@GPSLongitude DECIMAL(12,6),
@GPSLatitude DECIMAL(12,6)
)
RETURNS DECIMAL(12,4)
AS
BEGIN
DECLARE @result DECIMAL(12,4)
SELECT @result=6371.004*ACOS(SIN(@GPSLatitude/180*PI())*SIN(@Latitude/180*PI())+COS(@GPSLatitude/180*PI())*COS(@Latitude/180*PI())*COS((@GPSLongitude-@Longitude)/180*PI()))
RETURN @result
END
查询语句
SELECT *,GetDistance(经度字段,纬度字段,当前经度,当前纬度) AS [distance] FROM TABLENAME WHERE [distance]<10