ST_WITHIN (zapytanie NoSQL)
DOTYCZY: NoSQL
Zwraca wyrażenie logiczne wskazujące, czy obiekt GeoJSON (GeoJSON Point, Polygon lub LineString expression) określony w pierwszym argumencie znajduje się w obiekcie GeoJSON w drugim argumencie.
Składnia
ST_WITHIN(<spatial_expr_1>, <spatial_expr_2>)
Argumenty
opis | |
---|---|
spatial_expr_1 |
Dowolne prawidłowe wyrażenie GeoJSON Point, Polygon, MultiPolygon lub LineString . |
spatial_expr_2 |
Dowolne prawidłowe wyrażenie GeoJSON Point, Polygon, MultiPolygon lub LineString . |
Typy zwracane
Zwraca wartość logiczną.
Przykłady
W poniższym przykładzie pokazano, jak sprawdzić, czy punkt znajduje się w obrębie wielokąta.
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
}
]
Uwagi
- Ta funkcja korzysta z indeksu geoprzestrzennego z wyjątkiem zapytań z agregacjami.
- Specyfikacja GeoJSON wymaga, aby punkty w obrębie wielokąta zostały określone w kolejności odwrotnej do ruchu wskazówek zegara. Wielokąt określony w kolejności wskazówek zegara reprezentuje odwrotność regionu w nim.