ST_WITHIN — язык запросов в Cosmos DB (в Azure и Fabric)

Функция ST_WITHIN возвращает логическое выражение, указывающее, находится ли объект GeoJSON, указанный в первом аргументе, в объекте GeoJSON во втором аргументе.

Функция ST_WITHIN возвращает логическое значение, указывающее, находится ли один объект GeoJSON в другом объекте в Azure Cosmos DB.

Синтаксис

ST_WITHIN(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
spatial_expr_1 Любое допустимое выражение GeoJSON Point, Polygon, MultiPolygon или LineString.
spatial_expr_2 Любое допустимое выражение GeoJSON Point, Polygon, MultiPolygon или LineString.

Типы возвращаемых данных

Возвращает логическое значение.

Примеры

В этом разделе содержатся примеры использования этой конструкции языка запросов.

Проверьте, находится ли точка в многоугольнике

В этом примере функция используется для определения того, ST_WITHIN находится ли точка GeoJSON в многоугольнике.

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 требует, чтобы точки в многоугольнике были указаны в порядке по часовой стрелке. Многоугольник, указанный в по часовой стрелке, представляет обратное значение региона внутри него.