ST_ISVALIDDETAILED (Azure Cosmos DB)

适用于:SQL API

如果指定的 GeoJSON 点、多边形或 LineString 表达式有效,则返回包含布尔值的 JSON 值;如果无效,则额外加上作为字符串值的原因。

语法

ST_ISVALIDDETAILED(<spatial_expr>)  

参数

spatial_expr
是 GeoJSON 点或多边形表达式。

返回类型

如果指定的 GeoJSON 点或多边形表达式有效,则返回包含布尔值的 JSON 值;如果无效,则额外添加原因作为字符串值。

示例

以下示例演示了如何使用 ST_ISVALIDDETAILED 检查有效性(带详细信息)。

SELECT ST_ISVALIDDETAILED({   
  "type": "Polygon",   
  "coordinates": [[ [ 31.8, -5 ], [ 31.8, -4.7 ], [ 32, -4.7 ], [ 32, -5 ] ]]  
}) AS b 

下面是结果集。

[{  
  "b": {
    "valid": false,
    "reason": "The Polygon input is not valid because the start and end points of the ring number 1 are not the same. Each ring of a polygon must have the same start and end points."   
  }  
}]  

注意

GeoJSON 规范要求多边形内的点按逆时针顺序指定。 以顺时针顺序指定的多边形表示其中的区域倒转。

后续步骤