ST_ISVALIDDETAILED - Cosmos DB 中的查询语言

如果指定的 GeoJSON 点、多边形或 LineString 表达式有效且无效,则 ST_ISVALIDDETAILED 函数将返回包含布尔值的 JSON 值。

ST_ISVALIDDETAILED 函数返回一个 JSON 对象,该对象指示 GeoJSON 对象是否有效,如果无效,则返回 Azure Cosmos DB for NoSQL 中的原因。

Syntax

ST_ISVALIDDETAILED(<spatial_expr>)

Arguments

Description
spatial_expr 任何有效的 GeoJSON 点、多边形或 LineString 表达式。

返回类型

返回一个 JSON 对象,该对象包含一个布尔值,该值指示指定的 GeoJSON 点或多边形表达式是否有效。 如果无效,则对象还包含字符串值的原因。

例子

本部分包含有关如何使用此查询语言构造的示例。

检查 GeoJSON 对象的有效性

在此示例中,该 ST_ISVALIDDETAILED 函数用于检查多个 GeoJSON 对象的有效性。

SELECT VALUE {
  valid: ST_ISVALIDDETAILED({ 
      "type": "Point",
      "coordinates": [-84.38876194345323, 33.75682784306348] 
  }),
  invalid: ST_ISVALIDDETAILED({ 
      "type": "Point",
      "coordinates": [133.75682784306348, -184.38876194345323] 
  })
}
[
  {
    "valid": {
      "valid": true
    },
    "invalid": {
      "valid": false,
      "reason": "Latitude values must be between -90 and 90 degrees."
    }
  }
]

注解

  • GeoJSON 规范要求按逆时针顺序指定多边形中的点。 按顺时针顺序指定的多边形表示该区域内的反函数。