Using a buffer, you can get all the incidents within a specified radius of the point of interest. But what if you only want the 5, 10, or 15 closest incidents? To do that, you can use the <-> operator or k-nearest neighbor.
You can use the following code to select the 15 closest points to a specified point, p:
p = Point([-106.578677,35.062485])cursor.execute("SELECT ST_AsGeoJSON(incidents.geom), ST_Distance(incidents.geom::geography,ST_GeometryFromText('{}')::geography) from incidents ORDER BY incidents.geom<->ST_GeometryFromText('{}') LIMIT 15".format(p.wkt,p.wkt))c=cursor.fetchall()for x in c: layer=json.loads(x[0]) layergeojson=GeoJSON(data=layer) map.add_layer(layergeojson)
The previous code creates a point using Shapely, ...