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])
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)
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, )
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})
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
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))
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)])
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',))
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)