SQLSERVER 根據(jù)地圖經(jīng)緯度計(jì)算距離差示例
更新時(shí)間:2013年08月27日 16:35:03 作者:
SQL SERVER 根據(jù)地圖經(jīng)緯度計(jì)算距離及其公式如下,需要的朋友可以參考下
SQL SERVER 根據(jù)地圖經(jīng)緯度計(jì)算距離的公式
go
--創(chuàng)建經(jīng)緯度距離計(jì)算函數(shù)
CREATEFUNCTION [dbo].[fnGetDistance]
--LatBegin 開始經(jīng)度
--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的單位為:千米
復(fù)制代碼 代碼如下:
go
--創(chuàng)建經(jīng)緯度距離計(jì)算函數(shù)
CREATEFUNCTION [dbo].[fnGetDistance]
--LatBegin 開始經(jīng)度
--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的單位為:千米
相關(guān)文章
- 在SQL語句中,where 子句:where t.modifier = null ,這里不可以使用NULL關(guān)鍵字,因?yàn)樗皇且粋€(gè)真正的值,它僅僅是一個(gè)符號,因?yàn)樗闹凳俏粗摹?/div> 2011-04-04
查詢Sqlserver數(shù)據(jù)庫死鎖的一個(gè)存儲(chǔ)過程分享
利用sp_who_lock這個(gè)存儲(chǔ)過程,可以很方便的知道哪個(gè)進(jìn)程出現(xiàn)了死鎖,出現(xiàn)死鎖的問題在哪里2014-07-07sql server中Select count(*)和Count(1)的區(qū)別和執(zhí)行方式
在SQL Server中Count(*)或者Count(1)或者Count([列])或許是最常用的聚合函數(shù)。很多人其實(shí)對這三者之間是區(qū)分不清的。本文會(huì)闡述這三者的作用,關(guān)系以及背后的原理2015-02-02使用SQL Server分區(qū)表功能提高數(shù)據(jù)庫的讀寫性能
一般來說一個(gè)系統(tǒng)最先出現(xiàn)瓶頸的點(diǎn)很可能是數(shù)據(jù)庫。比如我們的生產(chǎn)系統(tǒng)并發(fā)量很高在跑一段時(shí)間后,數(shù)據(jù)庫中某些表的數(shù)據(jù)量會(huì)越來越大。海量的數(shù)據(jù)會(huì)嚴(yán)重影響數(shù)據(jù)庫的讀寫性能2023-05-05SQL?Server刪除重復(fù)數(shù)據(jù)只保留一條的實(shí)現(xiàn)步驟
在進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)分析的過程中,我們經(jīng)常會(huì)遇到重復(fù)記錄的問題,重復(fù)記錄可能會(huì)導(dǎo)致數(shù)據(jù)不準(zhǔn)確,也會(huì)增加數(shù)據(jù)處理的工作量,這篇文章主要給大家介紹了關(guān)于SQL?Server刪除重復(fù)數(shù)據(jù)只保留一條的實(shí)現(xiàn)步驟,需要的朋友可以參考下2024-01-01最新評論