Partager via


MultiLineString

Un MultiLineString est une collection d’instances zéro ou plus geometry ou geographyLineString .

Instances MultiLineString

L'illustration suivante montre des exemples d'instances MultiLineString.

Exemples d’instances Geometry MultiLineString

Comme indiqué par l'illustration :

  • La figure 1 est un instance simple MultiLineString dont la limite est les quatre points de terminaison de ses deux LineString éléments.

  • La Figure 2 est une instance MultiLineString simple car seuls les points de terminaison des éléments LineString se croisent. La limite est constituée des deux points de terminaison non chevauchants.

  • La Figure 3 est une instance MultiLineString non simple car l'intérieur de l'un de ses éléments LineString est croisé. La limite de cette instance MultiLineString est constituée des quatre points de terminaison.

  • La Figure 4 est une instance MultiLineString non simple et non close.

  • La Figure 5 est une MultiLineString simple et non fermée. Il n’est pas fermé, car ses LineStrings éléments ne sont pas fermés. Elle est simple car aucun des intérieurs des instances LineStrings ne se croise.

  • La Figure 6 est une instance MultiLineString simple et fermée. Elle est fermée car tous ses éléments sont fermés. Elle est simple car aucun de ses éléments ne se croise aux intérieurs.

Instances acceptées

Pour qu'une instance MultiLineString soit acceptée, elle doit être vide ou contenir uniquement les instances LineString acceptées. Pour plus d’informations sur les instances acceptées LineString , consultez LineString. Les exemples suivants illustrent des instances MultiLineString acceptées.

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))';  

L'exemple suivant lève une exception System.FormatException car la deuxième instance de LineString n'est pas valide.

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

Instances valides

Pour qu’une MultiLineString instance soit valide, elle doit répondre aux critères suivants :

  1. Toutes les instances comprenant l'instance MultiLineString doivent être des instances LineString valides.

  2. Deux instances LineString comprenant l'instance MultiLineString peuvent se chevaucher sur un intervalle. Les instances LineString peuvent uniquement se croiser, se toucher ou toucher d'autres instances LineString à un nombre fini de points.

L'exemple suivant illustre trois instances MultiLineString valides et une instance MultiLineString non valide.

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();  

@g4 n'est pas valide car la deuxième instance LineString chevauche la première instance LineString à un intervalle. Elles se touchent à un nombre infini de points.

Exemples

L’exemple suivant crée une instance geometry``MultiLineString simple qui contient deux éléments LineString avec le SRID 0.

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

Pour instancier cette instance avec un SRID différent, utilisez STGeomFromText() ou STMLineStringFromText(). Vous pouvez également utiliser Parse() puis modifier le SRID, comme indiqué dans l'exemple suivant.

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

Voir aussi

STLength (type de données geometry)
STIsClosed (type de données geometry)
LineString
Données spatiales (SQL Server)