@@ -82,7 +82,7 @@ def run(item, action, mainwindow):
82
82
QMessageBox .critical (mainwindow , "Invalid topology" , u'Schema "%s" is not registered in topology.topology.' % item .schema ().name )
83
83
return False
84
84
85
- toposrid = res [0 ]
85
+ toposrid = str ( res [0 ])
86
86
87
87
# load layers into the current project
88
88
toponame = item .schema ().name
@@ -106,20 +106,40 @@ def run(item, action, mainwindow):
106
106
# should not be needed: http://hub.qgis.org/issues/6938
107
107
legend .setGroupVisible (group , False )
108
108
109
- # face
110
- layer = db .toSqlLayer (u'SELECT face_id, topology.ST_GetFaceGeometry(%s, face_id) as geom ' \
111
- 'FROM %s.face WHERE face_id > 0' % (quoteStr (toponame ), quoteId (toponame )),
112
- 'geom' , 'face_id' , u'%s.face' % toponame , None , False , str (toposrid ), QGis .WKBPolygon )
109
+ # face mbr
110
+ uri .setDataSource (toponame , 'face' , 'mbr' , '' , 'face_id' )
111
+ uri .setSrid ( toposrid )
112
+ uri .setWkbType ( QGis .WKBPolygon )
113
+ layer = QgsVectorLayer (uri .uri (), u'%s.face_mbr' % toponame , provider )
114
+ layer .loadNamedStyle (os .path .join (template_dir , 'face_mbr.qml' ))
115
+ registry .addMapLayers ([layer ])
116
+ legend .setLayerVisible (layer , False )
117
+ legend .setLayerExpanded (layer , False )
118
+ legend .moveLayer (layer , group )
119
+ face_extent = layer .extent ()
120
+
121
+ # face geometry
122
+ sql = u'SELECT face_id, topology.ST_GetFaceGeometry(%s, face_id) as geom ' \
123
+ 'FROM %s.face WHERE face_id > 0' % (quoteStr (toponame ), quoteId (toponame ))
124
+ uri .setDataSource ('' , u'(%s\n )' % sql , 'geom' , '' , 'face_id' )
125
+ uri .setSrid ( toposrid )
126
+ uri .setWkbType ( QGis .WKBPolygon )
127
+ layer = QgsVectorLayer (uri .uri (), u'%s.face' % toponame , provider )
128
+ layer .setExtent (face_extent )
113
129
layer .loadNamedStyle (os .path .join (template_dir , 'face.qml' ))
114
130
registry .addMapLayers ([layer ])
115
131
legend .setLayerVisible (layer , False )
116
132
legend .setLayerExpanded (layer , False )
117
133
legend .moveLayer (layer , group )
118
134
119
135
# face_seed
120
- layer = db .toSqlLayer (u'SELECT face_id, ST_PointOnSurface(topology.ST_GetFaceGeometry(%s, face_id)) as geom ' \
121
- 'FROM %s.face WHERE face_id > 0' % (quoteStr (toponame ), quoteId (toponame )),
122
- 'geom' , 'face_id' , u'%s.face_seed' % toponame , None , False , str (toposrid ), QGis .WKBPoint )
136
+ sql = u'SELECT face_id, ST_PointOnSurface(topology.ST_GetFaceGeometry(%s, face_id)) as geom ' \
137
+ 'FROM %s.face WHERE face_id > 0' % (quoteStr (toponame ), quoteId (toponame ))
138
+ uri .setDataSource ('' , u'(%s)' % sql , 'geom' , '' , 'face_id' )
139
+ uri .setSrid ( toposrid )
140
+ uri .setWkbType ( QGis .WKBPolygon )
141
+ layer = QgsVectorLayer (uri .uri (), u'%s.face_seed' % toponame , provider )
142
+ layer .setExtent (face_extent )
123
143
layer .loadNamedStyle (os .path .join (template_dir , 'face_seed.qml' ))
124
144
registry .addMapLayers ([layer ])
125
145
legend .setLayerVisible (layer , False )
@@ -136,16 +156,22 @@ def run(item, action, mainwindow):
136
156
137
157
# node
138
158
uri .setDataSource (toponame , 'node' , 'geom' , '' , 'node_id' )
159
+ uri .setSrid ( toposrid )
160
+ uri .setWkbType ( QGis .WKBPoint )
139
161
layer = QgsVectorLayer (uri .uri (), u'%s.node' % toponame , provider )
140
162
layer .loadNamedStyle (os .path .join (template_dir , 'node.qml' ))
141
163
registry .addMapLayers ([layer ])
142
164
legend .setLayerVisible (layer , False )
143
165
legend .setLayerExpanded (layer , False )
144
166
legend .moveLayer (layer , group )
167
+ node_extent = layer .extent ()
145
168
146
169
# node labels
147
170
uri .setDataSource (toponame , 'node' , 'geom' , '' , 'node_id' )
171
+ uri .setSrid ( toposrid )
172
+ uri .setWkbType ( QGis .WKBPoint )
148
173
layer = QgsVectorLayer (uri .uri (), u'%s.node_id' % toponame , provider )
174
+ layer .setExtent (node_extent )
149
175
layer .loadNamedStyle (os .path .join (template_dir , 'node_label.qml' ))
150
176
registry .addMapLayers ([layer ])
151
177
legend .setLayerVisible (layer , False )
@@ -159,15 +185,21 @@ def run(item, action, mainwindow):
159
185
160
186
# edge
161
187
uri .setDataSource (toponame , 'edge_data' , 'geom' , '' , 'edge_id' )
188
+ uri .setSrid ( toposrid )
189
+ uri .setWkbType ( QGis .WKBLineString )
162
190
layer = QgsVectorLayer (uri .uri (), u'%s.edge' % toponame , provider )
163
191
registry .addMapLayers ([layer ])
164
192
legend .setLayerVisible (layer , False )
165
193
legend .setLayerExpanded (layer , False )
166
194
legend .moveLayer (layer , group )
195
+ edge_extent = layer .extent ()
167
196
168
197
# directed edge
169
198
uri .setDataSource (toponame , 'edge_data' , 'geom' , '' , 'edge_id' )
199
+ uri .setSrid ( toposrid )
200
+ uri .setWkbType ( QGis .WKBLineString )
170
201
layer = QgsVectorLayer (uri .uri (), u'%s.directed_edge' % toponame , provider )
202
+ layer .setExtent (edge_extent )
171
203
layer .loadNamedStyle (os .path .join (template_dir , 'edge.qml' ))
172
204
registry .addMapLayers ([layer ])
173
205
legend .setLayerVisible (layer , False )
@@ -177,7 +209,10 @@ def run(item, action, mainwindow):
177
209
178
210
# edge labels
179
211
uri .setDataSource (toponame , 'edge_data' , 'geom' , '' , 'edge_id' )
212
+ uri .setSrid ( toposrid )
213
+ uri .setWkbType ( QGis .WKBLineString )
180
214
layer = QgsVectorLayer (uri .uri (), u'%s.edge_id' % toponame , provider )
215
+ layer .setExtent (edge_extent )
181
216
layer .loadNamedStyle (os .path .join (template_dir , 'edge_label.qml' ))
182
217
registry .addMapLayers ([layer ])
183
218
legend .setLayerVisible (layer , False )
@@ -186,7 +221,10 @@ def run(item, action, mainwindow):
186
221
187
222
# face_left
188
223
uri .setDataSource (toponame , 'edge_data' , 'geom' , '' , 'edge_id' )
224
+ uri .setSrid ( toposrid )
225
+ uri .setWkbType ( QGis .WKBLineString )
189
226
layer = QgsVectorLayer (uri .uri (), u'%s.face_left' % toponame , provider )
227
+ layer .setExtent (edge_extent )
190
228
layer .loadNamedStyle (os .path .join (template_dir , 'face_left.qml' ))
191
229
registry .addMapLayers ([layer ])
192
230
legend .setLayerVisible (layer , False )
@@ -195,7 +233,10 @@ def run(item, action, mainwindow):
195
233
196
234
# face_right
197
235
uri .setDataSource (toponame , 'edge_data' , 'geom' , '' , 'edge_id' )
236
+ uri .setSrid ( toposrid )
237
+ uri .setWkbType ( QGis .WKBLineString )
198
238
layer = QgsVectorLayer (uri .uri (), u'%s.face_right' % toponame , provider )
239
+ layer .setExtent (edge_extent )
199
240
layer .loadNamedStyle (os .path .join (template_dir , 'face_right.qml' ))
200
241
registry .addMapLayers ([layer ])
201
242
legend .setLayerVisible (layer , False )
@@ -204,7 +245,10 @@ def run(item, action, mainwindow):
204
245
205
246
# next_left
206
247
uri .setDataSource (toponame , 'edge_data' , 'geom' , '' , 'edge_id' )
248
+ uri .setSrid ( toposrid )
249
+ uri .setWkbType ( QGis .WKBLineString )
207
250
layer = QgsVectorLayer (uri .uri (), u'%s.next_left' % toponame , provider )
251
+ layer .setExtent (edge_extent )
208
252
layer .loadNamedStyle (os .path .join (template_dir , 'next_left.qml' ))
209
253
registry .addMapLayers ([layer ])
210
254
legend .setLayerVisible (layer , False )
@@ -213,7 +257,10 @@ def run(item, action, mainwindow):
213
257
214
258
# next_right
215
259
uri .setDataSource (toponame , 'edge_data' , 'geom' , '' , 'edge_id' )
260
+ uri .setSrid ( toposrid )
261
+ uri .setWkbType ( QGis .WKBLineString )
216
262
layer = QgsVectorLayer (uri .uri (), u'%s.next_right' % toponame , provider )
263
+ layer .setExtent (edge_extent )
217
264
layer .loadNamedStyle (os .path .join (template_dir , 'next_right.qml' ))
218
265
registry .addMapLayers ([layer ])
219
266
legend .setLayerVisible (layer , False )
0 commit comments