SQL SERVER 根据地图经纬度计算距离的公式
复制代码 代码如下:
go
--创建经纬度距离计算函数
CREATEFUNCTION [dbo].[fnGetDistance]
--LatBegin 开始经度
--LngBegin 开始维度
(@LatBegin REAL, @LngBegin REAL, @LatEnd REAL, @LngEnd REAL)
RETURNSFLOAT
AS
BEGIN
--距离(千米)
DECLARE @Distance REAL
DECLARE @EARTH_RADIUS REAL
SET @EARTH_RADIUS = 6378.137

DECLARE @RadLatBegin REAL,
@RadLatEnd REAL,
@RadLatDiff REAL,
@RadLngDiff REAL

SET @RadLatBegin = @LatBegin *PI()/ 180.0
SET @RadLatEnd = @LatEnd *PI()/ 180.0
SET @RadLatDiff = @RadLatBegin - @RadLatEnd
SET @RadLngDiff = @LngBegin *PI()/ 180.0 - @LngEnd *PI()/ 180.0

SET @Distance = 2 *ASIN(
SQRT(
POWER(SIN(@RadLatDiff / 2), 2)+COS(@RadLatBegin)*COS(@RadLatEnd)
*POWER(SIN(@RadLngDiff / 2), 2)
)
)

SET @Distance = @Distance * @EARTH_RADIUS
--SET @Distance = Round(@Distance * 10000) / 10000

RETURN @Distance
END

@Distance的单位为:千米

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Andorid Dialog 示例【慢慢更新】
  3. 安卓(android)使用GPS,获取经纬度
  4. Android(安卓)PureMVC
  5. android获取经纬度和地方名称
  6. Ubunu下搭建android NDK环境
  7. android 百度地图3.0+常用操作
  8. Android(安卓)获取手机本地图片所在的位置
  9. Android获取所在地城市名2

随机推荐

  1. MySql日志与事务的隔离级别
  2. 在Win2003+Tomcat+MySQL下运行JPetStore
  3. 【20110115 InfoQ 百度技术沙龙 2010 第
  4. 【转】mysql-innodb-buffer pool 结构分
  5. C++编写数据库备份程序,支持MSSQL\Oracle
  6. 保持最新的一个字段值,直到它发生变化,然后
  7. mysql-proxy主从搭建读写分离全过程
  8. MyBatis排序时使用order by 动态参数时需
  9. [Step By Step]使用SAP Business Objects
  10. 如何在表单行SQL中检查是否有任何值为Nul