From 08bee9d9473e07d2b0861b03817fa533bf6e2a23 Mon Sep 17 00:00:00 2001 From: Christian Quest Date: Mon, 9 May 2016 16:11:17 +0200 Subject: [PATCH] distance is now optional in 'near' search (defaults to 1m) --- backend.py | 6 +++++- swagger.json | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/backend.py b/backend.py index 307dc94..7741e04 100644 --- a/backend.py +++ b/backend.py @@ -77,7 +77,11 @@ class EventResource(object): event_dist = "" elif 'near' in req.params: # limit search with location+distance (long, lat, distance in meters) - event_bbox = cur.mogrify(" AND ST_Intersects(geom, ST_Buffer(st_setsrid(st_makepoint(%s,%s),4326)::geography,%s)::geometry) ",tuple(req.params['near'])).decode("utf-8") + if len(req.params['near'])<3: + dist = 1 + else: + dist = req.params['near'][2] + event_bbox = cur.mogrify(" AND ST_Intersects(geom, ST_Buffer(st_setsrid(st_makepoint(%s,%s),4326)::geography,%s)::geometry) ",(req.params['near'][0], req.params['near'][1], dist)).decode("utf-8") event_dist = cur.mogrify(", 'distance', ST_Length(ST_ShortestLine(geom, st_setsrid(st_makepoint(%s,%s),4326))::geography) ",(req.params['near'][0], req.params['near'][1])).decode("utf-8") else: event_bbox = "" diff --git a/swagger.json b/swagger.json index 764df6d..dfee984 100644 --- a/swagger.json +++ b/swagger.json @@ -84,7 +84,7 @@ { "name": "near", "in": "query", - "description": "Event search by distance (long, lat, distance in meters)", + "description": "Event search by distance (long, lat, optional distance in meters)", "required": false, "type": "string", "x-example": "2.5,48.8,500"