Partager via


ST_INTERSECTS (requête NoSQL)

S’APPLIQUE À : NoSQL

Retourne une valeur booléenne indiquant si l’objet GeoJSON (Point, Polygon, MultiPolygon ou LineString) spécifié dans le premier argument croise l’objet GeoJSON du second argument.

Syntaxe

ST_INTERSECTS(<spatial_expr_1>, <spatial_expr_2>)  

Arguments

Description
spatial_expr_1 Toute expression GeoJSON Point, Polygon, MultiPolygon ou LineString valide.
spatial_expr_2 Toute expression GeoJSON Point, Polygon, MultiPolygon ou LineString valide.

Types de retour

Retourne une valeur booléenne.

Exemples

L’exemple suivant montre comment rechercher si deux polygones se croisent.

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

Remarques

  • Cette fonction bénéficie d’un index géospatial, sauf dans les requêtes avec agrégats.
  • La spécification GeoJSON exige que les points d’un polygone soient spécifiés dans le sens inverse des aiguilles d’une montre. Un polygone spécifié dans le sens horaire représente l’inverse de la région qu’il contient.