2010-11-25 7 views

답변

1

여기 계산은, 위도와 경도를 기반으로 두 지점에서 방사형 마일을 계산하기위한 SQL 함수를 작성했습니다. 필요할 경우 Javascript로 변환하기위한 기초로 사용할 수 있습니다.

declare @DegToRad as float 
declare @Ans as float 
declare @Miles as float 

set @DegToRad = 57.29577951 
set @Ans = 0 
set @Miles = 0 

set @Ans = SIN(@lat1/@DegToRad) * SIN(@lat2/@DegToRad) + COS(@lat1/@DegToRad) * COS(@lat2/@DegToRad) * COS(ABS(@long2 - @long1)/@DegToRad) 
set @Miles = 3959 * ATAN(SQRT(1 - SQUARE(@Ans))/@Ans) 
set @Miles = CEILING(@Miles) 

return @Miles 

편집 : 그건 그렇고, Codeplex의 ASP.net에서 사용할 수있는 좋은 오픈 소스 컨트롤이 있습니다.

http://googlemap.codeplex.com/

+0

신속한 답변을 주셔서 감사합니다. 수식을 확인해주세요. @DegToRad, @ lat1 2 및 @ Long1 2는 무엇을 의미합니까? 서로 가깝게 있는지 확인하기 위해 두 가지 포인트가 있다고 가정하면 왜 DegToRad가 필요합니까? Thankss – Dayzza

+0

Jonathan, @DegToRad는 함수 시작 부분에 57.29577951로 정의 된 상수이며, @ lat1과 @ long1은 첫 번째 점의 위도와 경도를 나타내는 함수에 보낸 변수입니다. @ lat2와 @ long2는 두 번째 점의 위도와 경도입니다. 또한 체크 아웃 할 수있는 오픈 소스 Google지도 컨트롤에 대한 링크를 추가했습니다. – shamazing

+0

오, 좋아, 내가 이미 위도와 긴 .. 얻을하지만 상수의 목적은 정의 된 상수 값의 범위 내에 포인트 1과 포인트 2가 있는지 여부를 확인하는 것입니다? 감사합니다 – Dayzza