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
.
Comme indiqué par l'illustration :
La figure 1 est un instance simple
MultiLineString
dont la limite est les quatre points de terminaison de ses deuxLineString
éléments.La Figure 2 est une instance
MultiLineString
simple car seuls les points de terminaison des élémentsLineString
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émentsLineString
est croisé. La limite de cette instanceMultiLineString
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 sesLineStrings
éléments ne sont pas fermés. Elle est simple car aucun des intérieurs des instancesLineStrings
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 :
Toutes les instances comprenant l'instance
MultiLineString
doivent être des instancesLineString
valides.Deux instances
LineString
comprenant l'instanceMultiLineString
peuvent se chevaucher sur un intervalle. Les instancesLineString
peuvent uniquement se croiser, se toucher ou toucher d'autres instancesLineString
à 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)