2009-05-27 105 views
2

我想在MFC應用程序(帶有MFC功能包的Visual Studo 2008)中顯示地圖。 關閉我的頭頂,我有以下要求:MFC應用程序的地圖插件

  • 我必須要能夠用不同的顏色/圖標添加自己的標誌(普通/緯度位置),preferrably這樣一個可以在不同類型之間的區別的標記。
  • 如果地圖數據是從在線源獲取的,它必須是可緩存的,也就是說,我可以預先爲某個(或幾個)縮放級別的區域預加載地圖,然後切換到「離線模式」。或者,所有地圖數據與應用程序一起安裝。
  • 標準操作如放大/縮小和平移應該可以爲用戶。
  • 用戶必須能夠選擇我的標記,最好通過拖動矩形圍繞它們。
  • 由於整個應用程序是用C++/MFC編寫的,我不想爲這個插件使用.NET運行時。
  • 它不應該花大錢。

我目前使用的ActiveX插件名爲「ESRI MapObjects的LT2」,它可以做的一切,在某些方面,但它是非常繁瑣的實現,發展似乎身邊的時候已經停止時的Visual Studio 6中是可用的和地圖材料要麼非常基本,要麼非常昂貴。

我曾考慮過使用Google地圖或Google地球,但我認爲他們並不真正支持被非基於Web的應用程序所使用。 我發現ArcView是我目前使用的插件的一種繼承者,但我不認爲我屬於目標受衆,因爲它提供的功能遠遠超過我需要的功能。我也沒有找到關於定價的任何信息。

回答

1

我已經寫了一個開源的尋寶應用程序(它在C++)呈現地圖,來源是:
http://code.google.com/p/gpsturbo/

它使用自己的自定義渲染,但你可以撕裂出圖解析,如果你想。它使用谷歌貼圖呈現地圖(並將貼圖緩存爲脫機使用),以及Garmin格式的GPS地圖,還有一個Openstreetmap格式的渲染器。

1

重新考慮谷歌,如果你有互聯網接入。您可以讓IE瀏覽器的實例出現在應用程序的框架中。我相信你可以使用ActiveX控件。此外,Google地球還可以將自己嵌入到網頁中,也可以嵌入到應用程序中。

另一種選擇是Global Mapper,它不像Google Maps或Google Earth那麼好。

由於缺乏性能和缺乏支持,我們在放棄它之前使用了ESRI很長一段時間。支付10萬美元的許可證是一件非常痛苦的事情,然後被告知他們需要更多的2千美元才能真正使用這個東西。哦,然後再增加2k美元以增加一些額外的功能。即使它不起作用,他們的支持也很缺乏光澤。

+0

不幸的是,整個事情沒有永久性的互聯網訪問也是很重要的。谷歌地球應用程序似乎允許緩存高達2GB的數據,但將它作爲插件使用也可以嗎? – foraidt 2009-05-27 17:09:13

1

如果你沒有綁定到谷歌地圖,你可以選擇OpenStreetMap。

有幾個已知的應用渲染OSM地圖:

首先兩個直接渲染地圖,最後一個使用OpenStreetMap的.org瓷磚。

您可以根據需要緩存任意數量的圖塊或數據,但不限於此。