Condividi tramite


ST_WITHIN - Linguaggio di query in Cosmos DB (in Azure e Fabric)

La ST_WITHIN funzione restituisce un'espressione booleana che indica se l'oggetto GeoJSON specificato nel primo argomento si trova all'interno dell'oggetto GeoJSON nel secondo argomento.

La ST_WITHIN funzione restituisce un valore booleano che indica se un oggetto GeoJSON si trova all'interno di un altro oggetto in Azure Cosmos DB per NoSQL.

Sintassi

ST_WITHIN(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
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

Questa sezione contiene esempi di come usare questo costrutto di linguaggio di query.

Controllare se un punto si trova all'interno di un poligono

In questo esempio, la ST_WITHIN funzione viene usata per determinare se un punto GeoJSON 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 all'interno di essa.