Використання постгігів для створення будівельних відтінків


9

Зараз я працюю над інструментом оцінки сонячного потенціалу для існуючих будівель. Ідея полягає у використанні будівель (= багатокутника) форми, їх висоти та створення отриманого відтінку за задану годину. Я лише збираюся зробити тест на кілька позицій сонця. Я знаю про функцію трави r.sun.mask, але вона непосильна для того, що я намагаюся зробити.

Наразі мені хочеться отримати тінь лише тоді, коли сонце на півдні, при 18 ° на небі. Тому будівля повинна кидати тінь приблизно в три рази більше її висоти.

Що я намагаюся отримати:

Що я намагаюся отримати

Я деякий час шукав, але в postgis не знайшов жодного інструменту для цього. Я думав про буферизацію, а потім розрізання полігону, але не міг змусити його працювати. Чи знаєте ви якийсь інструмент чи маєте ідею, як це зробити?

Відповіді:


8

Найпростіший спосіб зробити це за допомогою

ST_Extrude (geom, x-напрямок, y-напрямок, 0)

. Ви повинні будете обчислити виштовхувати множник себе, звичайно , і це передбачає , весь ваш багатокутник ту ж висоту (в вашому прикладі, видавлювання буде , як: ST_Extrude(geom, 0, 3.0*height, 0))

Ось посібник по ST_Extrude. Майте на увазі, що для цього вам потрібні постгігі з SFCGAL, перевірте документи інсталяції, як це отримати, якщо у вас його ще немає.


Форма виводу - така, яку я хочу, проте Поліедральну поверхню не можна перетинати з Полігоном. Я спробував 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, оскільки це дозволить вам розмістити Сонце як світло і оживляти протягом дня та року. Я знайшов робочий процес тут , що виглядає актуальним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.