PostGIS'de kesiştikleri iki çizgi arasındaki açıyı hesaplamak istiyorum.
PostGIS açı hesaplamaları için başlangıç noktası olarak görünüyor ST_Azimuth - ama bu girdi olarak puan alır. İlk düşüncem kesişen çizgilerin uç noktalarını almak ve bunlar üzerinde bir Azimut hesaplaması yapmaktı. Bu yeterince iyi değil, çünkü çizgi özelliklerinin çoğu düz değil ve kesişimdeki açı ile ilgileniyorum. Bu yüzden, şu adımları izleyen iç içe geçmiş bir işlem var:
- İki çizgi özellik tablosu arasındaki tüm kesişimleri belirleyin.
- Kavşak noktasının etrafında çok küçük bir tampon oluşturun
- Çizgi özelliklerinin tampon dışıyla kesiştiği noktaları belirleyin (birden fazla varsa ilk noktayı alarak - gerçekten sadece açının 0, 90 veya 180 dereceye yakın olup olmadığıyla ilgileniyorum)
- Bu iki nokta için ST_Azimuth değerini hesaplayın.
Tam SQL burada yayınlamak biraz uzun, ama ilgileniyorsanız burada büktüm . (Bu arada, WITH ifadelerinin aşağısına inen tüm alanları taşımaktan daha iyi bir yol var mı?)
Sonuçlar doğru görünmüyor, bu yüzden açıkça yanlış bir şey yapıyorum:
DÜZENLEME EPSG: 3785 hesaplamaları yeniden yaptım ve sonuçlar biraz farklı ama yine de doğru değil:
Sorum şu: Bu süreçte kusurların nerede olduğu. ST_Azimuth'un ne yaptığını yanlış anlıyor muyum? CRS sorunu var mı? Tamamen başka bir şey mi? Ya da belki bunu yapmanın çok, çok daha basit bir yolu var mı?