2016-08-29 4 views
0

MySql 데이터베이스에서 Geometry Collection을 설정 중이다. 따라서 다양한 지오메트리 클래스를 추가했습니다 :mysql이 geometry 콜렉션에서 geometry 클래스를 선택한다.

SET @ g = '지형도 작성 점 (0,1,2,3,4), 포인트 (6 6))'; INSERT INTO myTable (geoCollectionField) VALUES (GeomFromText (@g));

WKT의 formay 예상대로 geoCollectionField 응답

:

GEOMETRYCOLLECTION (POINT (1), 스트링 (0 1,2- 3,4- 5) POINT (6 6))

여러 가지 방법으로이 지오메트리 컬렉션에서 데이터를 가져올 수 있습니다.

SELECT geoCollectionField FROM myTable;

완전한 GEOMETRYCOLLECTION을 준다 (POINT (1), 스트링 ... 1)) myTable에 FROM

SELECT AsText (GeometryN (geoCollectionField는;

인덱스 된 형상을 준다 클래스 POINT (1 1)

POINT ((1 1), (6 6))로 끝나는 POINT 클래스와 같은 하나의 클래스 유형 만 가져 오는 SELECT를 작성할 수 없었습니다.

의견이 있으십니까?

답변

0

다음 단계를 고려하십시오

  1. GeometryCollection에 걸쳐 모든 형상을 반복하는 당신의 GeometryCollectionSTNumGeometries (STNumGeometries Reference)를 사용하여
  2. 를 사용하여 루프를 형상의 수를 가져옵니다.
  3. 지오메트리 유형이 원하는 유형과 일치하는 경우 STGeometryType (STGeometryType Reference)
  4. 확인을 사용하여 지오메트리 유형를 얻을 각 지오메트리를 들어 STGeometryN (STGeometryN Reference)
  5. 를 사용 특정 인덱스에서 형상을 가져옵니다. 일치하는 항목이 있으면 결과에 GeometryCollection을 추가 할 수 있습니다.

또한 원하는 지오메트리 유형 (MultiPoint, MultiLineString, MultiPolygon)

지점의 결과는 다음과 같을 수에 따라 다른 컬렉션을 사용할 수

GEOMETRYCOLLECTION(POINT(1 1), POINT(6 6)) 

초래 다음 단계를 수행 :

MULTIPOINT((1 1), (6 6)) 
관련 문제