def setUp(self): self.testOGCQuerier = SurveyQuerierFactory().createQuerier( SurveyGisServer.OGC) self.testGeonodeQuerier = SurveyQuerierFactory().createQuerier( SurveyGisServer.GEONODE) self.testArcRESTQuerier = SurveyQuerierFactory().createQuerier( SurveyGisServer.ARCREST) settings.CELERY_ALWAYS_EAGER = True
def setUp(self): self.testOGCQuerier = SurveyQuerierFactory().createQuerier( SurveyGisServer.OGC) self.testGeonodeQuerier = SurveyQuerierFactory().createQuerier( SurveyGisServer.GEONODE) self.testArcRESTQuerier = SurveyQuerierFactory().createQuerier( SurveyGisServer.ARCREST) self.liegePolygon = Polygon( ((235745, 147615), (235745, 147616), (235746, 147616), (235746, 147615), (235745, 147615))) self.multiPolygonWKT = "MULTIPOLYGON(((235424.935 148687.065,235429.244 148689.993,235429.943 148689.086,235433.273 148691.635,235438.99 148684.223,235443.735 148678.077,235445.516 148679.44,235454.802 148668.44,235453.069 148665.975,235448.739 148659.82,235433.586 148682.192,235429.837 148679.679,235426.711 148684.39,235424.935 148687.065)),((241020.367 152036.194,241024.691 152041.929,241036.183 152032.719,241031.701 152026.956,241020.367 152036.194)))" with open('imio_survey/test_data/liege.wkt', 'r') as liegeWKTFile: self.liegeWKT = liegeWKTFile.read().replace('\n', '') settings.CELERY_ALWAYS_EAGER = True
def _processQuery(self, survey_layer_param, survey_attribute_param, survey_area_filter): result = None if survey_layer_param: if survey_attribute_param: try: survey_layer = SurveyLayer.objects.get( pk=survey_layer_param) querier = SurveyQuerierFactory().createQuerier( survey_layer.gis_server.servertype) if querier.supportFindAttributeValues(): find_attributes_result = querier.findAttributeValues( survey_layer.layer_name, survey_attribute_param, survey_layer.gis_server.url, survey_layer.gis_server.username, survey_layer.gis_server.password, survey_area_filter) if find_attributes_result: result = { 'success': True, 'message': "Success", 'result': find_attributes_result } else: result = { 'success': False, 'message': "Error : backend query failed", 'result': None } else: result = { 'success': False, 'message': "Error : Server Backend for this layer does not support to query values.", 'result': None } except ObjectDoesNotExist: result = { 'success': False, 'message': "Error : Provided layer %s does not exist in database" % (survey_layer_param), 'result': None } else: result = { 'success': False, 'message': "Error : Parameter att (SurveyAttributeName) is missing", 'result': None } else: result = { 'success': False, 'message': "Error : Parameter l (SurveyLayer) is missing", 'result': None } return result
def queryLayer(layer_pk, wktGeometry, buffer): geosGeom = fromstr(wktGeometry) geosGeomBuffer = geosGeom.buffer(buffer) layer = SurveyLayer.objects.get(pk=layer_pk) logger.info("Querying layer %s (%s)" % (layer.description, layer.layer_name)) gis_server = layer.gis_server query_result = { 'layer_id': layer.id, 'description': layer.description, 'name': layer.layer_name, 'attributes': None, 'success': False, 'message': None } try: querier = SurveyQuerierFactory().createQuerier(gis_server.servertype) result = querier.identify(geosGeomBuffer, layer.geometry_field_name, layer.layer_name, gis_server.url, gis_server.username, gis_server.password) query_result['attributes'] = result query_result['success'] = True except urllib2.HTTPError, error: query_result['success'] = False query_result['message'] = "HTTPError : " + str( error.code) + error.filename
def queryLayer(layer_pk, wktGeometry, buffer): geosGeom = fromstr(wktGeometry) geosGeomBuffer = geosGeom.buffer(buffer) layer = SurveyLayer.objects.get(pk=layer_pk) logger.info("Querying layer %s" % layer.layer_name) gis_server = layer.gis_server querier = SurveyQuerierFactory().createQuerier(gis_server.servertype) result = querier.identify(geosGeomBuffer, layer.layer_name, gis_server.url) return {'name': layer.layer_name, 'attributes': result}
def get(self, request, *args, **kwargs): result = None survey_layer_param = request.GET.get("l", None) #SurveyLayer if survey_layer_param: survey_layer = SurveyLayer.objects.get(pk=survey_layer_param) querier = SurveyQuerierFactory().createQuerier( survey_layer.gis_server.servertype) fields = querier.getFields(survey_layer.layer_name, survey_layer.gis_server.url, survey_layer.gis_server.username, survey_layer.gis_server.password) result = {'success': True, 'message': "Ok", 'result': fields} else: result = { 'success': False, 'message': "Error : Parameter l (SurveyLayer) is missing", 'result': None } return HttpResponse(json.dumps(result), content_type="application/json; charset=utf-8")