Exemple #1
0
    def capital_cb(self, data):
        """Called when the page of a capital is downloaded. The page is 
        expected to have the coordinates of the capital."""
        soup = BeautifulSoup(data)
        heading = soup.find("h1", { "id" : "firstHeading" })
        if not heading:
            return
        name = heading.contents[0]

        geo = soup.find("span", { "class" : "geo" })
        if not geo:
            return
        latitude, longitude = geo.contents[0].split(";")
        latitude = float(latitude)
        longitude = float(longitude)

        # Keep only a few capitals at each iteration we remove a capital
        if len(self.markers) == 5:
            marker = self.markers[0]
            self.layer.remove(marker)
            self.markers.remove(marker)

        font = "Sans 15"
        white = clutter.Color(0xff, 0xff, 0xff, 0xff)
        orange = clutter.Color(0xf3, 0x94, 0x07, 0xbb)
        black = clutter.Color(0x00, 0x00, 0x00, 0xff)

        if self.markers:
		    #Change the colour of the last marker's text
            last = self.markers.pop()
            self.layer.remove(last)
            marker = champlain.marker_new_with_text(last.name, font, black, orange)
            marker.set_position(last.get_property("latitude"), \
                last.get_property("longitude"))
            self.markers.append(marker)
            self.layer.add(marker)
            marker.raise_top()

        marker = champlain.marker_new_with_text(name, font, white, orange)
        marker.set_position(latitude, longitude)
        marker.name = name
        self.markers.append(marker)
        self.layer.add(marker)
        marker.raise_top()
        self.map.go_to(latitude, longitude)
    def add_marker(self, text, latitude, longitude, bg_color=None, text_color=None, font="Airmole 8"):
        if not text_color:
            text_color = self.white
            
        if not bg_color:
            bg_color = self.gray
        
        marker = champlain.marker_new_with_text(text, font, text_color, bg_color)

        #marker.set_position(38.575935, -7.921326)
        if latitude and longitude:
            marker.set_position(latitude, longitude)
        self.add(marker)
        return marker
Exemple #3
0
    def add_marker(self, text, latitude, longitude, bg_color=None,
                   text_color=None, font="Airmole 8"):
        if not text_color:
            text_color = self.white

        if not bg_color:
            bg_color = self.gray

        marker = champlain.marker_new_with_text(text, font, text_color,
                                                bg_color)

        # marker.set_position(38.575935, -7.921326)
        if latitude and longitude:
            marker.set_position(latitude, longitude)
        self.add(marker)
        return marker
Exemple #4
0
def create_marker_layer(view):
    orange = clutter.Color(0xf3, 0x94, 0x07, 0xbb)
    black = clutter.Color(0x00, 0x00, 0x00, 0xff)
    layer = champlain.Layer()

    marker = champlain.marker_new_with_text(
        "Montréal\n<span size=\"xx-small\">Québec</span>", "Serif 14", black, 
        orange)
    marker.set_use_markup(True)
    marker.set_alignment(pango.ALIGN_RIGHT)
    marker.set_color(orange)

    marker.set_position(45.528178, -73.563788)
    layer.add_marker(marker)
    marker.set_reactive(True)
    marker.connect("button-release-event", marker_button_release_cb, view)

    marker = champlain.marker_new_from_file(
        "/usr/share/icons/gnome/24x24/emblems/emblem-generic.png")
    marker.set_text("New York")
    marker.set_position(40.77, -73.98)
    layer.add_marker(marker)

    marker = champlain.marker_new_from_file(
        "/usr/share/icons/gnome/24x24/emblems/emblem-important.png")
    marker.set_position(47.130885, -70.764141)
    layer.add_marker(marker)

    marker = champlain.marker_new_from_file(
        "/usr/share/icons/gnome/24x24/emblems/emblem-favorite.png")
    marker.set_draw_background(False)
    marker.set_position(45.41484, -71.918907)
    layer.add_marker(marker)

    layer.show()
    return layer