ขณะนี้ฉันใช้ส่วนขยายโทโพโลยีของ PostGIS แต่ฉันมีปัญหาในการทำความเข้าใจว่าโครงสร้างทำงานอย่างไร:
หนึ่งในประเด็นสำคัญคือการใช้ "เลเยอร์" s: สิ่งที่ฉันเข้าใจคุณลักษณะคุณลักษณะควรเก็บไว้ในตารางจากสคีโครงสร้างของโทโพโลยี (หนึ่งชื่อtopo_actualname
) และลงทะเบียนเป็นเลเยอร์ของโทโพโลยีAddTopoGeometryColumn
นั้น
แต่มีวิธีง่าย ๆ ที่จะเข้าร่วมแอตทริบิวต์ (เก็บไว้ในตารางชั้น) ที่มีคุณสมบัติตามลำดับ (องค์ประกอบในnode
, face
หรือedge_data
)?
ตอนนี้สิ่งที่ฉันทำคือ:
SELECT whatever
FROM layer_tb l
JOIN topo_topologyname.edge_data e ON (l.topo).id=edge_id;
แต่ฉันคิดว่าlayer
แนวคิดทั้งหมดนั้นค่อนข้างไร้ประโยชน์ถ้าฉันต้องรู้ทั้งชื่อสคีโทโพโลยีและเลเยอร์ชื่อเพื่อรับข้อมูลที่ฉันต้องการ
ในความเป็นจริงฉันคิดว่าฉันเข้าใจว่าtopo
คอลัมน์บนเลเยอร์มีข้อมูลเพียงพอที่จะรู้ว่าโทโพโลยีนั้นเกี่ยวข้องกันที่ไหนและยิ่งกว่านั้นtopology
สคีมาก็เก็บการอ้างอิงไปยังแต่ละตารางเลเยอร์สำหรับแต่ละโทโพโลยี
มีวิธีสั้น ๆ / ง่าย / เหมาะสมในการเข้าร่วมข้อมูลด้วยกันไหม? ฉันกำลังมองหาบางอย่างในฟังก์ชั่นการขยายโทโพโลยีแต่ไม่พบสิ่งที่มีประโยชน์
TopoGeometry
SELECT whatever, ST_AsText(topogeom::geometry) FROM layer_tb
ประเด็นก็คือว่าถ้าขอบแยกในภายหลังดูเหมือนว่ารูปทรงเรขาคณิตอาจเปลี่ยนไป