ST_WITHIN - Cosmos DB 中的查询语言(在 Azure 和 Fabric 中)

ST_WITHIN 函数返回一个布尔表达式,该表达式指示在第一个参数中指定的 GeoJSON 对象是否在第二个参数中的 GeoJSON 对象内。

ST_WITHIN 函数返回一个布尔值,指示一个 GeoJSON 对象是否位于 Azure Cosmos DB for NoSQL 中的另一个对象内。

Syntax

ST_WITHIN(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
spatial_expr_1 任何有效的 GeoJSON 点、多边形、多多边形或 LineString 表达式。
spatial_expr_2 任何有效的 GeoJSON 点、多边形、多多边形或 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 规范要求按逆时针顺序指定多边形中的点。 按顺时针顺序指定的多边形表示该区域内的反函数。