Categorias:

Funções geoespaciais

ST_WITHIN

Retorna true se o primeiro objeto geoespacial estiver totalmente contido pelo segundo objeto geoespacial. Em outras palavras:

  • O primeiro objeto GEOGRAPHY g1 está totalmente contido pelo segundo objeto GEOGRAPHY g2.

  • O primeiro objeto GEOMETRY g1 está totalmente contido pelo segundo objeto GEOMETRY g2.

Chamar ST_WITHIN(g1, g2) é equivalente a chamar ST_CONTAINS(g2, g1).

Embora ST_COVEREDBY e ST_WITHIN possam parecer semelhantes, as duas funções têm diferenças sutis. Para obter mais detalhes sobre as diferenças entre “covered by” e “within”, consulte o Dimensionally Extended 9-Intersection Model (DE-9IM).

Nota

Esta função não oferece suporte ao uso de um GeometryCollection ou FeatureCollection como valores de entrada.

Dica

Você pode usar o serviço de otimização de pesquisa para melhorar o desempenho de consultas que chamam essa função. Para obter mais detalhes, consulte Serviço de otimização de pesquisa.

Consulte também:

ST_CONTAINS, ST_COVEREDBY

Sintaxe

ST_WITHIN( <geography_expression_1> , <geography_expression_2> )

ST_WITHIN( <geometry_expression_1> , <geometry_expression_2> )
Copy

Argumentos

geography_expression_1

Um objeto GEOGRAPHY que não é um GeometryCollection ou FeatureCollection.

geography_expression_2

Um objeto GEOGRAPHY que não é um GeometryCollection ou FeatureCollection.

geometry_expression_1

Um objeto GEOMETRY que não é um GeometryCollection ou FeatureCollection.

geometry_expression_2

Um objeto GEOMETRY que não é um GeometryCollection ou FeatureCollection.

Retornos

BOOLEAN.

Exemplos

Exemplos GEOGRAPHY

Isto mostra uma simples utilização da função ST_WITHIN:

create table geospatial_table_01 (g1 GEOGRAPHY, g2 GEOGRAPHY);
insert into geospatial_table_01 (g1, g2) values 
    ('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0))', 'POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))');
Copy
SELECT ST_WITHIN(g1, g2) 
    FROM geospatial_table_01;
+-------------------+
| ST_WITHIN(G1, G2) |
|-------------------|
| False             |
+-------------------+
Copy