Bina tonları oluşturmak için postgis kullanma


9

Şu anda mevcut binalar için güneş enerjisi potansiyeli tahmin aracı üzerinde çalışıyorum. Fikir, binalar (= Çokgen) şeklini, yüksekliklerini kullanmak ve belirli bir saatte ortaya çıkan gölgeyi oluşturmaktır. Testi sadece güneşin birkaç pozisyonu için yapacağım. Ben çim fonksiyonu r.sun.mask biliyorum ama yapmaya çalıştığım şey için overpowered.

Şimdilik gölgeyi sadece güneş güneyde, 18 ° gökyüzünde almak istiyorum. Bu nedenle bina, yüksekliğinin yaklaşık üç katı bir gölge oluşturmalıdır.

Ne almaya çalışıyorum:

Ne almaya çalışıyorum

Bir süredir arıyordum ama postgis'te bunu yapmak için herhangi bir araç bulamadım. Tamponlamayı ve sonra çokgeni kesmeyi düşünüyordum ama çalışamadım. Herhangi bir araç biliyor musunuz veya nasıl yapılacağına dair bir fikriniz var mı?

Yanıtlar:


8

Bunu yapmanın en basit yolu

ST_Extrude (geom, x-yönünde, y-yönü, 0)

. Elbette a'ya faktörüne kendinizi hesaplamak zorunda kalacak ve bu tüm poligon aynı yükseklikte olan varsayar (sizin örnekte, ihraç etmek gibi olacaktır: ST_Extrude(geom, 0, 3.0*height, 0))

İşte ST_Extrude kılavuzu . Bunun için SFCGAL ile postgis'e ihtiyacınız olduğunu unutmayın, henüz sahip değilseniz bunu nasıl alacağınızla ilgili kurulum belgelerini kontrol edin .


Çıktı şekli istediğim şekildedir, ancak Çok Yüzlü Yüzey bir Çokgen ile kesişemez. Çok yüzlü üzerinde ST_Force2D denedim ve sonra benim çokgen ile kesişiyor ama çalışmıyor. Daha pratik bir çıktı formatına sahip başka bir işlev veya bu çok yüzlü yüzeyi çokgene dönüştürmenin bir yolu var mı?
aeboq

2
Evet, normal çokgenlere atabilirsiniz. Örnek:SELECT ST_AsText((ST_Dump(ST_Extrude(ST_MakeEnvelope(10,10,100,100,28992),0,8,0))).geom)
eğin

0

QGIS'ten Blender'a ihracat yapmayı düşünmeye değer olabilir, çünkü bu, gün boyunca ve yıl boyunca güneşi bir ışık olarak canlandırmanıza ve canlandırmanıza izin verecektir. Burada alakalı görünen bir iş akışı buldum .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.