3

我需要一张世界的 2d 政治地图,我将在其上绘制图标、文本和四处移动的线条。用户将与地图交互,放置和移动图标,他们将放大和缩小地图。

谷歌地图界面离我需要的不是很远,但这与网络无关;它是一个 Windows MFC 应用程序,我想与 C++ API 对话,以获取应用程序中的地图,而不是 Web 界面。理想情况下,我也不想要单独的服务器,并且任何服务器都必须在本地运行(而不是在 Internet 上)。我应该使用什么罐装地图包或图形库来执行此操作?我没有图形编程经验。

这是严格的 2D,所以我不认为像 Google Earth 或 WorldWind 这样的东西是合适的。良好的矢量图形支持会很酷,并且易于绘制位图很重要。

所有的罐头选项似乎都是面向网络的。SDL 是我所知道的关于灵活画布编程的所有知识,但对于可能是常见问题的问题,制作我自己的地图似乎需要做很多工作。有没有更高层次的?也许有一种方法可以与 adobe Flash 对象交互?我相当无知。

4

4 回答 4

4

也许: http: //www.codeplex.com/SharpMap

ESRI MapObjects http://www.esri.com/software/mapobjects/index.html ESRI MapObjects LT http://www.esri.com/software/mapobjectslt/index.html

有关两个 MapObjects 功能集的比较,请参见 http://www.esri.com/software/mapobjectslt/about/mo_vs_lt.html

ESRI 可能会替代 MapObjects 库

于 2008-12-02T04:00:23.483 回答
2

您可以使用术语 GIS(地理信息系统)来扩展搜索。我相信它会更容易。关于这个主题有很多东西。

这是我找到的一个页面:http ://www.ucancode.net/Gis-Source-Code.htm

或: http: //opensourcegis.org/

于 2008-12-01T19:01:50.170 回答
2

您可能想尝试Mapnik C++/Python GIS Toolkit

您可以查看Marble Widget,它是 KDE 的 Marble 项目的一部分。也有用于此的 Windows 二进制文件,但它们可能依赖于 Qt。

于 2009-02-06T13:44:47.337 回答
1

是的,Marble 还有一个优势,它在单个控件中提供了一种现成的解决方案(在 Qt 的技术术语中称为“小部件”)。

对 Qt 的依赖(顺便说一句,这是唯一的依赖)也可能被视为一个优势:Qt 即将推出的版本是在 LGPL 下获得许可的,所以即使你打算在专有应用程序中使用它,也不应该有任何真正的担心。当然,Qt 和 Marble 是跨平台的,并且提供了一个非常直观且易于理解的 API。与常见的 GIS 解决方案不同,Marble API 和小部件的使用更侧重于对 GIS 不太了解的人。因此,即使您对 GIS 中使用的技术术语感到害怕,它的用法也很容易理解。

Marble 提供了几个编程接口:

您可以创建自己的 Marble 插件并在其中绘制,也可以子类化 MarbleWidget 控件。对于一个简单的 HelloWorld 应用程序,请参见:

http://techbase.kde.org/Projects/Marble/MarbleCPlusPlus

于 2009-02-07T13:16:45.710 回答