Exemple #1
0
 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
Exemple #2
0
 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
Exemple #3
0
 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
Exemple #4
0
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
Exemple #5
0
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}
Exemple #6
0
 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")