有谁知道桌面工具箱(GTK,Qt,WX)的小部件,用于显示美国各州的地图?
我正在特别地寻找一种可以让我显示美国各州的地图,将其作为自己的"对象",以便可以分别控制每个州的颜色,单击和鼠标悬停。 GTK是我的个人喜好,但是到那时我几乎会解决任何问题。应用程序本身将使用Python FWIW编写。
解决方案
我们可以在PyQt中使用QGraphicsView。每个状态都是一个新的QGraphicsItem,它可以是位图或者路径对象。我们只需要提供轮廓(或者位图)和状态位置。
如果我们有州的SVG,也可以使用它们。
GTK +没有公认的画布类。
是的,我们可以使用cairo,但是cairo不是画布。我们必须编写行为代码,例如mouseover / onclick自己。
快速提示,如果我们为每种状态涂上不同的颜色,则可以从鼠标光标下的颜色中识别出要选择的状态,而不用在多边形例程中进行复杂的处理。
如果考虑Qt,还考虑加入kdelibs依赖项,那么我们将拥有大理石小部件,该小部件以简洁的方式处理地图。
如果我们只坚持使用Qt,那么QGraphicsView是可以使用的框架。
(注意:kdelibs!=运行整个kde桌面)
我们可以使用Quantum GIS。 QGIS是使用Qt框架的开源地理信息系统。
QGIS也可以与Python一起使用。我们可以使用Python编写的插件对其进行扩展,也可以使用PyGIS Python绑定来编写自己的应用程序。
他们有一个Wiki,其中包含一些对开发人员有用的信息。
也许QGIS对于目的而言太重了,但是无论如何我还是在这里添加它来进行补充。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
If you consider Qt, consider also throwing in kdelibs dependency, then you'll have marble widget, which handles maps in neat way.
感谢我们宣传Marble。但是我们不正确:
Marble Widget完全不依赖于kdelibs。它仅取决于Qt(> = 4.3)。
另外,大理石还刚刚收到了Python绑定。
我认为可以使用大理石解决给定的问题。最多只需要几天的时间。如果我们对大理石有任何疑问,请随时在我们的邮件列表或者IRC中询问我们。
最好的祝福,
托斯滕·拉恩(Torsten Rahn)