Поделиться через


ST_WITHIN (запрос NoSQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

Возвращает логическое выражение, указывающее, находится ли объект GeoJSON (выражение GeoJSON Point, Polygon или LineString ), указанное в первом аргументе, в объекте GeoJSON во втором аргументе.

Синтаксис

ST_WITHIN(<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 {
    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
  }
]

Замечания

  • Эта функция использует геопространственный индекс , кроме запросов с агрегатами.
  • В спецификации GeoJSON требуется, чтобы точки в многоугольнике были указаны в порядке против часовой стрелки. Если точки указаны в порядке по часовой стрелке, то многоугольник представляет регион, расположенный снаружи от него.