def __init__(self):
        global location
        global talker
        global loading
        global track
        global marker
        global auto_center
        talker = testtalker.TestTalker("data/gps2.out", 0)
        talker.runLoop()
        auto_center = True
        loading = True
        track = [] #where I've been

        self.window = gtk.Window()
        self.window.set_border_width(10)
        self.window.set_title("Shortqut v0.5a")
        self.window.connect("destroy", lambda x: self.cleanup())

        vbox = gtk.VBox(False, 12) 

        champ = champlaingtk.ChamplainEmbed()
        champ.set_size_request(640,480)

        self.view = champ.get_view()
        self.view.set_reactive(True)
        self.view.connect('button-release-event', self.mouse_click_cb, self.view)

        self.view.set_property('scroll-mode', champlain.SCROLL_MODE_KINETIC)
        self.view.set_property('zoom-level', 15)
        self.view.set_property('license-text', ".")
        self.view.set_property('show-scale', True)
        
        layer = champlain.Layer()
        self.view.add_layer(layer)
        
        self.map_source_factory = champlain.map_source_factory_dup_default()
        self.map_data_source = None
        self.load_memphis_rules()
        self.load_osm_file()
        
        #Add the image
        '''
        bboxTitle = gtk.HBox(False, 6)
        image = gtk.Image()
        image.set_from_file("Shortqut_banner.jpg")
        bboxTitle.add(image)
        image.show()
        vbox.pack_start(bboxTitle, expand = False, fill = False)
        '''
        
        #Add the buttons
        bbox = gtk.HBox(False, 6)

        #Add the label
        self.label = gtk.Label("Loading OSM File")
        bbox.add(self.label)

        center_check = gtk.CheckButton("Centered")
        center_check.set_active(True)
        center_check.connect("clicked", self.toggle_auto_centered)
        bbox.add(center_check)
        
        button = gtk.Button(stock=gtk.STOCK_ZOOM_IN)
        button.connect("clicked", self.zoom_in)
        bbox.add(button)

        button = gtk.Button(stock=gtk.STOCK_ZOOM_OUT)
        button.connect("clicked", self.zoom_out)
        bbox.add(button)

        
        
        self.spinbutton = gtk.SpinButton(gtk.Adjustment(lower=0, upper=20, 
            value=1, step_incr=1))
        self.spinbutton.connect("changed", self.zoom_changed)
        self.view.connect("notify::zoom-level", self.map_zoom_changed)
        self.spinbutton.set_value(15)
        bbox.add(self.spinbutton)

        button = gtk.Image()
        self.view.connect("notify::state", self.view_state_changed, button)
        bbox.pack_end(button, False, False, 0)        

        vbox.pack_start(bbox, expand=False, fill=False)
        vbox.add(champ)

        self.window.add(vbox)

        self.window.show_all()


        #lat = 28.568542 + (random.random() - 0.5)
        #lon = -81.207504 + (random.random() - 0.5)
        lat = 28.541492
        lon = -81.195965
        self.view.center_on(lat,lon)
        
        
        #Set up and position sprite
        actor = clutter.Texture(filename="pirate-ship-1.jpg")
        marker = champlain.marker_new_with_image(actor)
        marker.set_draw_background(False)
        #marker.set_position(0,0)
        marker.set_position(lat,lon)
        layer.add(marker)
        marker.raise_top()

        self.draw_route(gpsfiletoroute("data/gps2.out"))

        location = talker.getMsg()
        #gobject.timeout_add(1000, random_view, self.view)
        gobject.timeout_add(500, center_gps, self.view, location)
        gobject.timeout_add(1000, is_loaded, self.view, self.label)
Exemplo n.º 2
0
    def __init__(self):
	global location
	global talker
        #talker = gpstalker.GPSTalker()
        #talker.runLoop()

        self.window = gtk.Window()
        self.window.set_border_width(10)
        self.window.set_title("Shortqut v0.5a")
        self.window.connect("destroy", gtk.main_quit)

        vbox = gtk.VBox(False, 12) #look up what vbox does, does this need to be changed?

        champ = champlaingtk.ChamplainEmbed()
        champ.set_size_request(640,480)

        self.view = champ.get_view()
        self.view.set_reactive(True)
        self.view.connect('button-release-event', self.mouse_click_cb, self.view)

        self.view.set_property('scroll-mode', champlain.SCROLL_MODE_KINETIC)
        self.view.set_property('zoom-level', 12)
        self.view.set_property('license-text', "Alpha version, not for release")
        self.view.set_property('show-scale', True)
        self.map_source_factory = champlain.map_source_factory_dup_default()
        self.map_data_source = None
        self.load_memphis_rules()
        self.load_osm_file()

        bbox = gtk.HBox(False, 6)
        button = gtk.Button(stock=gtk.STOCK_ZOOM_IN)
        button.connect("clicked", self.zoom_in)
        bbox.add(button)

        button = gtk.Button(stock=gtk.STOCK_ZOOM_OUT)
        button.connect("clicked", self.zoom_out)
        bbox.add(button)

        self.spinbutton = gtk.SpinButton(gtk.Adjustment(lower=0, upper=20, 
            value=1, step_incr=1))
        self.spinbutton.connect("changed", self.zoom_changed)
        self.view.connect("notify::zoom-level", self.map_zoom_changed)
        self.spinbutton.set_value(12)
        bbox.add(self.spinbutton)

        button = gtk.Image()
        self.view.connect("notify::state", self.view_state_changed, button)
        bbox.pack_end(button, False, False, 0)        

        vbox.pack_start(bbox, expand=False, fill=False)
        vbox.add(champ)

        self.window.add(vbox)

        self.window.show_all()


        #lat = 28.568542 + (random.random() - 0.5)
        lat = 28.568542
        #lon = -81.207504 + (random.random() - 0.5)
        lon = -81.207504 
        self.view.center_on(lat,lon)
Exemplo n.º 3
0
    def __init__(self):
        self.window = gtk.Window()
        self.window.set_border_width(10)
        self.window.set_title("The world seen through the eyes of a Python")
        self.window.connect("destroy", gtk.main_quit)

        vbox = gtk.VBox(False, 12)

        embed = champlaingtk.ChamplainEmbed()
        embed.set_size_request(640, 480)

        self.view = embed.get_view()

        self.layer = create_marker_layer(self.view)
        self.view.add_layer(self.layer)
        self.layer.hide_all_markers()

        self.polygon = polygon = champlain.Polygon()
        # Cheap approx of Highway 10
        polygon.append_point(45.4095, -73.3197)
        polygon.append_point(45.4104, -73.2846)
        polygon.append_point(45.4178, -73.2239)
        polygon.append_point(45.4176, -73.2181)
        polygon.append_point(45.4151, -73.2126)
        polygon.append_point(45.4016, -73.1926)
        polygon.append_point(45.3994, -73.1877)
        polygon.append_point(45.4000, -73.1815)
        polygon.append_point(45.4151, -73.1218)
        polygon.set_stroke_width(5.0);
        polygon.set_property("mark-points", True)
        self.view.add_polygon(polygon)
        polygon.hide()

        bbox = gtk.HBox(False, 6)
        button = gtk.Button(stock=gtk.STOCK_ZOOM_IN)
        button.connect("clicked", self.zoom_in)
        bbox.add(button)

        button = gtk.Button(stock=gtk.STOCK_ZOOM_OUT)
        button.connect("clicked", self.zoom_out)
        bbox.add(button)

        button = gtk.ToggleButton(label="Markers")
        button.set_active(False)
        button.connect("toggled", self.toggle_layer)
        bbox.add(button)

        combo = gtk.combo_box_new_text()
        self.map_source_factory = champlain.map_source_factory_dup_default()
        liststore = gtk.ListStore(str, str)
        for source in self.map_source_factory.dup_list():
            liststore.append([source.id, source.name])
            combo.append_text(source.name)
        combo.set_model(liststore)
        combo.set_attributes(combo.get_cells()[0], text=1)
        combo.set_active(0)
        combo.connect("changed", self.map_source_changed)
        bbox.add(combo)

        self.spinbutton = gtk.SpinButton(gtk.Adjustment(lower=0, upper=20, 
            value=1, step_incr=1))
        self.spinbutton.connect("changed", self.zoom_changed)
        self.view.connect("notify::zoom-level", self.map_zoom_changed)
        self.spinbutton.set_value(5)
        bbox.add(self.spinbutton)

        vbox.pack_start(bbox, expand=False, fill=False)
        vbox.add(embed)

        self.window.add(vbox)

        self.window.show_all()
        self.view.center_on(45.466, -73.75)
Exemplo n.º 4
0
    def __init__(self):
        self.location = None #current (time, lat, lon)
        self.loading = True #loading osm file?
        self.track = [] #where I've been
        self.track_route = None #route of track
        self.next_click = False #when true, next click choose destination
        self.marker = None #clutter marker of where I am right now
        self.auto_center = True #auto center map
        self.running = True
        self.tick = 1

        self.data_filename = "data/gps2.out"

        self.talker = testtalker.TestTalker(self.data_filename, 0)
        self.talker.runLoop()

        self.window = gtk.Window()
        self.window.set_border_width(10)
        self.window.set_title("Shortqut v0.5a")
        self.window.connect("destroy", lambda x: self.cleanup())

        vbox = gtk.VBox(False, 12) 

        champ = champlaingtk.ChamplainEmbed()
        champ.set_size_request(640,480)

        self.view = champ.get_view()
        self.view.set_reactive(True)
        self.view.connect('button-release-event', self.mouse_click_cb, self.view)

        self.view.set_property('scroll-mode', champlain.SCROLL_MODE_KINETIC)
        self.view.set_property('zoom-level', 15)
        self.view.set_property('license-text', ".")
        self.view.set_property('show-scale', True)
        
        self.map_source_factory = champlain.map_source_factory_dup_default()
        self.map_data_source = None
        self.load_memphis_rules()
        self.load_osm_file()
        
        #Add the image
        bboxTitle = gtk.HBox(False, 6)
        image = gtk.Image()
        image.set_from_file("Shortqut_banner.jpg")
        bboxTitle.add(image)
        image.show()
        vbox.pack_start(bboxTitle, expand = False, fill = False)
        
        #Add the buttons
        bbox = gtk.HBox(False, 6)

        '''
        button = gtk.Button("Set")
        button.connect("clicked", self.set_destination)
        bbox.add(button)
        '''
        
        #Add the label
        self.label = gtk.Label("Loading OSM File")
        bbox.add(self.label)

        center_check = gtk.CheckButton("Centered")
        center_check.set_active(True)
        center_check.connect("clicked", self.toggle_auto_centered)
        bbox.add(center_check)
        
        button = gtk.Button(stock=gtk.STOCK_ZOOM_IN)
        button.connect("clicked", self.zoom_in)
        bbox.add(button)

        button = gtk.Button(stock=gtk.STOCK_ZOOM_OUT)
        button.connect("clicked", self.zoom_out)
        bbox.add(button)

        
        
        self.spinbutton = gtk.SpinButton(gtk.Adjustment(lower=0, upper=20, 
            value=1, step_incr=1))
        self.spinbutton.connect("changed", self.zoom_changed)
        self.view.connect("notify::zoom-level", self.map_zoom_changed)
        self.spinbutton.set_value(15)
        bbox.add(self.spinbutton)

        button = gtk.Image()
        self.view.connect("notify::state", self.view_state_changed, button)
        bbox.pack_end(button, False, False, 0)        

        vbox.pack_start(bbox, expand=False, fill=False)
        vbox.add(champ)

        self.window.add(vbox)

        self.window.show_all()

        self.marker = self.setup_marker()        
        
        self.draw_route(gpsfiletoroute(self.data_filename))

        #self.location = self.talker.getMsg()
        gobject.timeout_add(300, self.update_tick)
        gobject.timeout_add(1000, self.is_loaded)