Udostępnij przez


MakeValid (typ danych geograficznych)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Konwertuje wystąpienie geograficzne , które nie jest prawidłowe w prawidłowym wystąpieniu geograficznym z prawidłowym typem Open Geospatial Consortium (OGC).

Jeśli obiekt wejściowy zwraca wartość False dla klasy STIsValid(), MakeValid() konwertuje wystąpienie nieprawidłowe na prawidłowe wystąpienie.

Ta metoda typu danych geografii obsługuje wystąpienia FullGlobe lub wystąpienia przestrzenne, które są większe niż półkula.

Syntax

  
.MakeValid ()  

Typy zwracane

Typ zwracany programu SQL Server: lokalizacja geograficzna

Typ zwracany CLR: SqlGeography

Remarks

Ta metoda może zmienić typ wystąpienia geograficznego . Ponadto punkty wystąpienia geograficznego mogą nieznacznie się zmieniać. Wyniki z niektórych metod, takich jak NumPoint() mogą ulec zmianie.

W przypadkach, gdy nieprawidłowe wystąpienie przestrzenne przecina równik i ma kopertęAngle() = 180, zostanie zwrócone wystąpienie FullGlobe . MakeValid() Metoda typu danych geografii zapewni najlepszą próbę zwrócenia prawidłowych wystąpień, ale wyniki nie mają gwarancji dokładności ani dokładności.

Note

Obiekty, które nie są prawidłowe, mogą być przechowywane w bazie danych. Metody, które można wykonać w nieprawidłowych wystąpieniach (dla których STIsValid() zwracają wartość False, to metody sprawdzające ważność lub zezwalające na eksport: STIsValid(), MakeValid(), STAsText(), STAsBinary(), ToString(), AsTextZM() i AsGml().

Ta metoda nie jest dokładna.

Examples

Pierwszy przykład tworzy nieprawidłowe LineString wystąpienie, które nakłada się na siebie i używa STIsValid() go do potwierdzenia, że jest to nieprawidłowe wystąpienie. STIsValid() Zwraca wartość 0 dla nieprawidłowego wystąpienia.

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

W drugim przykładzie użyto MakeValid() metody , aby wystąpienie było prawidłowe i sprawdzić, czy wystąpienie jest rzeczywiście prawidłowe. STIsValid() Zwraca wartość 1 dla prawidłowego wystąpienia.

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

Trzeci przykład sprawdza, jak wystąpienie zostało zmienione, aby było prawidłowe wystąpienie.

SELECT @g.ToString();  

W tym przykładzie po wybraniu LineString wystąpienia wartości są zwracane jako prawidłowe MultiLineString wystąpienie.

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

Zobacz też

STIsValid (typ danych geometrycznych)
Rozszerzone metody w wystąpieniach geografii