Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Magazyn w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Wystąpienie MultiPolygon jest zbiorem zero lub więcej wystąpień Polygon.
Wystąpienia wielokątne
Na poniższej ilustracji przedstawiono przykłady wystąpień MultiPolygon .
Jak pokazano na ilustracji:
Rysunek 1 to wystąpienie MultiPolygon z dwoma elementami Poligon. Granica jest definiowana przez dwa pierścienie zewnętrzne i trzy pierścienie wewnętrzne.
Rysunek 2 to wystąpienie MultiPolygon z dwoma elementami Polygon. Granica jest definiowana przez dwa pierścienie zewnętrzne i trzy pierścienie wewnętrzne. Dwa elementy wielokąt przecinają się w punkcie stycznym.
Zaakceptowane wystąpienia
Jeśli spełniono jeden z następujących warunków, wystąpienie MultiPolygon jest akceptowane.
Jest to puste wystąpienie MultiPolygon .
Wszystkie instancje składające się na instancję MultiPolygon są akceptowanymi instancjami Polygon. Aby uzyskać więcej informacji na temat akceptowanych instancji Polygon, zobacz Polygon.
W poniższych przykładach pokazano zaakceptowane wystąpienia MultiPolygon .
DECLARE @g1 geometry = 'MULTIPOLYGON EMPTY';
DECLARE @g2 geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
DECLARE @g3 geometry = 'MULTIPOLYGON(((2 2, 2 -2, -2 -2, -2 2, 2 2)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
W poniższym przykładzie pokazano wystąpienie MultiPolygon, które zgłosi błąd System.FormatException.
DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';
Drugie wystąpienie w MultiPolygonie jest wystąpieniem LineString, a nie akceptowanym wystąpieniem Polygonu.
Prawidłowe wystąpienia
Wystąpienie MultiPolygon jest prawidłowe, jeśli jest pustym wystąpieniem MultiPolygon lub czy spełnia następujące kryteria.
Wszystkie wystąpienia wchodzące w skład MultiPolygon są prawidłowymi wystąpieniami Poligon. Prawidłowe wystąpienia wielokąta można znaleźć w temacie Polygon (Wielokąt).
Żadne wystąpienia Polygony składające się na wystąpienie MultiPolygon nie nakładają się.
Poniższy przykład przedstawia dwa prawidłowe wystąpienia MultiPolygon i jedno nieprawidłowe wystąpienie MultiPolygon .
DECLARE @g1 geometry = 'MULTIPOLYGON EMPTY';
DECLARE @g2 geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
DECLARE @g3 geometry = 'MULTIPOLYGON(((2 2, 2 -2, -2 -2, -2 2, 2 2)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid();
@g2 jest prawidłowy, ponieważ dwa wystąpienia Polygon dotykają się tylko w punkcie styku.
@g3 jest nieprawidłowa, ponieważ wnętrza dwóch instancji Poligon nakładają się na siebie.
Examples
Przykład A.
Poniższy przykład przedstawia tworzenie geometry MultiPolygon wystąpienia i zwraca Well-Known Text (WKT) drugiego składnika.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON(((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 1, 1 1)), ((9 9, 9 10, 10 9, 9 9)))');
SELECT @g.STGeometryN(2).STAsText();
Przykład B.
W tym przykładzie inicjalizowane jest puste MultiPolygon wystąpienie.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');