From f1b20883b17c31462083a67a0494e9d46206b721 Mon Sep 17 00:00:00 2001 From: Sami Mokaddem Date: Thu, 26 Oct 2017 16:59:02 +0200 Subject: [PATCH] Added draft support of radius --- server.py | 26 +++++++++++- templates/geo.html | 100 +++++++++++++++++++++++++++++++++++++++++++-- zmq_subscriber.py | 7 ++++ 3 files changed, 129 insertions(+), 4 deletions(-) diff --git a/server.py b/server.py index 341a88c..a89e39a 100755 --- a/server.py +++ b/server.py @@ -2,7 +2,7 @@ from flask import Flask, render_template, request, Response, jsonify import json import redis -import random +import random, math import configparser from time import gmtime as now from time import sleep, strftime @@ -149,6 +149,30 @@ def getHitMap(): data = getZrange(keyCateg, dayNum, topNum) return jsonify(data) +@app.route("/_getCoordsByRadius") +def getCoordsByRadius(): + to_return = [] + try: + dateStart = datetime.datetime.fromtimestamp(float(request.args.get('dateStart'))) + dateEnd = datetime.datetime.fromtimestamp(float(request.args.get('dateEnd'))) + centerLat = request.args.get('centerLat') + centerLon = request.args.get('centerLon') + radius = int(math.ceil(float(request.args.get('radius')))) + except: + return jsonify(to_return) + + delta = dateEnd - dateStart + for i in range(delta.days+1): + correctDatetime = dateStart + datetime.timedelta(days=i) + date_str = str(correctDatetime.year)+str(correctDatetime.month)+str(correctDatetime.day) + keyCateg = 'GEO_RAD' + keyname = "{}:{}".format(keyCateg, date_str) + res = serv_redis_db.georadius(keyname, centerLon, centerLat, radius, unit='km', withcoord=True) + res = [ [json.loads(data), coord] for data, coord in res ] #correctly send the json + to_return.append(res) + + return jsonify(to_return) + @app.route("/_logs") def logs(): return Response(event_stream_log(), mimetype="text/event-stream") diff --git a/templates/geo.html b/templates/geo.html index 06b2fb3..bfc6bc5 100644 --- a/templates/geo.html +++ b/templates/geo.html @@ -28,6 +28,9 @@ .panel-body { padding: 0px; } + .panel { + margin-bottom: 10px; + } .col-lg-6 { padding-right: 5px; @@ -69,7 +72,7 @@ small {