Compartilhar via


ST_WITHIN – Linguagem de consulta no Cosmos DB (no Azure e no Fabric)

A ST_WITHIN função retorna uma expressão booliana que indica se o objeto GeoJSON especificado no primeiro argumento está dentro do objeto GeoJSON no segundo argumento.

A ST_WITHIN função retorna um booliano que indica se um objeto GeoJSON está dentro de outro no Azure Cosmos DB para NoSQL.

Sintaxe

ST_WITHIN(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
spatial_expr_1 Qualquer expressão válida de Ponto GeoJSON, Polígono, MultiPolygon ou LineString.
spatial_expr_2 Qualquer expressão válida de Ponto GeoJSON, Polígono, MultiPolygon ou LineString.

Tipos de retorno

Retorna um valor booliano.

Exemplos

Esta seção contém exemplos de como usar este constructo de linguagem de consulta.

Verificar se um ponto está dentro de um polígono

Neste exemplo, a ST_WITHIN função é usada para determinar se um ponto GeoJSON está dentro de um Polígono.

SELECT VALUE {
  isHeadquartersWithinCampus: ST_WITHIN({
      "type": "Point",
      "coordinates": [
          -122.12824857332558,
          47.6395516675712
      ]
  }, {            
      "type": "Polygon",
      "coordinates": [ [
          [
            -122.13236581015025,
            47.64606476313813
          ],
          [
            -122.13221982500913,
            47.633757091363975
          ],
          [
            -122.11840598103835,
            47.641749416109235
          ],
          [
            -122.12061400629656,
            47.64589264786028
          ],
          [
            -122.13236581015025,
            47.64606476313813
          ]
      ] ]
  })
}
[
  {
    "isHeadquartersWithinCampus": true
  }
]

Observações

  • Essa função se beneficia de um índice geoespacial, exceto em consultas com agregações.
  • A especificação GeoJSON requer que os pontos dentro de um Polígono sejam especificados em ordem no sentido anti-horário. Um Polígono especificado em ordem no sentido horário representa o inverso da região dentro dele.