compute distance to flock on client side
This commit is contained in:
parent
2c0d29f154
commit
c56f6fe0a8
9
model.py
9
model.py
@ -102,8 +102,6 @@ class Bike(Document):
|
||||
local_radius = trip_len * point_altruism
|
||||
destination_radius = trip_len * dest_altruism
|
||||
|
||||
# TODO: filter by timestamp
|
||||
|
||||
# these are bikes around me
|
||||
local = [bike for bike in
|
||||
self.db.bike.find(
|
||||
@ -114,7 +112,7 @@ class Bike(Document):
|
||||
'coordinates': self.point},
|
||||
'$maxDistance': local_radius}},
|
||||
'last_update': {
|
||||
'$gte': datetime.datetime.now() - datetime.timedelta(minutes=15)},
|
||||
'$gte': datetime.datetime.now() - datetime.timedelta(minutes=15)}, # TODO: adjust this
|
||||
'_id': {'$ne': bson.objectid.ObjectId(self.id)}})]
|
||||
|
||||
local_ids = set([bike['_id'] for bike in local])
|
||||
@ -141,11 +139,14 @@ class Bike(Document):
|
||||
flock = Flock(self.find_flock())
|
||||
if flock.size > 0:
|
||||
flock_heading = self.heading_to(flock.centroid)
|
||||
flock_lat = float(flock.centroid.lat)
|
||||
flock_lon = float(flock.centroid.lon)
|
||||
flock_distance = distance.geodesic((self.point[1],
|
||||
self.point[0]), (self.destination[1],
|
||||
self.destination[0])).meters
|
||||
return {'flock_heading': flock_heading,
|
||||
'flock_distance': flock_distance,
|
||||
'flock_lat': flock_lat,
|
||||
'flock_lon': flock_lon,
|
||||
'flock_avg_speed': flock.mean_speed,
|
||||
'flock_size': flock.size}
|
||||
else:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user