使用Postgis生成建筑物阴影


9

我目前正在为现有建筑物开发太阳能潜力估算工具。想法是使用建筑物(=多边形)的形状,其高度,并在给定的时间创建最终的阴影。我只会对太阳的几个位置进行测试。我知道草函数r.sun.mask,但是对于我想做的事情来说,它的功能太强大了。

现在,我只想在太阳向南(天空18度)时获得阴影。因此,建筑物应投下约三倍于其高度的阴影。

我想要得到的是:

我想得到什么

我已经寻找了一段时间,但在postgis中没有找到任何工具来执行此操作。我当时在考虑缓冲然后切割多边形,但无法使其正常工作。您知道任何工具或有任何想法怎么做吗?

Answers:


8

最简单的方法是

ST_Extrude(geom,x方向,y方向,0)

当然,您必须自己计算拉伸因子,并假设整个多边形的高度相同(在您的示例中,拉伸将类似于: ST_Extrude(geom, 0, 3.0*height, 0)

这是ST_Extrude上的手册。请记住,您需要使用SFCGAL进行Postgis处理,如果尚未安装,请查看安装文档以获取相关信息。


输出形状是我想要的形状,但是多面曲面不能与多边形相交。我尝试在多面体上使用ST_Force2D,然后将其与多边形相交,但是它不起作用。是否存在另一种具有更实用的输出格式的函数,或将这种多面体表面转换为多边形的方法?
aeboq

2
是的,您可以将其转储到普通多边形。示例:SELECT ST_AsText((ST_Dump(ST_Extrude(ST_MakeEnvelope(10,10,100,100,28992),0,8,0))).geom)
倾斜

0

从QGIS导出到Blender可能是值得考虑的,因为这将使您可以将太阳作为光源放置,并在白天和全年进行动画。我确实在这里找到了一个看起来很相关的工作流程。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.