def draw(self, proj, mouse_x, mouse_y, ui_manager): self.painter = BatchPainter() self.painter.set_color([0,0,255]) df = self.data.where((self.data['timestamp'] > self.t) & (self.data['timestamp'] <= self.t + 30*60)) proj.fit(BoundingBox.from_points(lons=df['lon'], lats=df['lat']), max_zoom=14) x, y = proj.lonlat_to_screen(df['lon'], df['lat']) self.painter.linestrip(x, y, 10) self.t += 30 if self.t > self.data['timestamp'].max(): self.t = self.data['timestamp'].min() self.painter.batch_draw() ui_manager.info(epoch_to_str(self.t))
def draw(self, proj, mouse_x, mouse_y, ui_manager): self.painter = BatchPainter() df = self.data.where((self.data['timestamp'] > self.t) & (self.data['timestamp'] <= self.t + 15*60)) for taxi_id in set(df['taxi_id']): grp = df.where(df['taxi_id'] == taxi_id) self.painter.set_color(self.cmap[taxi_id]) x, y = proj.lonlat_to_screen(grp['lon'], grp['lat']) self.painter.points(x, y, 10) self.t += 2*60 if self.t > self.data['timestamp'].max(): self.t = self.data['timestamp'].min() self.painter.batch_draw() ui_manager.info(epoch_to_str(self.t))
def draw(self, proj, mouse_x, mouse_y, ui_manager): self.painter = BatchPainter() df = self.data.where((self.data['timestamp'] > self.t) & (self.data['timestamp'] <= self.t + 15 * 60)) for taxi_id in set(df['taxi_id']): grp = df.where(df['taxi_id'] == taxi_id) self.painter.set_color(self.cmap[taxi_id]) x, y = proj.lonlat_to_screen(grp['lon'], grp['lat']) self.painter.points(x, y, 10) self.t += 2 * 60 if self.t > self.data['timestamp'].max(): self.t = self.data['timestamp'].min() self.painter.batch_draw() ui_manager.info(epoch_to_str(self.t))
def draw(self, proj, mouse_x, mouse_y, ui_manager): self.painter = BatchPainter() df = self.data.where((self.data['timestamp'] > self.t) & (self.data['timestamp'] <= self.t + 24*3600)) #set minimum time interval for name in set(df['name']): grp = df.where(df['name'] == name) self.painter.set_color('blue') #set color, default: self.cmap[name] x0, y0 = proj.lonlat_to_screen(grp['Slon'], grp['Slat']) x1, y1 = proj.lonlat_to_screen(grp['Flon'], grp['Flat']) self.painter.points(x0, y0, 3) self.painter.lines(x0,y0,x1,y1,width=3) self.t += 24*3600 #set animation step size if self.t > self.data['timestamp'].max(): self.t = self.data['timestamp'].min() self.painter.batch_draw() ui_manager.info(epoch_to_str(self.t))