Condividi tramite


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

La ST_INTERSECTS funzione restituisce un valore booleano che indica se l'oggetto GeoJSON specificato nel primo argomento interseca l'oggetto GeoJSON nel secondo argomento.

La ST_INTERSECTS funzione restituisce un valore booleano che indica se due oggetti GeoJSON si intersecano in Azure Cosmos DB per NoSQL.

Sintassi

ST_INTERSECTS(<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 due poligoni si intersecano

In questo esempio, la ST_INTERSECTS funzione viene usata per determinare se due poligoni GeoJSON si intersecano.

SELECT VALUE {
  highWayAndCampusIntersect: ST_INTERSECTS({
      "type": "Polygon",
      "coordinates": [ [
          [
            -122.13693695285855,
            47.64996065621003
          ],
          [
            -122.1351662656516,
            47.64627863318731
          ],
          [
            -122.13488295569863,
            47.646326350048696
          ],
          [
            -122.1366182291613,
            47.650016321952904
          ],
          [
            -122.13693695285855,
            47.64996065621003
          ]
      ] ]
  }, {  
      "type": "Polygon",
      "coordinates": [ [
          [
            -122.14034847687708,
            47.6494835188378
          ],
          [
            -122.14014779899375,
            47.64625477474044
          ],
          [
            -122.13256925774829,
            47.646207057813655
          ],
          [
            -122.13254564858545,
            47.64941990019193
          ],
          [
            -122.14034847687708,
            47.6494835188378
          ]
      ] ]
  })
}
[
  {
    "highWayAndCampusIntersect": 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.