MFC调用地图显示位置之BingMap

前言:
本主主要实现了在基于MFC Dialog的工程里,通过 ActiveX控件WebBrowser,在对话框上显示BingMap,同时利用CWebPage类实现VC++与JavaScript的交互,实现转到地图上某特定点的功能。
步骤:
【1】新建基于MFC Dialog的工程。 添加ActiveX控件WebBrowser在窗体上,设置好其大小,并为其 绑定变量,取名为m_Map。
【2】在对话框对应的类的源文件中添加CWebPage类的头文件WebPage.h。在OnInitDialog中添加如下代码:
char szPath[255]={0};
 GetCurrentDirectory(255,szPath);
 strcat(szPath,_T("\\BingMap_Test.html"));
 m_Map.Navigate(szPath,NULL,NULL,NULL,NULL);

注:BingMap_Test.html放置在解决方案的目录下。前三行是为了得到文件的完整路径名,最后一个则是在WebBrowser中显示页面。
【3】在对话框上放置两个文本框,并为其绑定两个CString变量:m_strLat和m_strLon,分别对应纬度和经度;添加一个按钮,在按钮的点击事件中添加如下代码:
 UpdateData(TRUE);
 CWebPage web;
 web.SetDocument(m_Map.get_Document());
 web.CallJScript("mySetCenter",m_strLat,m_strLon);

注:第一行是将控件上的值存入相应的变量。后三行则声明一个CWebPage变量,得到 WebBrowser控件的文档,然后利用CallJScript调用JavaScript函数。CallJScript的第一个参数是函数名称,后两个是传入的参数,这里对应的就是纬度和经度。Html中的JavaScript函数 mySetCenter主要实现的功能是将传入的纬度和经度作为当前显示地图的中心,并添加一个Pin标识。

最后得到的效果如下:
MFC调用地图显示位置之BingMap_第1张图片
参考:
1、 在MFC对话框中使用Google地图  http://www.cnblogs.com/galuo/p/3418411.html
2、MFC之谷歌地图  http://hi.baidu.com/number007cool/item/7a962a46e4d708f2dc0f6c86
3、Bing Maps 地图控件 SDK 6.2  http://msdn.microsoft.com/zh-cn/library/bb429619.aspx

你可能感兴趣的:(VC++学习,VC,MFC,BingMap,WebPage,JavaScript)