LineString
LineString indica un oggetto unidimensionale che rappresenta una sequenza di punti e i segmenti lineari tramite cui vengono connessi.
Istanze Linestring
Nell'illustrazione seguente vengono mostrati esempi delle istanze LineString.
.gif)
Come mostrato nell'illustrazione:
La figura 1 rappresenta un'istanza LineString semplice non chiusa.
La figura 2 rappresenta un'istanza LineString non semplice e non chiusa.
La figura 3 rappresenta un'istanza LineString semplice chiusa che, di conseguenza, è un anello.
La figura 4 rappresenta un'istanza LineString non semplice chiusa che, di conseguenza, non è un anello.
Istanze accettate
Le istanze LineString accettate possono essere inserite in una variabile geometry, tuttavia potrebbero non essere istanze LineString valide. Affinché un'istanza LineString sia accettata, devono essere soddisfatti i criteri riportati di seguito. L'istanza deve essere formata da almeno due punti oppure essere vuota. Le istanze LineString riportate di seguito sono accettate.
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)';
Nell'istanza @g3 viene mostrato che un'istanza LineString può essere accettata, ma non è ritenuta valida.
L'istanza LineString seguente non è accettata, pertanto sarà generata un'eccezione System.FormatException.
DECLARE @g geometry = 'LINESTRING(1 1)';
Istanze valide
Affinché un'istanza LineString sia valida, devono essere soddisfatti i criteri riportati di seguito.
L'istanza LineString deve essere accettata.
Se un'istanza LineString non è vuota, devono essere presenti almeno due punti distinti.
L'istanza LineString non può sovrapporsi in un intervallo.
Le istanze LineString seguenti sono valide.
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();
Le istanze LineString seguenti non sono valide.
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();
Attenzione |
|---|
Il rilevamento delle sovrapposizioni LineString è basato su calcoli a virgola mobile che non sono esatti. |
Esempi
Nell'esempio seguente viene mostrato come creare un'istanza geometryLineString con tre punti e un SRID di 0:
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1, 2 4, 3 9)', 0);
Ogni punto nell'istanza LineString può contenere valori Z (innalzamento) e M (misura). In questo esempio si aggiungono i valori M all'istanza LineString creata nell'esempio precedente. M e Z possono essere valori Null.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1 NULL 0, 2 4 NULL 12.3, 3 9 NULL 24.5)', 0);
Vedere anche
Attenzione