Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Azure SQL Managed Instance
Endpoint de análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de dados SQL no Microsoft Fabric
Uma instância MultiPolygon é uma coleção de zero ou mais instâncias Polygon .
Instâncias de polígonos
A ilustração abaixo mostra exemplos de instâncias MultiPolygon .
Como mostra a ilustração:
A Figura 1 é uma ocorrência de MultiPolygon com dois elementos Polygon . O limite é definido pelos dois anéis exteriores e pelos três anéis interiores.
A Figura 2 é uma ocorrência de MultiPolygon com dois elementos Polygon . O limite é definido pelos dois anéis exteriores e pelos três anéis interiores. Os dois elementos do Polígono se cruzam em um ponto tangente.
Instâncias aceitadas
Uma instância MultiPolygon é aceita, uma das seguintes condições é atendida.
É uma instância vazia do MultiPolygon .
Todas as instâncias que compõem a instância MultiPolygon são instâncias Polygon aceitas. Para obter mais informações sobre instâncias Polygon aceitas, consulte Polygon.
Os exemplos a seguir mostram instâncias MultiPolygon aceitas.
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)))';
O exemplo a seguir mostra uma instância MultiPolygon que lançará uma exceção System.FormatException.
DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';
A segunda instância no MultiPolygon é uma instância LineString e não uma instância Polygon aceita.
Instâncias válidas
Uma instância MultiPolygon é válida se for uma instância MultiPolygon vazia ou se atender aos seguintes critérios.
Todas as instâncias que compõem a instância MultiPolygon são instâncias válidas do Polygon . Para instâncias válidas de Polígono , consulte Polígono.
Nenhuma das instâncias Polygon que compõem a instância MultiPolygon se sobrepõe.
O exemplo a seguir mostra duas instâncias MultiPolygon válidas e uma instância MultiPolygon inválida.
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 é válido porque as duas instâncias do Polígono tocam apenas em um ponto tangente.
@g3 não é válido porque os interiores das duas instâncias do Polígono se sobrepõem.
Examples
Exemplo A.
O exemplo a seguir mostra a criação de uma instância geometry MultiPolygon e retorna o texto Conhecido-Bem (WKT) do segundo componente.
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();
Exemplo B.
Este exemplo instancia uma instância vazia MultiPolygon .
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');