/*-------------------------------------------------------------------------
ufn_distance
목 적 : 나와의 거리 측정
---------------------------------- */
CREATE FUNCTION [dbo].[ufn_distance]
(
@xLocationMy float ,
@yLocationMy float ,
@xLocationYou float ,
@yLocationYou float
)
RETURNS int
AS
begin
declare @Result float
declare @distanceX float
declare @distanceY float
declare @distanceXvalue float
declare @distanceYvalue float
declare @earthPI float
declare @resultX float
declare @resultY float
set @distanceXvalue = abs(@xLocationMy) - abs(@xLocationYou) --나와의 X 경도차이
set @distanceYvalue = abs(@yLocationMy) - abs(@yLocationYou) --나와의 y 위도차이
set @earthPI = 6378245; -- 지구
set @distanceX = (@earthPI * 2 * PI()) / 360
set @distanceY = (@earthPI * cos(radians(@xLocationMy))) * 2 * PI() / 360
set @resultX = @distanceXvalue * @distanceX -- 거리환산
set @resultY = @distanceYvalue * @distanceY -- 거리환산
set @result = sqrt(power(@resultX,2) + power(@resultY,2))
return @result
--SET NOCOUNT OFF
end
GO
-------------------------------------------------------------------------------------------------------------------------------------------
MS 의 거리를 구하는 함수를 만들었습니다. 근데 요걸 오라클로 변경할려니 Radians 에서 막혀버렸네요.
오라클에서는
PI는 SELECT ACOS(-1) into PI FROM dual; 로 구했구요. 저 밑줄친부분을 어떻게 해결해야 하는지 ㅠㅠ
오라클에서 저 밑줄친부분을 어떻게 처리해야할까요?
Comment 2
-
쓸만한게없네(윤선식)
2013.03.05 01:10
-
건우아빠
2013.03.05 13:43
그대로 쓰면 되지 않나요?
http://docs.oracle.com/javadb/10.8.2.2/ref/rreffuncradians.html
http://psoug.org/reference/functions.html