Udostępnij za pośrednictwem


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.