GISarabia.org
PostGIS › الدليل الرسمي › 9. الطوبولوجيا › 9.3. إدارة الطوبولوجيا وTopoGeometry
PostGIS 3.6 · Official Manual · ترجمة عربية

AddTopoGeometryColumn

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

AddTopoGeometryColumn — تضيف عمود topogeometry إلى جدول موجود، وتسجّل هذا العمود الجديد كطبقة في topology.layer، وتُعيد قيمة layer_id الجديدة.

المختصر

integer AddTopoGeometryColumn(name topology_name, name schema_name, name table_name, name column_name, varchar feature_type, integer child_layer);

integer AddTopoGeometryColumn(name topology_name, regclass tab, name column_name, integer layer_id, varchar feature_type, integer child_layer);

الوصف

ينتمي كل كائن TopoGeometry إلى طبقة محددة من طوبولوجيا محددة. وقبل إنشاء كائن TopoGeometry يجب إنشاء طبقة الطوبولوجيا (TopologyLayer) الخاصة به. طبقة الطوبولوجيا هي ربط بين جدول معالم (feature-table) والطوبولوجيا، وتحتوي أيضًا على معلومات النوع والتسلسل الهرمي. ننشئ طبقة باستخدام الدالة AddTopoGeometryColumn():

تضيف هذه الدالة العمود المطلوب إلى الجدول، وتضيف سجلًا إلى الجدول topology.layer يحتوي على جميع المعلومات المعطاة.

إذا لم تحدد [child_layer] (أو ضبطته على NULL) فستحتوي هذه الطبقة على كائنات TopoGeometry أساسية (مكوّنة من عناصر طوبولوجية أوّلية). وإلا فستحتوي هذه الطبقة على كائنات TopoGeometry هرمية (مكوّنة من كائنات TopoGeometry من الطبقة child_layer).

بمجرد إنشاء الطبقة (تُعيد الدالة AddTopoGeometryColumn معرّفها) تصبح جاهزًا لإنشاء كائنات TopoGeometry فيها

القيم الصالحة لـ feature_type هي: POINT وMULTIPOINT وLINE وMULTILINE وPOLYGON وMULTIPOLYGON وCOLLECTION

متاحة منذ: 1.1

أمثلة

-- Note for this example we created our new table in the ma_topo schema
-- though we could have created it in a different schema -- in which case topology_name and schema_name would be different
CREATE SCHEMA ma;
CREATE TABLE ma.parcels(gid serial, parcel_id varchar(20) PRIMARY KEY, address text);
SELECT topology.AddTopoGeometryColumn('ma_topo', 'ma', 'parcels', 'topo', 'POLYGON');
CREATE SCHEMA ri;
CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);
SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', 'LINE');