Partilhar via


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

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

A ST_WITHIN função retorna um booleano indicando 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 GeoJSON Point, Polygon, MultiPolygon ou LineString.
spatial_expr_2 Qualquer expressão válida GeoJSON Point, Polygon, MultiPolygon ou LineString.

Tipos de devolução

Retorna um valor booleano.

Examples

Esta seção contém exemplos de como usar essa construção 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

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