如何使用GTK Champlain与本地.osm瓷砖在我的计算机



我正试图在python中制作GPS应用程序,我使用GTK-Champlain作为一个小部件,也使用杂乱。但是现在我在尝试使用从OpenStreetMaps下载的本地tile文件时遇到了问题。看这个:

 class LauncherGTK:
       def __init__(self):
        self.window = Gtk.Window()
        self.window.set_border_width(10)
        self.window.set_title("GPS")
        self.window.connect("destroy", Gtk.main_quit)
        vbox = Gtk.VBox(False, 10)
        embed = GtkChamplain.Embed()
        self.view = embed.get_view()
        self.view.set_reactive(True)
        self.view.connect('button-release-event', self.mouse_click_cb, self.view)
        projector = Champlain.MapProjection.MAP_PROJECTION_MERCATOR
        renderer = Champlain.ImageRenderer()
        map_new = Champlain.FileTileSource.new_full('1','Colombia','OSM','Champlain',10,15,256, projector, renderer)
        map_source = Champlain.FileTileSource.load_map_data(map_new,'Utilidades/map.osm')
        self.view.set_property('kinetic-mode', True)
        self.view.set_property('map-source', map_source)
        #...
        self.window.add(vbox)
        self.window.show_all()

当我试图运行代码时,出现下一个错误:

Traceback(最近一次调用):文件"GUI.py",第125行,in文件"GUI.py",第33行,在init投影仪= champlain . mapproection。MAP_PROJECTION_MERCATOR AttributeError:类型对象"ChamplainMapProjection"没有属性'MAP_PROJECTION_MERCATOR'按任意键继续…

有人知道我做错了什么吗?

基于pygobject的绑定将枚举名称从枚举值本身中删除。在您的情况下,您的代码应该使用Champlain.MapProjection.MERCATOR,而不是Champlain.MapProjection.MAP_PROJECTION_MERCATOR

最新更新