ST_INTERSECTS (запрос NoSQL)
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Возвращает логическое значение, указывающее, пересекает ли объект GeoJSON (Point, Polygon, MultiPolygon или LineString), указанный в первом аргументе, пересекает объект GeoJSON во втором аргументе.
Синтаксис
ST_INTERSECTS(<spatial_expr_1>, <spatial_expr_2>)
Аргументы
Description | |
---|---|
spatial_expr_1 |
Любое допустимое выражение GeoJSON Point, Polygon, MultiPolygon или LineString. |
spatial_expr_2 |
Любое допустимое выражение GeoJSON Point, Polygon, MultiPolygon или LineString. |
Типы возвращаемых данных
Возвращает логическое значение.
Примеры
В следующем примере показано, как найти, пересекаются ли два многоугольника.
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
}
]
Замечания
- Эта функция использует геопространственный индекс , кроме запросов с агрегатами.
- В спецификации GeoJSON требуется, чтобы точки в многоугольнике были указаны в порядке против часовой стрелки. Если точки указаны в порядке по часовой стрелке, то многоугольник представляет регион, расположенный снаружи от него.