如果指定的 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 规范要求按逆时针顺序指定多边形中的点。 按顺时针顺序指定的多边形表示该区域内的反函数。