Compartir vía


ST_WITHIN - Lenguaje de consulta en Cosmos DB (en Azure y Fabric)

La ST_WITHIN función devuelve una expresión booleana que indica si el objeto GeoJSON especificado en el primer argumento está dentro del objeto GeoJSON en el segundo argumento.

La ST_WITHIN función devuelve un valor booleano que indica si un objeto GeoJSON está dentro de otro en Azure Cosmos DB para NoSQL.

Syntax

ST_WITHIN(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
spatial_expr_1 Cualquier expresión GeoJSON Point, Polygon, MultiPolygon o LineString válida.
spatial_expr_2 Cualquier expresión GeoJSON Point, Polygon, MultiPolygon o LineString válida.

Tipos de retorno

Devuelve un valor booleano.

Examples

Esta sección contiene ejemplos de cómo usar esta construcción del lenguaje de consulta.

Comprobar si un punto está dentro de un polígono

En este ejemplo, la ST_WITHIN función se usa para determinar si un punto GeoJSON está dentro de un 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
  }
]

Observaciones

  • Esta función se beneficia de un índice geoespacial, excepto en las consultas con agregados.
  • La especificación GeoJSON requiere que se especifiquen puntos dentro de un polígono en orden contrario a las agujas del reloj. Un polígono especificado en el orden de las agujas del reloj representa el inverso de la región dentro de ella.