ST_WITHIN (consulta NoSQL)
APLICA-SE A: NoSQL
Devolve uma expressão booleana que indica se o objeto GeoJSON ( Expressão GeoJSON Point, Polygon ou LineString ) especificado no primeiro argumento está dentro do objeto GeoJSON no segundo argumento.
Sintaxe
ST_WITHIN(<spatial_expr_1>, <spatial_expr_2>)
Argumentos
Description | |
---|---|
spatial_expr_1 |
Qualquer expressão de GeoJSON Point, Polygon, MultiPolygon ou LineString válida. |
spatial_expr_2 |
Qualquer expressão de GeoJSON Point, Polygon, MultiPolygon ou LineString válida. |
Tipos de devolução
Devolve um valor booleano.
Exemplos
O exemplo seguinte mostra como localizar se um Ponto 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 por ordem contra-relógio. Um Polígono especificado na ordem dos ponteiros do relógio representa o inverso da região dentro da mesma.