Condividi tramite


ST_WITHIN (query NoSQL)

SI APPLICA A: NoSQL

Restituisce un'espressione booleana che indica se l'oggetto GeoJSON (punto GeoJSON, Polygon o LineString expression) specificato nel primo argomento si trova all'interno dell'oggetto GeoJSON nel secondo argomento.

Sintassi

ST_WITHIN(<spatial_expr_1>, <spatial_expr_2>)  

Argomenti

Descrizione
spatial_expr_1 Qualsiasi espressione GeoJSON Point, Polygon, MultiPolygon o LineString valida.
spatial_expr_2 Qualsiasi espressione GeoJSON Point, Polygon, MultiPolygon o LineString valida.

Tipi restituiti

Restituisce un valore booleano.

Esempi

Nell'esempio seguente viene illustrato come trovare se un punto si trova all'interno di un poligono.

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
  }
]

Osservazioni:

  • Questa funzione trae vantaggio da un indice geospaziale, ad eccezione delle query con aggregazioni.
  • La specifica GeoJSON richiede che i punti all'interno di un poligono siano specificati in ordine antiorario. Un poligono specificato in senso orario rappresenta l'inverso dell'area al suo interno.