Compartir a través de


ST_WITHIN (consulta NoSQL)

SE APLICA A: NoSQL

Devuelva una expresión booleana que indica si el objeto GeoJSON (expresión GeoJSONPoint, Polygon oLineString) especificado en el primer argumento está dentro del objeto GeoJSON del segundo argumento.

Sintaxis

ST_WITHIN(<spatial_expr_1>, <spatial_expr_2>)  

Argumentos

Descripción
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 valores devueltos

Devuelve un valor booleano.

Ejemplos

En el ejemplo siguiente se muestra cómo buscar si un Punto 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
  }
]

Comentarios

  • Esta función se beneficia de un índice geoespacial excepto en las consultas con agregados.
  • La especificación GeoJSON requiere que los puntos dentro de un polígono se especifiquen en sentido contrario a las agujas del reloj. Un elemento Polygon cuyos puntos se hayan especificado en el sentido de las agujas del reloj representa el inverso de la región dentro de él.