الاسم
AsGML — تُعيد تمثيل GML لكائن TopoGeometry.
المختصر
text AsGML(topogeometry tg);
text AsGML(topogeometry tg, text nsprefix_in);
text AsGML(topogeometry tg, regclass visitedTable);
text AsGML(topogeometry tg, regclass visitedTable, text nsprefix);
text AsGML(topogeometry tg, text nsprefix_in, integer precision, integer options);
text AsGML(topogeometry tg, text nsprefix_in, integer precision, integer options, regclass visitedTable);
text AsGML(topogeometry tg, text nsprefix_in, integer precision, integer options, regclass visitedTable, text idprefix);
text AsGML(topogeometry tg, text nsprefix_in, integer precision, integer options, regclass visitedTable, text idprefix, int gmlversion);
الوصف
تُعيد تمثيل GML لكائن TopoGeometry بصيغة الإصدار GML3. إذا لم يُحدَّد nsprefix_in فيُستخدم gml. مرّر سلسلة فارغة لـ nsprefix للحصول على فضاء أسماء غير مؤهَّل. وتُمرَّر المعاملات precision (الافتراضي: 15) وoptions (الافتراضي 1)، إن أُعطيت، دون تعديل إلى الاستدعاء الأساسي لـ ST_AsGML.
يُستخدم المعامل visitedTable، إن أُعطي، لتتبّع عناصر Node وEdge التي جرت زيارتها، وذلك لاستخدام المراجع التبادلية (xlink:xref) بدلًا من تكرار التعريفات. ويُتوقع أن يحتوي الجدول على حقلين صحيحين (على الأقل): 'element_type' و'element_id'. ويجب أن يمتلك المستخدم المستدعي صلاحيتي القراءة والكتابة على الجدول المعطى. وللحصول على أفضل أداء، ينبغي تعريف فهرس على element_type وelement_id بهذا الترتيب. ويُنشأ مثل هذا الفهرس تلقائيًا بإضافة قيد تفرّد إلى الحقلين. مثال:
CREATE TABLE visited ( element_type integer, element_id integer, unique(element_type, element_id) );
إذا أُعطي المعامل idprefix فسيُضاف في بداية معرّفات وسوم Edge وNode.
إذا أُعطي المعامل gmlver فسيُمرَّر إلى ST_AsGML الأساسية. القيمة الافتراضية 3.
متاحة منذ: 2.0.0
أمثلة
يستخدم هذا كائن TopoGeometry الذي أنشأناه في CreateTopoGeom
SELECT topology.AsGML(topo) As rdgml
FROM ri.roads
WHERE road_name = 'Unknown';
-- rdgml--
<gml:TopoCurve>
<gml:directedEdge>
<gml:Edge gml:id="E1">
<gml:directedNode orientation="-">
<gml:Node gml:id="N1"/>
</gml:directedNode>
<gml:directedNode
></gml:directedNode>
<gml:curveProperty>
<gml:Curve srsName="urn:ogc:def:crs:EPSG::3438">
<gml:segments>
<gml:LineStringSegment>
<gml:posList srsDimension="2"
>384744 236928 384750 236923 384769 236911 384799 236895 384811 236890
384833 236884 384844 236882 384866 236881 384879 236883 384954 236898 385087 236932 385117 236938
385167 236938 385203 236941 385224 236946 385233 236950 385241 236956 385254 236971
385260 236979 385268 236999 385273 237018 385273 237037 385271 237047 385267 237057 385225 237125
385210 237144 385192 237161 385167 237192 385162 237202 385159 237214 385159 237227 385162 237241
385166 237256 385196 237324 385209 237345 385234 237375 385237 237383 385238 237399 385236 237407
385227 237419 385213 237430 385193 237439 385174 237451 385170 237455 385169 237460 385171 237475
385181 237503 385190 237521 385200 237533 385206 237538 385213 237541 385221 237542 385235 237540 385242 237541
385249 237544 385260 237555 385270 237570 385289 237584 385292 237589 385291 237596 385284 237630</gml:posList>
</gml:LineStringSegment>
</gml:segments>
</gml:Curve>
</gml:curveProperty>
</gml:Edge>
</gml:directedEdge>
</gml:TopoCurve>
التمرين السابق نفسه دون فضاء أسماء
SELECT topology.AsGML(topo,'') As rdgml
FROM ri.roads
WHERE road_name = 'Unknown';
-- rdgml--
<TopoCurve>
<directedEdge>
<Edge id="E1">
<directedNode orientation="-">
<Node id="N1"/>
</directedNode>
<directedNode
></directedNode>
<curveProperty>
<Curve srsName="urn:ogc:def:crs:EPSG::3438">
<segments>
<LineStringSegment>
<posList srsDimension="2"
>384744 236928 384750 236923 384769 236911 384799 236895 384811 236890
384833 236884 384844 236882 384866 236881 384879 236883 384954 236898 385087 236932 385117 236938
385167 236938 385203 236941 385224 236946 385233 236950 385241 236956 385254 236971
385260 236979 385268 236999 385273 237018 385273 237037 385271 237047 385267 237057 385225 237125
385210 237144 385192 237161 385167 237192 385162 237202 385159 237214 385159 237227 385162 237241
385166 237256 385196 237324 385209 237345 385234 237375 385237 237383 385238 237399 385236 237407
385227 237419 385213 237430 385193 237439 385174 237451 385170 237455 385169 237460 385171 237475
385181 237503 385190 237521 385200 237533 385206 237538 385213 237541 385221 237542 385235 237540 385242 237541
385249 237544 385260 237555 385270 237570 385289 237584 385292 237589 385291 237596 385284 237630</posList>
</LineStringSegment>
</segments>
</Curve>
</curveProperty>
</Edge>
</directedEdge>
</TopoCurve>