CG_VISIBILITY
📄字数 820
👁️阅读量 加载中...
功能描述
计算一个从点或多边形几何中的线段生成的可见性多边形。
语法格式
sql
GEOMETRY CG_VISIBILITY(GEOMETRY polygon, GEOMETRY point);
GEOMETRY CG_VISIBILITY(GEOMETRY polygon, GEOMETRY pointA, GEOMETRY pointB);参数说明
- polygon:目标POLYGON对象。
- point:目标POINT对象。
- pointA:目标LINESTRING端点。
- pointB:目标LINESTRING端点。
函数返回类型
GEOMETRY类型
使用说明
- 该函数需要V1.5.0版本及以上的SFCGAL库支持。
- 该函数支持3D对象,并且不会删除Z坐标。
- 该函数支持多面体表面(POLYHEDRALSURFACE)、三角形(TRIANGLE)、不规则三角形格网(Triangulated Irregular Network,TIN)类型几何对象。
示例
sql
SQL> SELECT TO_CHAR(ST_AsText(CG_VISIBILITY(
'POLYGON((23.5 23.5,23.5 173.5,173.5 173.5,173.5 23.5,23.5 23.5),(108 98,108 36,156 37,155 99,108 98),(107 157.5,107 106.5,135 107.5,133 127.5,143.5 127.5,143.5 108.5,153.5 109.5,151.5 166,107 157.5),(41 95.5,41 35,100.5 36,98.5 68,78.5 68,77.5 96.5,41 95.5),(39 150,40 104,97.5 106.5,95.5 152,39 150))'::GEOMETRY,
'POINT(91 87)'::geometry
))) AS visible_area;
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VISIBLE_AREA |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| POLYGON((78.5 68,98.5 68,108 43.93333333333334,108 98,121.96219931271477 107.03436426116838,107 106.5,107 135,97.5 106.5,65.28017241379311 105.09913793103448,77.5 96.5,78.5 68)) |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+