MakeValid (tipo di dati geography)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure

Converte un'istanza geography non valida in un'istanza geography valida con un tipo OGC (Open Geospatial Consortium) valido.

Se un oggetto di input restituisce False per STIsValid(), MakeValid() converte l'istanza non valida in un'istanza valida.

Questo metodo con tipo di dati geography supporta le istanze FullGlobe o le istanze spaziali con dimensioni maggiori di un emisfero.

Sintassi

  
.MakeValid ()  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Tipi restituiti

Tipo SQL Server restituito: geography

Tipo CLR restituito: SqlGeography

Osservazioni:

Questo metodo potrebbe modificare il tipo dell'istanza geography. È anche possibile che si verifichi un leggero spostamento dei punti di un'istanza geography. I risultati di alcuni metodi come NumPoint() potrebbero essere modificati.

Se l'istanza spaziale non valida interseca l'equatore e dispone di EnvelopeAngle() = 180, verrà restituita un'istanza FullGlobe. Il metodo con tipo di dati geographyMakeValid() prova a restituire istanze valide, ma non vi è garanzia che i risultati siano accurati o precisi.

Nota

È possibile archiviare gli oggetti non validi nel database. I metodi che possono essere eseguiti sulle istanze non valide (istanze per cui STIsValid() restituisce False) sono metodi che controllano la validità o consentono l'esportazione: STIsValid(), MakeValid(), STAsText(), STAsBinary(), ToString(), AsTextZM() e AsGml().

Il metodo non è preciso.

Esempi

Nel primo esempio viene creata un'istanza LineString non valida che si sovrappone e viene utilizzato STIsValid() per confermare che tale istanza non è valida. Tramite STIsValid() viene restituito il valore 0 per un'istanza non valida.

DECLARE @g geography;  
SET @g = geography::STGeomFromText('LINESTRING(0 2, 1 1, 1 0, 1 1, 2 2)', 4326);  
SELECT @g.STIsValid();  

Nel secondo esempio viene utilizzato MakeValid() per rendere valida l'istanza e per verificarne l'effettiva validità. Tramite STIsValid() viene restituito il valore 1 per un'istanza valida.

SET @g = @g.MakeValid();  
SELECT @g.STIsValid();  

Nel terzo esempio viene verificato il modo in cui l'istanza è stata modificata per renderla valida.

SELECT @g.ToString();  

In questo esempio, quando l'istanza LineString è selezionata, i valori vengono restituiti come un'istanza MultiLineString valida.

MULTILINESTRING ((0 2, 1 1, 2 2), (1 1, 1 0))  

Vedi anche

STIsValid (tipo di dati geometry)
Metodi estesi sulle istanze di geografia