GeometryCollection
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
GeometryCollection adalah kumpulan nol atau lebih geometri atau instans geografi. GeometryCollection dapat kosong.
Instans GeometryCollection
Instans yang Diterima
Agar instans GeometryCollection diterima, instans tersebut harus berupa instans GeometryCollection kosong atau semua instans yang terdiri dari instans GeometryCollection harus diterima instans. Contoh berikut menunjukkan instans yang diterima.
DECLARE @g1 geometry = 'GEOMETRYCOLLECTION EMPTY';
DECLARE @g2 geometry = 'GEOMETRYCOLLECTION(LINESTRING EMPTY,POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';
DECLARE @g3 geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1, 3 5),POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';
Contoh berikut melemparkan System.FormatException
karena instans LinesString dalam instans GeometryCollection tidak diterima.
DECLARE @g geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1), POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';
Instans yang Valid
Instans GeometryCollection valid ketika semua instans yang terdiri dari instans GeometryCollection valid. Berikut ini menunjukkan tiga instans GeometryCollection yang valid dan satu instans yang tidak valid.
DECLARE @g1 geometry = 'GEOMETRYCOLLECTION EMPTY';
DECLARE @g2 geometry = 'GEOMETRYCOLLECTION(LINESTRING EMPTY,POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';
DECLARE @g3 geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1, 3 5),POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';
DECLARE @g4 geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1, 3 5),POLYGON((-1 -1, 1 -5, -5 5, -5 -1, -1 -1)))';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();
@g4
tidak valid karena instans Poligon dalam instans GeometryCollection tidak valid.
Untuk informasi selengkapnya tentang instans yang diterima dan valid, lihat Point, MultiPoint, LineString, MultiLineString, Polygon, dan MultiPolygon.
Contoh
Contoh berikut membuat instans geometry``GeometryCollection
dengan nilai Z di SRID 1 yang Point
berisi instans dan Polygon
instans.
DECLARE @g geometry;
SET @g = geometry::STGeomCollFromText('GEOMETRYCOLLECTION(POINT(3 3 1), POLYGON((0 0 2, 1 10 3, 1 0 4, 0 0 2)))', 1);