2013-08-21 3 views
0

국가 별 좌표계에서 위도 - 경도 시스템 (GPS)으로 점과 다각형을 변환하려고합니다.SQL Server 기하학 열 업데이트

특정 좌표 집합에서 주어진 변환을 계산할 수있는 공식이 있지만, 점뿐만 아니라 다각형과 선도 포함하는 SQL Server 기하 구조 열이 남아 있습니다.

나는이 해결하기 위해 시도하는 방법 :

  • 테이블의 구조 열에 포인트의 최대 수를 찾을 수를
  • while -loop 반복자 @i를 사용하여 (STNumPoints()) 사용)을 통해 걸어 모든 도형 점 (이전에 발견 된 최대 값까지)
  • @i 점을 GPS 좌표계 방향으로 변환하면 < = @i 점을 갖는 모든 지오메트리 인스턴스를 업데이트하십시오.

이 문제는 하나만 있습니다. SQL Server에서 기하학 인스턴스의 단일 점을 업데이트 할 수없는 것 같습니다.

웹에서 기하학 인스턴스 업데이트에 대한 정보를 찾으려고했지만 찾을 수 없습니다.

Geometry-instance의 일부를 업데이트 할 수 있습니까? 그렇다면 제한/전제 조건은 무엇입니까?

답변

0

지오메트리 메서드를 보면, 그렇게 생각하지 않습니다. 다른 방법으로는 분해 (즉, 폴리곤을 구성 요소로 저장) 한 다음 다각형으로 처리 할 준비가되었을 때이를 집계하는 것입니다.

다른 정보 :이 정보가 실제로 지구상의 포인트를 나타내는 경우 지역 데이터 유형을 대신 사용해보십시오. 지구의 곡률을 고려하여 거리와 면적 같은 것들이 더 정확해질 것입니다.

+0

내가 참으로 지리에 포인트를 저장할 - 그러나 그렇게하기 위하여는, 소스 좌표의 SRID가 지원해야한다 (그리고 네덜란드의 좌표계 외관상으로는 아닙니다, 그래서 나는 가치를 개조해야한다). 나는 그것을 주위에 일했다, 그것에 관해 blogpost를 곧 게시 할 것이다. – vstrien

0

이 같이 업데이트 할 수 있습니다

SET @sqlCommand = 'USE [' + @databaseName + '];' + 
       ' UPDATE [dbo].[' + @tableName + ']' + 
       ' SET [GEOSTART] = geometry::STGeomFromText(''POINT ('' + [X1] + '' '' + [Y1] + '')'', 4326) WHERE X1<>'''' and Y1<>'''' '; 
EXEC (@sqlCommand)