Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
A LineString est un objet unidimensionnel représentant une séquence de points et les segments de ligne qui les connectent.
Instances de LineString
L’illustration ci-dessous montre des exemples d’instances LineString .
Comme illustré dans l’illustration :
La figure 1 est une instance simple et non fermée
LineString.La figure 2 est une instance non simple et non fermée
LineString.La figure 3 est une instance fermée, simple
LineStringet est donc un anneau.La figure 4 est une instance fermée, non simple
LineStringet n’est donc pas un anneau.
Instances acceptées
Les instances acceptées LineString peuvent être entrées dans une variable geometry, mais elles peuvent ne pas être des instances valides LineString . Les critères suivants doivent être remplis pour qu’une LineString instance soit acceptée. L’instance doit être formée d’au moins deux points, ou elle doit être vide. Les instances LineString suivantes sont acceptées.
DECLARE @g1 geometry = 'LINESTRING EMPTY';
DECLARE @g2 geometry = 'LINESTRING(1 1,2 3,4 8, -6 3)';
DECLARE @g3 geometry = 'LINESTRING(1 1, 1 1)';
@g3 indique qu’une LineString instance peut être acceptée, mais non valide.
L’instance suivante LineString n’est pas acceptée. Il générera un System.FormatException.
DECLARE @g geometry = 'LINESTRING(1 1)';
Instances valides
Pour qu’une LineString instance soit valide, elle doit respecter les critères suivants.
L’instance
LineStringdoit être acceptée.Si une
LineStringinstance n’est pas vide, elle doit contenir au moins deux points distincts.L’instance
LineStringne peut pas se chevaucher sur un intervalle de deux points consécutifs ou plus.
Les instances suivantes LineString sont valides.
DECLARE @g1 geometry= 'LINESTRING EMPTY';
DECLARE @g2 geometry= 'LINESTRING(1 1, 3 3)';
DECLARE @g3 geometry= 'LINESTRING(1 1, 3 3, 2 4, 2 0)';
DECLARE @g4 geometry= 'LINESTRING(1 1, 3 3, 2 4, 2 0, 1 1)';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();
Les instances suivantes LineString ne sont pas valides.
DECLARE @g1 geometry = 'LINESTRING(1 4, 3 4, 2 4, 2 0)';
DECLARE @g2 geometry = 'LINESTRING(1 1, 1 1)';
SELECT @g1.STIsValid(), @g2.STIsValid();
Avertissement
La détection des LineString chevauchements est basée sur des calculs à virgule flottante, qui ne sont pas exacts.
Exemples
L’exemple suivant montre comment créer une geometry``LineString instance avec trois points et un SRID de 0 :
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1, 2 4, 3 9)', 0);
Chaque point de l’instance LineString peut contenir des valeurs Z (élévation) et M (mesure). Cet exemple ajoute des valeurs M à l’instance LineString créée dans l’exemple ci-dessus. M et Z peuvent être des valeurs Null.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1 NULL 0, 2 4 NULL 12.3, 3 9 NULL 24.5)', 0);
L’exemple suivant montre comment créer une geometry LineString instance avec deux points identiques. Un appel pour IsValid indiquer que l’instance LineString n’est pas valide et qu’un appel à MakeValid convertira l’instance LineString en un Point.
DECLARE @g geometry
SET @g = geometry::STGeomFromText('LINESTRING(1 3, 1 3)',0);
IF @g.STIsValid() = 1
BEGIN
SELECT @g.ToString() + ' is a valid LineString.';
END
ELSE
BEGIN
SELECT @g.ToString() + ' is not a valid LineString.';
SET @g = @g.MakeValid();
SELECT @g.ToString() + ' is a valid Point.';
END
L’extrait de code ci-dessus retourne les éléments suivants :
LINESTRING(1 3, 1 3) is not a valid LineString
POINT(1 3) is a valid Point.
Voir aussi
STLength (type de données géométrie)STStartPoint (type de données géométrie)STEndpoint (type de données géométrie)STPointN (type de données géométrie)STNumPoints (type de données géométrie)STIsRing (type de données géométrie)STIsClosed (type de données géométrie)STPointOnSurface (type de données géométrie)Données spatiales (SQL Server)