Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


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)) |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+