@@ -125,50 +125,52 @@ def processResults(self, results, reproject, mandatoryvars, geooptional):
125
125
features = []
126
126
nongeofeatures = []
127
127
properties = {}
128
- first = True
129
- newobject = True
130
128
item = ""
131
- relval = False
132
129
crsset = set ()
133
130
QgsMessageLog .logMessage ('Processing results....' ,
134
131
MESSAGE_CATEGORY , Qgis .Info )
132
+ lastaddeditem = ""
135
133
for result in results ["results" ]["bindings" ]:
136
134
if self .concept is not None and "item" not in result :
137
- result ["item" ]= {}
138
- result ["item" ]["value" ]= self .concept
139
- if "item" in result and "rel" in result and "val" in result and "geo" in result and (
140
- item == "" or result ["item" ]["value" ] != item ) and "geo" in mandatoryvars :
141
- relval = True
142
- if item != "" :
143
- self .addFeatureToCorrectCollection (LayerUtils .processLiteral (result ["geo" ]["value" ], (
144
- result ["geo" ]["datatype" ] if "datatype" in result ["geo" ] else "" ), reproject ,
145
- {'id' :result ["item" ]["value" ],'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ),
146
- 'geometry' : {}},
147
- self .triplestoreconf ),features ,nongeofeatures ,crsset )
148
- properties = {}
149
- item = result ["item" ]["value" ]
150
- if "item" in result and "rel" in result and "val" in result and "lat" in result and "lon" in result and (
135
+ result ["item" ]= {"value" :self .concept }
136
+ if "item" in result and "rel" in result and "val" in result :
137
+ QgsMessageLog .logMessage ('rel val' + str (len (features )),
138
+ MESSAGE_CATEGORY , Qgis .Info )
139
+ if "geo" in result and (item == "" or result ["item" ]["value" ] != item ) and "geo" in mandatoryvars :
140
+ QgsMessageLog .logMessage ('rel val + geo' + str (len (features )),
141
+ MESSAGE_CATEGORY , Qgis .Info )
142
+ if item != "" :
143
+ self .addFeatureToCorrectCollection (LayerUtils .processLiteral (result ["geo" ]["value" ], (
144
+ result ["geo" ]["datatype" ] if "datatype" in result ["geo" ] else "" ), reproject ,
145
+ {'id' :result ["item" ]["value" ],'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ),
146
+ 'geometry' : {}},
147
+ self .triplestoreconf ),features ,nongeofeatures ,crsset )
148
+ lastaddeditem = result ["item" ]["value" ]
149
+ elif "lat" in result and "lon" in result and (
151
150
item == "" or result ["item" ]["value" ] != item ) and "lat" in mandatoryvars and "lon" in mandatoryvars :
152
- relval = True
153
- if item != "" :
154
- self .addFeatureToCorrectCollection (LayerUtils .processLiteral (
155
- "POINT(" + str (float (result [lonval ]["value" ])) + " " + str (
156
- float (result [latval ]["value" ])) + ")" , "wkt" , reproject ,{'id' :result ["item" ]["value" ],'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ),
157
- 'geometry' : {}},self .triplestoreconf ),features ,nongeofeatures ,crsset )
158
- properties = {}
159
- item = result ["item" ]["value" ]
160
- if "item" in result and "rel" in result and "val" in result and geooptional and (
161
- item == "" or result ["item" ]["value" ] != item ):
162
- relval = True
163
- if item != "" :
164
- self .addFeatureToCorrectCollection ({'id' :result ["item" ]["value" ],'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ),
165
- 'geometry' : {}},features ,nongeofeatures ,crsset )
151
+ QgsMessageLog .logMessage ('rel val + lat lon' + str (len (features )),
152
+ MESSAGE_CATEGORY , Qgis .Info )
153
+ if item != "" :
154
+ self .addFeatureToCorrectCollection (LayerUtils .processLiteral (
155
+ "POINT(" + str (float (result [lonval ]["value" ])) + " " + str (
156
+ float (result [latval ]["value" ])) + ")" , "wkt" , reproject ,{'id' :result ["item" ]["value" ],'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ),
157
+ 'geometry' : {}},self .triplestoreconf ),features ,nongeofeatures ,crsset )
158
+ lastaddeditem = result ["item" ]["value" ]
159
+ elif geooptional and (item == "" or result ["item" ]["value" ] != item ):
160
+ QgsMessageLog .logMessage ('rel val + no geo' + str (len (features )),
161
+ MESSAGE_CATEGORY , Qgis .Info )
162
+ if item != "" :
163
+ self .addFeatureToCorrectCollection ({'id' :result ["item" ]["value" ],'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ),
164
+ 'geometry' : {}},features ,nongeofeatures ,crsset )
165
+ lastaddeditem = result ["item" ]["value" ]
166
166
properties = {}
167
167
item = result ["item" ]["value" ]
168
- if "rel" not in result and "val" not in result :
168
+ elif "rel" not in result and "val" not in result :
169
169
properties = {}
170
170
for var in results ["head" ]["vars" ]:
171
171
if var in result :
172
+ if var == "item" :
173
+ item = result ["item" ]["value" ]
172
174
if var == "rel" and "val" in result :
173
175
if self .shortenURIs :
174
176
properties [SPARQLUtils .labelFromURI (result [var ]["value" ])] = result ["val" ]["value" ]
@@ -190,43 +192,47 @@ def processResults(self, results, reproject, mandatoryvars, geooptional):
190
192
properties [SPARQLUtils .labelFromURI (result [var ]["value" ])] = SPARQLUtils .labelFromURI (result ["val" ]["value" ])
191
193
else :
192
194
properties [var ] = result [var ]["value" ]
193
- if not "rel" in result and not "val" in result and "geo" in result :
195
+ if "rel" not in result and "val" not in result :
196
+ QgsMessageLog .logMessage ('Not rel val ' + str (len (features )),
197
+ MESSAGE_CATEGORY , Qgis .Info )
198
+ if "geo" in result :
199
+ QgsMessageLog .logMessage ('Not rel val + geo' + str (len (features )),
200
+ MESSAGE_CATEGORY , Qgis .Info )
201
+ self .addFeatureToCorrectCollection (LayerUtils .processLiteral (result ["geo" ]["value" ], (
202
+ result ["geo" ]["datatype" ] if "datatype" in result ["geo" ] else "" ), reproject ,
203
+ {'id' : result ["item" ]["value" ], 'type' : 'Feature' ,
204
+ 'properties' : self .dropUnwantedKeys (properties ),'geometry' : {}},
205
+ self .triplestoreconf ),features ,nongeofeatures ,crsset )
206
+ lastaddeditem = result ["item" ]["value" ]
207
+ elif latval in result and lonval in result :
208
+ QgsMessageLog .logMessage ('Not rel val + lat lon' + str (len (features )),
209
+ MESSAGE_CATEGORY , Qgis .Info )
210
+ self .addFeatureToCorrectCollection (LayerUtils .processLiteral (
211
+ "POINT(" + str (float (result [lonval ]["value" ])) + " " + str (float (result [latval ]["value" ])) + ")" ,
212
+ "wkt" , reproject ,
213
+ {'id' : result ["item" ]["value" ], 'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ),
214
+ 'geometry' : {}},
215
+ self .triplestoreconf ),features ,nongeofeatures ,crsset )
216
+ lastaddeditem = result ["item" ]["value" ]
217
+ elif "geo" not in result and geooptional :
218
+ QgsMessageLog .logMessage ('Not rel val + no geo' + str (len (features )),
219
+ MESSAGE_CATEGORY , Qgis .Info )
220
+ self .addFeatureToCorrectCollection ({'id' :result ["item" ]["value" ],'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ), 'geometry' : {}},features ,nongeofeatures ,crsset )
221
+ lastaddeditem = result ["item" ]["value" ]
222
+
223
+ if len (results )> 0 and lastaddeditem != item :
224
+ if "geo" in properties :
194
225
self .addFeatureToCorrectCollection (LayerUtils .processLiteral (result ["geo" ]["value" ], (
195
- result ["geo" ]["datatype" ] if "datatype" in result ["geo" ] else "" ), reproject ,
196
- {'id' : result ["item" ]["value" ], 'type' : 'Feature' ,
197
- 'properties' : self .dropUnwantedKeys (properties ),'geometry' : {}},
198
- self .triplestoreconf ),features ,nongeofeatures ,crsset )
199
- elif not "rel" in result and not "val" in result and latval in result and lonval in result :
200
- self .addFeatureToCorrectCollection (LayerUtils .processLiteral (
201
- "POINT(" + str (float (result [lonval ]["value" ])) + " " + str (float (result [latval ]["value" ])) + ")" ,
202
- "wkt" , reproject ,
203
- {'id' : result ["item" ]["value" ], 'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ),
204
- 'geometry' : {}},
205
- self .triplestoreconf ),features ,nongeofeatures ,crsset )
206
- elif not "rel" in result and not "val" in result and not "geo" in result and geooptional :
207
- self .addFeatureToCorrectCollection ({'id' :result ["item" ]["value" ],'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ), 'geometry' : {}},features ,nongeofeatures ,crsset )
208
- #if relval and not geooptional and "lat" not in result and "lon" not in result:
209
- # self.addFeatureToCorrectCollection(LayerUtils.processLiteral(result["geo"]["value"], (
210
- # result["geo"]["datatype"] if "datatype" in result["geo"] else ""), reproject,
211
- # { 'id':result["item"]["value"],'type': 'Feature', 'properties': self.dropUnwantedKeys(properties), 'geometry': {}},self.triplestoreconf),features,nongeofeatures,crsset)
212
- #if relval and geooptional:
213
- # #myGeometryInstanceJSON = LayerUtils.processLiteral(result["geo"]["value"], (
214
- # # result["geo"]["datatype"] if "datatype" in result["geo"] else ""), reproject,self.triplestoreconf)
215
- # feature = {'type': 'Feature', 'properties': self.dropUnwantedKeys(properties), 'geometry': {}}#json.loads(myGeometryInstanceJSON)}
216
- # features.append(feature)
217
- #if len(features)==0:
218
- if "geo" in properties :
219
- self .addFeatureToCorrectCollection (LayerUtils .processLiteral (result ["geo" ]["value" ], (
220
- result ["geo" ]["datatype" ] if "datatype" in result ["geo" ] else "" ), reproject ,
221
- {'id' :result ["item" ]["value" ], 'type' : 'Feature' ,'properties' : self .dropUnwantedKeys (properties ),'geometry' : {}},
222
- self .triplestoreconf ),features ,nongeofeatures ,crsset )
223
- elif "lat" in properties and "lon" in properties :
224
- self .addFeatureToCorrectCollection (LayerUtils .processLiteral ("POINT(" + str (float (result [lonval ]["value" ]))
225
- + " " + str (float (result [latval ]["value" ])) + ")" ,
226
- "wkt" , reproject ,{'id' :result ["item" ]["value" ], 'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ), 'geometry' : {}},self .triplestoreconf ),features ,nongeofeatures ,crsset )
227
- else :
228
- self .addFeatureToCorrectCollection ({'id' :result ["item" ]["value" ], 'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ), 'geometry' : {}},features ,nongeofeatures ,crsset )
229
- QgsMessageLog .logMessage ('Number of features ' + str (len (features )),
226
+ result ["geo" ]["datatype" ] if "datatype" in result ["geo" ] else "" ), reproject ,
227
+ {'id' :result ["item" ]["value" ], 'type' : 'Feature' ,'properties' : self .dropUnwantedKeys (properties ),'geometry' : {}},
228
+ self .triplestoreconf ),features ,nongeofeatures ,crsset )
229
+ elif "lat" in properties and "lon" in properties :
230
+ self .addFeatureToCorrectCollection (LayerUtils .processLiteral ("POINT(" + str (float (result [lonval ]["value" ]))
231
+ + " " + str (float (result [latval ]["value" ])) + ")" ,
232
+ "wkt" , reproject ,{'id' :result ["item" ]["value" ], 'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ), 'geometry' : {}},self .triplestoreconf ),features ,nongeofeatures ,crsset )
233
+ else :
234
+ self .addFeatureToCorrectCollection ({'id' :result ["item" ]["value" ], 'type' : 'Feature' , 'properties' : self .dropUnwantedKeys (properties ), 'geometry' : {}},features ,nongeofeatures ,crsset )
235
+ QgsMessageLog .logMessage ('Number of features ' + str (len (features )),
230
236
MESSAGE_CATEGORY , Qgis .Info )
231
237
if features == [] and len (results ["results" ]["bindings" ]) == 0 :
232
238
return [None ,None ,None ]
0 commit comments