PostGIS kullanarak temel tipoloji analizi yapmaya çalışıyorum. Amacım diğer çokgenlere dokunan çokgenler bulmak. Bunu yapmak için ST_GetFaceEdges
, işe yarayacağını düşündüm ( referans ). Veritabanımdaki her çokgeni kontrol etmek ve ona dokunan diğer tüm çokgenleri listelemek istiyorum. Aşağıdaki görüntüde, sonucun (bina olan) çokgenlerden ikisinin bir binaya, diğer 4'ün sonucunun da 0 çokgenlere dokunduğunu söylemesini beklerim.
Ancak ne yapacağımı anlamakta güçlük çekiyorum. Örneği kopyalamaya çalıştığımda, anlamadığım birkaç kısmı vardı.
-- Returns the sequence, edge id
-- , and geometry of the edges that bound face 1
-- If you just need geom and seq, can use ST_GetFaceGeometry
SELECT t.seq, t.edge, geom
FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge)
INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;
topology
Tablo, sütun veya işlevin bir parçası adı olup olmadığından emin değilim . Masa olduğunu varsaydım, ama emin değilim.
-- try out on sample of data
-- Table is called 'TestArea', column used is 'fid_1'
SELECT t.seq, t.edge, geom
FROM TestArea.ST_GetFaceEdges('fid_1', 1) As t(seq,edge)
INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;
Ayrıca iç birleşimin işlevinin ne olduğundan emin değilim - bu sonuç orijinal nesneye katılıyor mu?
AddTopoGeometryColumn
, sorguyu çalıştırmadan önce tabloya bir eklemem gerektiği anlamına mı gelir? ST_Touches
Kontrol ettiğim değerlerden elde edilen sonuçlara dayanarak mantıklı geldi ama belki de bu tesadüfendi.
AddTopoGeometryColumn
değil, verilerinizin topolojik olarak tutarlı bir şekilde dijitalleştirilmesi de gerekir. Örneğin, geleneksel olarak, iki yarı müstakil evi iki çokgen olarak sayısallaştırır ve paylaşılan duvar dokunuşlarını sağlamak için CBS'nizde "tepe noktasına yasla" yı kullanırsınız, ancak her iki uçta çakışan iki çakışan çizgi olarak saklanır. Ancak bunların topolojik olarak dijitalleştirilmesi, paylaşılan duvarın gerçekten sadece bir satır ve her çokgen tarafından paylaşılan iki düğüm olduğu anlamına gelir. ST_Touches
topolojik değil, yakınlık için mekânsal bir kontrol yapar.
CreateTopology
vb. İle bir şema oluşturmayı gerektirir ( bit.ly/oLk8QY ) Ama binalarınızın sayısallaştırılması bana bakıyor kenarlarının görsel yakınlığına rağmen topolojik olarak farklı oldukları gibi. Sadece geleceğin sorgulayıcılarının farkında olması gereken bir şey.