2012-01-16 2 views
3

80km x 80km 인 도시에 대한 다각형 그룹을 만들고 싶습니다. 위도와 경도가 시작되면, 그 점에 80km를 더해서 다각형을 만들기 위해 4 점을 얻을 수 있다고 생각합니다.특정 크기의 SQL Server Geography 다각형을 만들려면 어떻게해야합니까?

(X, Y) -> (X + 80km, Y) -> (X + 80km, 80km Y +) -> (X, Y + 80km) -> (X, Y)

나는 포인트 + 80km를 계산하는 방법을 찾는 데 어려움을 겪고있다. 나는 SQL Server Spatial Tools를 발견하고 기능

SqlGeography LocateAlongGeog(SqlGeography g, double distance) 

그러나 지금까지 내가 그것을 사용하는 방법을 알아낼 수 없었던이있다. 나는 이것으로 계속 놀 것이다. 그러나 내가 취할 수있는 다른 접근법이 있거나, 누군가이 기능을 적절하게 사용하는 방법을 안다면 나는 감사 할 것이다.

+0

감각의 일종을 만들지 만, 그것은 멀리 : - 라디안되지도 그렇게 SQL에 코사인해야합니다 사소한 것에서. 우리는 몇 가지 해결 방법이있는 T-SQL에서 Haversine 수식을 구현했습니다. 요즘에는 CLR 저장 프로 시저를 사용하여이 작업을 수행 할 수 있습니다. 여하튼, 당신이 극으로 이동할 때 경도가 더 작기 때문에 이것은 쉽지 않습니다. 행운을 빕니다. –

+1

도움이 될 수 있습니다. http://www.zodiacal.com/tools/lat_table.php – Aprillion

+0

@deathApril - 링크 주셔서 감사합니다. 적도에서 북쪽 또는 남쪽으로 가면 거리가 동일하다는 것은 흥미 롭습니다. – brianestey

답변

3

경도는 "큰 원"측정 값입니다. 즉, 지구의 특정 경도를 나타내는 원을 그리면 항상 지구의 중심을 중심으로하는 원입니다. 따라서 일정한 경도로 지구를 일주하는 경우,

360 * 80/(2 * PI * 6378) 

위도 거리가 때 여행 왜냐하면 까다 롭습니다 : 80km에 의해 위도를 증가 할 것이다 (즉, 같은 경도를 따라 이동하는) 북한을 움직이는, 그래서

2 * PI * 6378 /* 6378 is the radius of the Earth in km */ 

: 당신은 항상 같은 거리를 이동 샘에서 지구를 주항하다. 당신은, 당신은 위도 LAT에 있고, 80km 동쪽으로 이동하는 경우, http://www.newton.dep.anl.gov/askasci/env99/env086.htm

2 * PI * 6378 * COS(LAT) /* where LAT is your Latitude */ 

그래서 : 그러나, 공식은 간단하고 나는 그것을 보았다 : 당신이 여행하는 위도에 따라 전자 위도 변경 하여 경도를 증가 : 일의

360 * 80/(2 * PI * 6378 * COS(LAT)) 

커플주의해야 : 은) 6378)는 가까운 km B 만 정확 이스트/웨스트 당신이 개 북쪽 지점 사이되지 않습니다 정확하게 80km - 심각하지 약 80도 북쪽과 80도 남쪽의 위도와 다른 - 당신이 n 일 때 o 정확하지 않은 정밀도를 찾고 싶습니다. (기본 측정 값이 80km라고 생각합니다.)c) SQL은 삼각 함수를 사용하여 삼각 함수를 계산합니다. COS (PI * LAT/180)

HTH를 내가 반경 검색에 비슷한 일을했을

+0

나는 이것과 비슷한 것을했다. 의견을 보내 주셔서 감사합니다. – brianestey

관련 문제