ST_Polygon
Wenn geometry-expression vom Typ ST_Polygon ist, wird der geometry-expression zurückgegeben. Wenn geometry-expression vom Typ ST_CurvePolygon ist, wird geometry-expression.ST_CurvePolyToPoly() zurückgegeben. Wenn geometry-expression eine Geometriesammlung mit einem einzelnen Element vom ST_CurvePolygon ist, wird dieses Element zurückgegeben. Wenn geometry-expression die leere Menge ist, wird eine leere Menge des Typs ST_Polygon zurückgegeben. Andernfalls wird eine Ausnahmebedingung generiert.
Der Bezeichner des räumlichen Bezugssystems des Ergebnisses ist derselbe wie der des räumlichen Bezugssystems von geometry-expression.
Konvertiert die Geometrie in ein Polygon. Die Logik ist äquivalent zu der, die für CAST(geometry-expressionAS ST_Polygon ) verwendet wurde. Wenn geometry-expression ein Kurvenpolygon ist, wird es mit ST_CurvePolyToPoly() interpoliert.
Wenn bekannt ist, dass der geometry-expression ein ST_Polygon-Wert ist, sollte für höhere Effizienz TREAT( geometry-expression AS ST_Polygon ) und nicht die ST_ToPolygon-Methode verwendet werden.
Hinweis
Standardmäßig verwendet ST_ToPolygon das Originalformat für eine Geometrie, wenn es verfügbar ist. Andernfalls wird das interne
Format verwendet. Weitere Hinweise zu den internen Formaten und Originalformaten finden Sie unter STORAGE FORMAT-Klausel, CREATE SPATIAL REFERENCE SYSTEM-Anweisung.
Das folgende Beispiel gibt den Wert Polygon EMPTY zurück.
SELECT NEW ST_GeomCollection().ST_ToPolygon()
Der folgende Code gibt einen Fehler zurück, weil die Shape-Spalte vom Typ ST_Geometry ist und ST_Geometry die ST_Area-Methode
nicht unterstützt.
SELECT Shape.ST_Area()
FROM SpatialShapes WHERE ShapeID = 22
Der folgende Code verwendet ST_ToPolygon, um den Typ des Shape-Spaltenausdrucks auf ST_Polygon zu ändern. ST_Area gibt das
Ergebnis 12.5 zurück.
SELECT Shape.ST_ToPolygon().ST_Area()
FROM SpatialShapes WHERE ShapeID = 22
In diesem Fall ist der Wert der Shape-Spalte als ST_Polygon-Typ bekannt, daher kann TREAT verwendet werden, um den Ausdruckstyp
effizient zu ändern. ST_Area gibt das Ergebnis 12.5 zurück.
SELECT TREAT( Shape AS ST_Polygon ).ST_Area()
FROM SpatialShapes WHERE ShapeID = 22