def child_task(self): '''child process - this holds all the GUI elements''' mp_util.child_close_fds() from MAVProxy.modules.lib import wx_processguard from MAVProxy.modules.lib.wx_loader import wx from MAVProxy.modules.mavproxy_map.mp_slipmap_ui import MPSlipMapFrame state = self self.mt = mp_tile.MPTile(download=self.download, service=self.service, tile_delay=self.tile_delay, debug=self.debug, max_zoom=self.max_zoom) state.layers = {} state.info = {} state.need_redraw = True self.app = wx.App(False) self.app.SetExitOnFrameDelete(True) self.app.frame = MPSlipMapFrame(state=self) self.app.frame.Show() self.app_ready.set() self.app.MainLoop()
def create_imagefile(options, filename, latlon, ground_width, path_objs, mission_obj, fence_obj, width=600, height=600): '''create path and mission as an image file''' mt = mp_tile.MPTile(service=options.service) map_img = mt.area_to_image(latlon[0], latlon[1], width, height, ground_width) while mt.tiles_pending() > 0: print("Waiting on %u tiles" % mt.tiles_pending()) time.sleep(1) map_img = mt.area_to_image(latlon[0], latlon[1], width, height, ground_width) # a function to convert from (lat,lon) to (px,py) on the map pixmapper = functools.partial(pixel_coords, ground_width=ground_width, mt=mt, topleft=latlon, width=width) for path_obj in path_objs: path_obj.draw(map_img, pixmapper, None) if mission_obj is not None: for m in mission_obj: m.draw(map_img, pixmapper, None) if fence_obj is not None: fence_obj.draw(map_img, pixmapper, None) map_img = cv2.cvtColor(map_img, cv2.COLOR_BGR2RGB) cv2.imwrite(filename, map_img)
def create_imagefile(options, filename, latlon, ground_width, path_objs, mission_obj, fence_obj, width=600, height=600, used_flightmodes=[], mav_type=None): '''create path and mission as an image file''' mt = mp_tile.MPTile(service=options.service) map_img = mt.area_to_image(latlon[0], latlon[1], width, height, ground_width) while mt.tiles_pending() > 0: print("Waiting on %u tiles" % mt.tiles_pending()) time.sleep(1) map_img = mt.area_to_image(latlon[0], latlon[1], width, height, ground_width) # a function to convert from (lat,lon) to (px,py) on the map pixmapper = functools.partial(pixel_coords, ground_width=ground_width, mt=mt, topleft=latlon, width=width) for path_obj in path_objs: path_obj.draw(map_img, pixmapper, None) if mission_obj is not None: for m in mission_obj: m.draw(map_img, pixmapper, None) if fence_obj is not None: fence_obj.draw(map_img, pixmapper, None) if (options is not None and mav_type is not None and options.colour_source == "flightmode"): tuples = [ (mode, colour_for_flightmode(mav_type, mode)) for mode in used_flightmodes.keys() ] legend = mp_slipmap.SlipFlightModeLegend("legend", tuples) legend.draw(map_img, pixmapper, None) map_img = cv2.cvtColor(map_img, cv2.COLOR_BGR2RGB) cv2.imwrite(filename, map_img)
def create_imagefile(filename, latlon, ground_width, path_obj, mission_obj, width=600, height=600, path2_obj=None): '''create path and mission as an image file''' mt = mp_tile.MPTile(service=opts.service) map_img = mt.area_to_image(latlon[0], latlon[1], width, height, ground_width) while mt.tiles_pending() > 0: print("Waiting on %u tiles" % mt.tiles_pending()) time.sleep(1) map_img = mt.area_to_image(latlon[0], latlon[1], width, height, ground_width) # a function to convert from (lat,lon) to (px,py) on the map pixmapper = functools.partial(pixel_coords, ground_width=ground_width, mt=mt, topleft=latlon, width=width) path_obj.draw(map_img, pixmapper, None) if path2_obj is not None: path2_obj.draw(map_img, pixmapper, None) if mission_obj is not None: mission_obj.draw(map_img, pixmapper, None) cv.CvtColor(map_img, map_img, cv.CV_BGR2RGB) cv.SaveImage(filename, map_img)
def child_task(self): '''child process - this holds all the GUI elements''' import wx state = self self.mt = mp_tile.MPTile(download=self.download, service=self.service, tile_delay=self.tile_delay, debug=self.debug, max_zoom=self.max_zoom) state.layers = {} state.info = {} state.need_redraw = True self.app = wx.PySimpleApp() self.app.frame = MPSlipMapFrame(state=self) self.app.frame.Show() self.app.MainLoop()