桌面应用程序与google map api 的问题

时间:2022-09-07 13:05:49
网络继存的google map api 调用多数是基于web应用程序的,mfc开发的桌面应用程序如果想要使用google map进行交互怎么做那?桌面应用程序没有服务器还需要申请key? 刚做这方面,希望有人给与指点,这里现行谢过了

ps分数不重要,解决问题重要啊

13 个解决方案

#1


心急等待中

#2


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

#3


我们公司网络不好啊,
网页开不开

#4


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

#5


引用 4 楼 oyljerry 的回复:
可以在MFC程序里添加Web Browser,然后通过它来利用web 应用调用google map api...

这个思路应该很不错,我可以继续研究下。

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

#6


引用 5 楼 codesnail 的回复:
引用 4 楼 oyljerry 的回复:
可以在MFC程序里添加Web Browser,然后通过它来利用web 应用调用google map api...

这个思路应该很不错,我可以继续研究下。

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

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

#7


看Tracert Map: View the IP network path on a map
http://www.codeproject.com/KB/IP/TracertMap.aspx

c#里面通过WebBroswer调用脚本函数,GOOGLE MAP API也应该一致。不行就用开源的map tools吧。

桌面应用程序与google map api 的问题

#8


引用 6 楼 oyljerry 的回复:
引用 5 楼 codesnail 的回复:
引用 4 楼 oyljerry 的回复: 
可以在MFC程序里添加Web Browser,然后通过它来利用web 应用调用google map api... 

这个思路应该很不错,我可以继续研究下。 

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


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

#9


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

#10


引用 9 楼 oyljerry 的回复:
C++ 可以调用js,通过IDispatch Invoke ,参数传递通过VARIANT类型数据...

以前没做过这方面的开发,我在网上找不到关于这个合适的例子,关于这个能给个详细点的说明?谢了

#11


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

#12


简单的写了个小例子,不知道为什么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] 

#13


关注中,也在做这一部分

#1


心急等待中

#2


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

#3


我们公司网络不好啊,
网页开不开

#4


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

#5


引用 4 楼 oyljerry 的回复:
可以在MFC程序里添加Web Browser,然后通过它来利用web 应用调用google map api...

这个思路应该很不错,我可以继续研究下。

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

#6


引用 5 楼 codesnail 的回复:
引用 4 楼 oyljerry 的回复:
可以在MFC程序里添加Web Browser,然后通过它来利用web 应用调用google map api...

这个思路应该很不错,我可以继续研究下。

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

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

#7


看Tracert Map: View the IP network path on a map
http://www.codeproject.com/KB/IP/TracertMap.aspx

c#里面通过WebBroswer调用脚本函数,GOOGLE MAP API也应该一致。不行就用开源的map tools吧。

桌面应用程序与google map api 的问题

#8


引用 6 楼 oyljerry 的回复:
引用 5 楼 codesnail 的回复:
引用 4 楼 oyljerry 的回复: 
可以在MFC程序里添加Web Browser,然后通过它来利用web 应用调用google map api... 

这个思路应该很不错,我可以继续研究下。 

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


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

#9


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

#10


引用 9 楼 oyljerry 的回复:
C++ 可以调用js,通过IDispatch Invoke ,参数传递通过VARIANT类型数据...

以前没做过这方面的开发,我在网上找不到关于这个合适的例子,关于这个能给个详细点的说明?谢了

#11


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

#12


简单的写了个小例子,不知道为什么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] 

#13


关注中,也在做这一部分