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
|
local_radius = trip_len * point_altruism
|
||||||
destination_radius = trip_len * dest_altruism
|
destination_radius = trip_len * dest_altruism
|
||||||
|
|
||||||
# TODO: filter by timestamp
|
|
||||||
|
|
||||||
# these are bikes around me
|
# these are bikes around me
|
||||||
local = [bike for bike in
|
local = [bike for bike in
|
||||||
self.db.bike.find(
|
self.db.bike.find(
|
||||||
@ -114,7 +112,7 @@ class Bike(Document):
|
|||||||
'coordinates': self.point},
|
'coordinates': self.point},
|
||||||
'$maxDistance': local_radius}},
|
'$maxDistance': local_radius}},
|
||||||
'last_update': {
|
'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)}})]
|
'_id': {'$ne': bson.objectid.ObjectId(self.id)}})]
|
||||||
|
|
||||||
local_ids = set([bike['_id'] for bike in local])
|
local_ids = set([bike['_id'] for bike in local])
|
||||||
@ -141,11 +139,14 @@ class Bike(Document):
|
|||||||
flock = Flock(self.find_flock())
|
flock = Flock(self.find_flock())
|
||||||
if flock.size > 0:
|
if flock.size > 0:
|
||||||
flock_heading = self.heading_to(flock.centroid)
|
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],
|
flock_distance = distance.geodesic((self.point[1],
|
||||||
self.point[0]), (self.destination[1],
|
self.point[0]), (self.destination[1],
|
||||||
self.destination[0])).meters
|
self.destination[0])).meters
|
||||||
return {'flock_heading': flock_heading,
|
return {'flock_heading': flock_heading,
|
||||||
'flock_distance': flock_distance,
|
'flock_lat': flock_lat,
|
||||||
|
'flock_lon': flock_lon,
|
||||||
'flock_avg_speed': flock.mean_speed,
|
'flock_avg_speed': flock.mean_speed,
|
||||||
'flock_size': flock.size}
|
'flock_size': flock.size}
|
||||||
else:
|
else:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user