2016-11-29 1 views
0

어떻게이 질문을 작성해야합니까? P1 (a, b)와 P2 (c, d)를 2D 평면상의 두 점으로 간주하십시오.두 경도와 위도 사이의 거리

  • 북부 위도 (LAT_N STATION)의 최소값과 동일합니다.
  • B는 (역 LAT_N)
  • C는
  • D는 최대 값 동일하게 발생 웨스턴 경도 최소값 (역 LONG_W)를 동일하게 발생 북위 의 최대 값과 동일 일어나는 서양 경도 (역에서 LONG_W)

포인트 P1과 P2 사이의 맨하탄 거리를 쿼리하고 소수점 이하 4 자리로 반올림하십시오.

표 역 (ID 번호, 도시 VARCHAR2 (21), 주 VARCHAR2 (2), LAT_N 번호, LONG_W 수)

이 내 시도하지만 NULL

select 
    2 * 3961 * asin(power(sqrt((sin(radians(MAX(LAT_N) - MIN(LAT_N))/2))) , 2) + cos(radians(MAX(LAT_N))) * cos(radians(MIN(LAT_N))) * power(sqrt((sin(radians(MAX(LONG_W) - MIN(LONG_W))/2))) , 2)) as distance from station where city like 'manhattan'; 

어떤 생각을 반환

을 이해할 것이다 것은

답변

0

두 점의 거리 = squarerootof 간의 직선 거리를 얻기 위해,이 수학 식을 따를 수있다 ((X2 - X1)^2 + (Y2 - Y1)^2)

,
0

휠을 다시 만들지 않고 SQL Server 지리 데이터 형식을 사용할 수 있습니다. 이러한 데이터 유형은 2008 년 현재로 제공되며 함수가 포함되어 있어도 수학을 사용하지 않고 수행하려는 작업을 정확하게 수행 할 수 있습니다.

example (여기에 포함 할 항목이 너무 많음)을 보거나 MSDN에서 더 많은 정보를 찾아보십시오.

0

맨하탄 거리 (Taxicab Geometry)

지점 P1 사이의 맨해튼 거리 (a, b) 및 P2 (c, d) = | A-C | + | B-거라고 |

--a= min(LAT_N) 
--b= max(LAT_N) 
--c= min(LONG_W) 
--d= max(LONG_w) 
SELECT ROUND(ABS(MIN(LAT_N) - MIN(LONG_W)),4) + ROUND(ABS(MAX(LAT_N) - MAX(LONG_W)),4) FROM STATION;