मैं वर्तमान में PostGIS टोपोलॉजी एक्सटेंशन का उपयोग कर रहा हूं, लेकिन मुझे यह समझने में कुछ कठिनाइयां हैं कि संरचना कैसे काम करती है:
मुख्य बिंदुओं में से एक "लेयर" s का उपयोग है: जैसा कि मैं समझता हूं, विशेषताओं को टोपोलॉजी के स्कीमा (एक नामित topo_actualname) से बाहर तालिका में संग्रहीत किया जाना चाहिए और उस टोपोलॉजी की परत के रूप में पंजीकृत होना चाहिए AddTopoGeometryColumn।
हालांकि, संबंधित विशेषताओं (तत्वों में , या node, ) के साथ विशेषताओं (परत तालिका में संग्रहीत) में शामिल होने का एक सरल तरीका है ?faceedge_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:। बात यह है कि अगर किनारों को बाद में विभाजित किया जाता है, तो ऐसा लगता है कि परिणामस्वरूप ज्यामिति बदल सकती है।