MFC应用程序的Map插件

时间:2009-05-27 16:56:45

标签: c++ visual-studio-2008 mfc plugins map

我想在MFC应用程序中显示地图(Visual Studo 2008 with MFC Feature Pack)。 在我的头顶,我有以下要求:

  • 我必须能够添加自己的标记(普通纬度/经度位置),最好使用不同的颜色/图标,以便区分不同类型的标记。
  • 如果地图数据是从在线资源中获取的,那么它必须是可缓存的,即我可以预先加载某个(或几个)缩放级别的区域的地图,然后切换到“离线模式”。或者,所有地图数据都与应用程序一起安装。
  • 用户可以使用放大/缩小和平移等标准操作。
  • 用户必须能够选择我的标记,最好是在它们周围拖动一个矩形。
  • 由于整个应用程序是用C ++ / MFC编写的,我不想为这个插件使用.NET运行时。
  • 它不应该花费一大笔钱。

我目前正在使用名为“ESRI MapObjects LT2”的ActiveX插件,它可以通过某种方式完成所有这些,但实现起来非常繁琐,开发似乎已经停止了Visual Studio 6可用的时间和地图材料是非常基本或非常昂贵。

我考虑使用Google地图或Google地球,但我认为它们并不真正支持非基于网络的应用程序使用。 我发现ArcView是我目前使用的插件的某种继承者,但我不认为我属于目标受众,因为它提供的功能远远超出我的需要。另外,我没有找到任何有关定价的信息。

3 个答案:

答案 0 :(得分:1)

如果您有互联网访问权限,请重新考虑谷歌。您可以使IE浏览器的实例出现在应用程序的框架中。我相信你可以使用ActiveX控件。此外,Google地球还可以将自己嵌入到网页中,也可能是一个应用程序。

另一个选项是Global Mapper,它不像谷歌地图或谷歌地球那么好。

由于缺乏性能和缺乏支持,我们在放弃ESRI之前已经使用了很长时间。为许可证支付1万美元是一件非常大的痛苦,然后被告知他们需要2美元以上才能真正使用这件事。哦,然后再增加2美元以增加一些额外的功能。即使它不起作用,他们的支持也因缺乏光彩而黯淡。

答案 1 :(得分:1)

我已经编写了一个开源Geocaching应用程序(用c ++编写)来渲染地图,来源是: http://code.google.com/p/gpsturbo/

它使用我自己的自定义渲染,但如果需要,可以删除地图解析。它使用谷歌图块渲染地图(并缓存图块以供离线使用),以及Garmin格式的GPS地图,还有一个Openstreetmap格式渲染器。

答案 2 :(得分:1)

如果您不受Google地图的约束,可以选择OpenStreetMap。

有几种已知的渲染OSM地图的应用程序:

前两个直接渲染地图,最后一个使用OpenStreetMap.org拼贴。

您可以根据需要缓存任意数量的切片或数据,但不限于此。