网络继存的google map api 调用多数是基于web应用程序的,mfc开发的桌面应用程序如果想要使用google map进行交互怎么做那?桌面应用程序没有服务器还需要申请key? 刚做这方面,希望有人给与指点,这里现行谢过了ps分数不重要,解决问题重要啊

解决方案 »

  1.   

    http://www.vbdotnetheaven.com/UploadFile/scottlysle/VBQuickMap03182007085423AM/VBQuickMap.aspx
      

  2.   

    可以在MFC程序里添加Web Browser,然后通过它来利用web 应用调用google map api...
      

  3.   

    这个思路应该很不错,我可以继续研究下。这是个桌面应用程序(没有服务器),那么利用web(html,js)调用api需要的key怎么解决,如果是商业用途是不是必须注册个key,还是用google的就可以?
    希望能给与进一步的解释,谢谢了。
      

  4.   

    商业的不知道,只知道这个key,google还是提供了你注册的,你可以去对应的web上去注册,顺便看一下它的licence agreement
      

  5.   

    看Tracert Map: View the IP network path on a map
    http://www.codeproject.com/KB/IP/TracertMap.aspxc#里面通过WebBroswer调用脚本函数,GOOGLE MAP API也应该一致。不行就用开源的map tools吧。
      

  6.   


    有什么资料可以参考一下 Web Browser 控制web 传递参数(我想传的是经纬度)
      

  7.   

    C++ 可以调用js,通过IDispatch Invoke ,参数传递通过VARIANT类型数据...
      

  8.   

    IDispatch GetIDsOfNames使用有必要吗?诶,书到用时方恨少。
      

  9.   

    简单的写了个小例子,不知道为什么GetIDsOfNames方法会出错(ispid =-1),谁能帮助看看
      HINSTANCE hInst = ::LoadLibrary( _T("OLEACC.DLL") ); 
        char* queryAddress;
        IDispatch *spScript;
        DISPID dispid = NULL;
        HRESULT   hr;    queryAddress = "c:\\g.html";
        m_gmap.Navigate(queryAddress,NULL,NULL,NULL,NULL);
        CString str_fun_name = L"mod_list";    CComBSTR bstrMember(str_fun_name); 
        IHTMLDocument2 *spDoc  =(IHTMLDocument2*)m_gmap.GetDocument();
        
        hr =spDoc->get_Script(&spScript); 
       //这里出错了    
        if ( FAILED(hr) ) 
        { 
        MessageBox("spScript error"); 
        } 
        spScript->lpVtbl
        hr = spScript->GetIDsOfNames(IID_NULL, &bstrMember,1,LOCALE_SYSTEM_DEFAULT, ispid);
    //这里出错了:ispid =-1
    if(FAILED(hr)) 
        { 
        CString str_error; 
        str_error.Format("GetIDsOfNames 的dispid=%d",dispid); 
        MessageBox(str_error); 
        return; 
        }
    .....
     
    以下是html的代码 
    <html> 
    <head> 
    <script> 
    function mod_list(class_name,str_text_orgi,str_text_current) 

      alert(class_name); 
    alert(str_text_orgi); 
    alert(str_text_current); 
      if(class_name=="app") 
    { document.write("app"+str_text_orgi+"replease"+str_text_current+" <br/>"); } 
    else if(class_name=="ip") 
    { document.write("ip"+str_text_orgi+"replease"+str_text_current+" <br/>"); 
    } } 
    </script> 
    </head> 
    <body> 
    aaaa 
    </body> 
    </html> 
    [/HTML]