2010-06-02 6 views
5

대지를 고려한 SQL Server 2008 내의 두 점 사이의 최단 거리를 계산하려고합니다.SQL 서버를 사용하여 육지를 가로 지르는 두 점 사이의 거리

나는 까마귀가 날아 오를 때 점 x 거리를 계산하기 위해 STDistance()와 함께 지리 데이터 유형을 사용했지만, 때때로 피하려고하는 바다를 가로 지르고 있습니다. 간단한 해결책이없는 한 -.

나는 또한 내가 STDistance 항상 다각형 내에서 유지되도록하려면 다음 두 가지 방법을 결합 할 필요가 있다고 생각 나는에 관심이 토지 질량 경계

주위에 다각형을 만들었습니다. 어떤 조언

답변

1

사용 STIntersects을위한

감사합니다 - http://msdn.microsoft.com/en-us/library/bb933899%28v=SQL.105%29.aspx 라인의 일부가 땅 무엇인지 찾을 수 있습니다.

의견을 읽은 후 요구 사항이 의미가 있습니다. 그러나 나는 SQL 서버에서 이것을 수행하는 inbuilt 기법이 없다고 확신한다. 나는 당신이 도로를 무시하고, 까마귀와 같이 접근하지만 육지에만 접근하고 있다고 가정합니다.

내가 할 수있는 유일한 방법은 귀하의 영역을 래스터 (그리드 셀)로 변환하고 비용 경로 분석을 수행하는 것입니다. 알고리즘이 바다 주위를 항해 할 수 있도록 해역을 엄청나게 고비용으로 설정하게됩니다. 기술에 대한 설명은이 링크를 참조하십시오 :

http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=cost_path

그렇지 않으면 아래의 알고리즘을 구현하려고!

http://bit.ly/ckvciz

이렇게 다른 라이브러리가있을 수 있습니다. 대체로 두 도시간에 새로운 Google Directions API를 사용하는 방법에 대해 실제 도로 거리를 얻을 수 있습니다.

http://code.google.com/apis/maps/documentation/directions/

+0

답장을 보내 주셔서 감사합니다. 내가 땅에서 가장 짧은 거리를 제공하지 않는다는 사실을 오해하지 않는다면, 바다를 가로 지르는 거리와 땅을 가로 지르는 거리를 구별 할 수 있습니다. 아마도 작업 한 예가 제가 설명하는 데 도움이 될 것입니다. 까마귀가 날아 오르면 말라가 (스페인)는 마드리드보다 탕헤르 (모로코)에 더 가깝습니다. 우리가 육로로 여행 할 수 있다면, 탱거는 여전히 (유럽, 중동 등 긴 여행 후) 접근 할 수 있습니다. 그러나 마드리드, 파리 등보다 멀리 떨어져 있습니다. 따라서, 나는 거리를 계산하려고합니다. 육지 질량. –

+0

SQL Server는 육지 또는 해 (또는 언덕)를 구분하지 않습니다. –

+0

다각형이 올바르게 지정되었다고 가정하고 싶습니다. – geographika

관련 문제