PostGIS'de Anahatlar Oluşturmak için Genelleme Stratejileri Aramak?


22

Raster veri kümesinden vektörel yapı oluşturma ayak izleri veri setim var. Veri kümesi şu anda sadece raster verilerinin bir vektör gösterimidir. Ben binanın köşelerinde sadece köşeleri olan bir çokgen veri kümesi istiyorum. PostGIS’teki Simplify komutunu sınırlı bir başarıyla kullanmaya çalıştım.

Daha iyi bir yolu var mı?

Yanıtlar:


17

Bina sadeleştirmeye adanmış birçok algoritma vardır. Genel bir bakış için bu web sitesine bakabilirsiniz . Ayrıca bu soruya bakınız . Kullanabilirsin:

  • Anahat basitleştirmesi oluşturma: Anahatın çok kısa kenarlarının tekrar tekrar silinmesi ve komşu kenarların uzatılmasından oluşur. Örnek:

alt metin

  • En küçük çevre dikdörtgen algoritması: Bina geometrisini en küçük çevre dikdörtgenle değiştirmekten oluşur. Bu dikdörtgen aynı zamanda binanın başlangıç ​​alanına da ölçeklenebilir. Örnek:

alt metin

  • Kare alma algoritması: Köşeleri mükemmel bir şekilde kare yapmak için kenarlara hafif bir dönüş uygulamaktan ibarettir. Örnek:

alt metin

Bu dönüşümler ihtiyaçlarınız için yeterli olabilir. Onları birleştirmek ilginç olabilir.

PostGIS’te bu algoritmaların hiçbirinin uygulanmadığından neredeyse% 100 eminim. Bazıları, geliştirdiğim Opencarto java kütüphanesinde uygulanmaktadır . Test etmek istiyorsan bana haber ver!


1
Opencarto'da bahsi geçen "Bina anahatlarının basitleştirilmesi" için hangi algoritmalara atıfta bulunduğunuz hakkında kısa bir açıklama yapabilir misiniz? Opencarto'daki wikide veya kodda doğrudan bilgi bulamadım.
benjist

Bu "ShortEdgesDeletion" dır. Orada github'da
julien



3

Böyle bir şey hile yapabilir:

"Tamponu büyük miktarda tutarsak, tamponu aynı miktarda tersine çevirirsek, orijinaline benzer bir şekle sahip olan ancak kırışık bitleri olmayan bir şey elde ederiz."

http://blog.opengeo.org/2010/11/22/removing-complexities/


Bu ilginç bir yaklaşım ve nispeten etkili görünüyor. İşaretçi için teşekkürler, kullanabileceğim bir şey. Cevabınız, referans alınan temel fikri içeren basit bir cümle içermesi ve yalnızca bir bağlantı olmaması halinde daha iyi olacaktır.
matt wilkie
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.