Пример #1
0
def get_features_in_country_subdivision(request, country_subdivision_code):
    country_subdivision_code = country_subdivision_code.upper()
    
    split_values=country_subdivision_code.split("-")
    if len(split_values)==1:
        """ Return geographic feature matching country & subdivision_code. """
        return get_document_by(request, search_in=('url',), 
                           country_code=split_values[0])
    
    return get_document_by(request, search_in=('url',), 
                           country_code=split_values[0], subdivision_code=split_values[1])
Пример #2
0
def get_json_feature_by_id_and_epoch(request, feature_id, 
                                     epoch, collection_name=None):   
    #import ipdb; ipdb.set_trace()
    
    if epoch=="all":
        return get_document_by(request, id=feature_id,
                           search_in=('url',),
                           collection_name=[settings.MONGO_DB_NAME,
                                            settings.MONGO_HISTORYDB_NAME])
    else:
        """ Return geographic feature matching feature_id and epoch. """
        return get_document_by(request, id=feature_id, epoch=epoch,
                           search_in=('url',), collection_name=collection_name)
Пример #3
0
def get_features_near_point(request, lat, lon, max_distance=None, limit=None):
    """
        Return a geographic features located neat these coordinates.
    """
    ll = {'$near':[float(lat), float(lon)]}
    if max_distance:
        md={'$maxDistance': max_distance}
        q=SON(ll)
        q.update(md)
        return get_document_by(request, limit=limit, search_in=('url', 'get'),
                               geometry_coordinates=q,
                               )
    else:
        return get_document_by(request, limit=limit, search_in=('url', 'get'),
                               geometry_coordinates=ll,
                               )
Пример #4
0
def get_features_in_boundingbox(request, botleft_lon, botleft_lat,
                                topright_lon, topright_lat):
    """
        Return a geographic features located withing the bouding box and 
        matching GET parameters if any.
    """
    botleft = [float(botleft_lon), float(botleft_lat)]
    topright = [float(topright_lon), float(topright_lat)]
    searchbox = {'$box': [botleft, topright]}
    
    return get_document_by(request, search_in=('url', 'get'),
                           geometry_coordinates={'$within': searchbox})
Пример #5
0
def get_qr_feature_by_id(request, feature_id, collection_name=None):
    """
        Return QR code image matching the geographic feature matching
        feature_id.
    """
    json_response = get_document_by(request, id=feature_id, search_in=('url',),
                           collection_name=collection_name)
    
    jr=json.loads(json_response.content)
    if jr['status'] != 200:
        return json_response
   
    response = HttpResponse(mimetype="image/png")
    image = qrencode.encode_scaled(json_response.content, 400)
    image[2].save(response, "PNG")
    return response
Пример #6
0
def edit_feature(request, feature_id, collection_name=None):
    """
        Edit specific Fields in a geographic feature and save changes in Mongo DB.
        
        If the feature doesn't exits, return a 404 error.
    """
   
    if request.method == 'POST':
        return edit_document(request, feature_id, FeatureUpdateUploadForm)

    r = get_document_by(request, id=feature_id, search_in=('get',),
                        collection_name=collection_name)
    
    r=raw_query_mongo_db({'id': feature_id}, collection_name=collection_name)
    
    r['results'][0].update({'feature_id':r['results'][0]['id']})

    return render_to_response('upload/feature.html', 
                              {'form': FeatureEditUploadForm(r['results'][0])},
                              context_instance = RequestContext(request))
Пример #7
0
def get_features_at_point(request, lon, lat):
    """
        Return a geographic features located at these exact coordinates.
    """
    return get_document_by(request, 
                           geometry_coordinates=[float(lon), float(lat)])
Пример #8
0
def get_features_search_dict(request, limit=50, skip=0, simplify=0):
    """
        Return a geographic features matching GET parameters.
    """
    return get_document_by(request, limit, skip, simplify, search_in=('get',))
Пример #9
0
def get_json_feature_by_id(request, feature_id, collection_name=None): 
    """ Return geographic feature matching feature_id. """
    return get_document_by(request, id=feature_id, search_in=('url',),
                           collection_name=collection_name)