Udostępnij za pośrednictwem


MultiLineString

A MultiLineString is a collection of zero or more geometry or geographyLineString instances.

Wystąpienia MultiLineString

Na poniższej ilustracji przedstawiono przykłady MultiLineString wystąpień.

Przykłady geometrii wystąpień obiektów MultiLineString

Jak pokazano na ilustracji:

  • Rysunek 1 jest prosty MultiLineString wystąpienie, którego granicę jest cztery punkty końcowe dwóch jego LineString elementów.

  • Rysunek 2 jest prosty MultiLineString wystąpienie ponieważ tylko punkty końcowe LineString elementów przecinają.Obramowanie jest dwóch punktów końcowych nie pokrywających się.

  • Rysunek 3 jest nonsimple MultiLineString wystąpienie ponieważ wnętrza jednego z jego LineString elementów mieszają.Granicy tej MultiLineString wystąpienie jest cztery punkty końcowe.

  • Rysunek 4 jest nonsimple nonclosed MultiLineString wystąpienie.

  • Rysunek 5 jest proste, nonclosed MultiLineString.Jest nie zamknięty, ponieważ jego LineStrings elementy nie zostały zamknięte.Jest proste ponieważ żaden z wnętrza z LineStrings wystąpień przecinają.

  • Rysunek 6 jest proste, zamknięty MultiLineString wystąpienie.Jest on zamknięty, ponieważ jego elementy są zamknięte.Jest proste, ponieważ żaden z jego elementów przecinają się pod wnętrza.

Zaakceptowane instancje

Dla MultiLineString wystąpienie zostanie zaakceptowana, musi ona być pusta lub comprised z tylko LineString intances, są akceptowane.Więcej informacji na temat przyjętych LineString wystąpień, zobacz LineString.Oto przykłady zaakceptowane MultiLineString wystąpień.

DECLARE @g1 geometry = 'MULTILINESTRING EMPTY';
DECLARE @g2 geometry = 'MULTILINESTRING((1 1, 3 5), (-5 3, -8 -2))';
DECLARE @g3 geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1))';
DECLARE @g4 geometry = 'MULTILINESTRING((1 1, 3 3, 5 5),(3 3, 5 5, 7 7))';

Poniższy przykład generuje System.FormatException ponieważ drugi LineString wystąpienie jest nieprawidłowe.

DECLARE @g geometry = 'MULTILINESTRING((1 1, 3 5),(-5 3))';

Prawidłowe wystąpień

Dla MultiLineString wystąpienie jest nieprawidłowy, musi spełniać następujące kryteria:

  1. Wszystkie wystąpienia obejmujące MultiLineString wystąpienie musi być prawidłową LineString wystąpień.

  2. Nie dwóch LineString wystąpienieobejmujące s MultiLineString wystąpienie może zachodzić na nad interwału.LineString Instancji można tylko przecinają lub touch samych lub innych LineString wystąpień na skończoną liczbę punktów.

W poniższym przykładzie przedstawiono trzy prawidłowe MultiLineString wystąpienie i jednego MultiLineString instancji, która nie jest prawidłowy.

DECLARE @g1 geometry = 'MULTILINESTRING EMPTY';
DECLARE @g2 geometry = 'MULTILINESTRING((1 1, 3 5), (-5 3, -8 -2))';
DECLARE @g3 geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1))';
DECLARE @g4 geometry = 'MULTILINESTRING((1 1, 3 3, 5 5),(3 3, 5 5, 7 7))';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();

@g4jest nieprawidłowa ponieważ drugi LineString wystąpienie nakłada się na pierwszym LineString wystąpienie interwał.One touch na nieskończoną liczbę punktów.

Przykłady

The following example creates a simple geometryMultiLineString instance containing two LineString elements with the SRID 0.

DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');

Służy do tego wystąpienie z różnymi SRID, STGeomFromText() lub STMLineStringFromText().Można również użyć Parse() , a następnie zmodyfikować SRID, jak pokazano w następującym przykładzie.

DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
SET @g.STSrid = 13;