我正在特别寻找一个可以让我显示美国各州的地图,每个州都是它自己的“对象”,因为我可以单独控制每个州的颜色、点击和鼠标悬停。GTK 是我个人的偏好,但在这一点上,我会满足于任何事情。应用程序本身将使用 Python、FWIW 编写。
5 回答
您可以在 PyQt中使用QGraphicsView 。每个状态都是一个 new QGraphicsItem
,它是位图或路径对象。您只需要提供轮廓(或位图)和状态的位置。
如果你有各州的 SVG,你也可以使用它们。
GTK+ 没有普遍接受的画布类。
如果你考虑 Qt,也考虑加入 kdelibs 依赖项,那么你将拥有大理石小部件,它以简洁的方式处理地图。
如果你只坚持 Qt,那么 QGraphicsView 是一个框架。
(注意:kdelibs != 运行整个 kde 桌面)
如果你考虑 Qt,也考虑加入 kdelibs 依赖项,那么你将拥有大理石小部件,它以简洁的方式处理地图。
感谢您为大理石做广告。但你错了:
Marble Widget 根本不依赖 kdelibs。它仅取决于 Qt (>=4.3)。
此外,Marble 也刚刚收到 Python 绑定。
我认为给定的问题可以使用 Marble 来解决。最多只需要几天的工作。如果您对 Marble 有任何疑问,请随时通过我们的邮件列表或 IRC 向我们提问。
您可以使用Quantum GIS。QGIS 是一个使用 Qt 框架的开源地理信息系统。
QGIS 也可以与 Python 一起使用。您可以使用 Python 编写的插件对其进行扩展,也可以使用PyGIS Python 绑定来编写您自己的应用程序。
他们有一个为开发人员提供一些有用信息的 Wiki 。
也许 QGIS 对您的目的来说太重了,但无论如何我都在这里添加它以完成。
快速提示,如果您对每个状态进行不同的着色,您可以确定从鼠标光标下的颜色中选择哪一个,而不是在多边形例程中做一个复杂的点。