【发布时间】:2017-06-17 16:55:39
【问题描述】:
我正在尝试使用 GTK 和 libchamplain 从本地地图数据中显示地图。该应用程序将在没有互联网连接的计算机上运行。
查看mapbox.py 示例后,似乎应该将NetworkTileSource 源替换为FileTileSource。所以我使用minimal.py 示例来处理 FileTileSource:
widget = GtkChamplain.Embed()
widget.set_size_request(640, 480)
tile_source = Champlain.FileTileSource.new_full(
ID,
NAME,
LICENSE_TEXT,
LICENSE_URL,
MIN_ZOOM,
MAX_ZOOM,
TILE_SIZE,
Champlain.MapProjection.MERCATOR,
Champlain.ImageRenderer())
tile_source.load_map_data("map.osm")
widget.get_view().set_map_source(tile_source)
很遗憾,在运行应用程序时,地图没有显示,并且我收到以下错误消息:
(minimal.py:26308): libchamplain-WARNING **: NULL pixbuf
基于一些 C 示例(one、two),我假设缺少一个所谓的渲染器,称为 Memphis,它仅是 C。似乎 Champlain 的 ImageRenderer 尽管名称相似,但并不适合做这件事。
所以我的问题是我将如何继续这一点。除了 Memphis 之外,还有很多 OSM 渲染器,可能还有一些是用 Python 编写的,但是哪一个可以与 Champlain 很好地集成?
它也不一定是 OSM。我也可以使用一组预渲染的 PNG。只是FileTileSource documentation 特别提到“在给定路径加载 OpenStreetMap XML 文件”,这就是为什么我假设对 OSM 的支持更好。
非常感谢任何帮助。
【问题讨论】:
-
您的问题解决了吗?
-
@mariotomo nope.
-
现在呢? ;-)
标签: python gtk openstreetmap glib libchamplain