我真的在寻找一种简单的方法来构建使用GEplugin的VB.NET应用程序。所以我发现这个项目似乎做了我需要的肮脏工作:http://code.google.com/p/winforms-geplugin-control-library/
那么,那里发布的所有代码都是关于C#的,但是我需要在VB.NET上使用它。所以我试过这个:
从VB.NET 2010 Express创建了一个新的32位解决方案(我只是添加了
<PlatformTarget>x86</PlatformTarget >
<。>在.vbproj文件中) 添加了对FC.GEPluginCtrls.dll
在表单
位于代码顶部,添加了
Imports FC.GEPluginCtrls
然后,在表单Load事件中,输入以下代码:
InitializeComponent()
GeWebBrowser1.LoadEmbeddedPlugin()
Do
Loop Until GeWebBrowser1.PluginIsReady = False
GeWebBrowser1.CreateInstance(ImageryBase.Earth)
我认为,这相当于
http://code.google.com/p/winforms-geplugin-control-library/wiki/CreateInstance 因此,项目编译并没有出错,但GeWebBrowser控件仍为空。
答案 0 :(得分:0)
我实际上是在写你正在使用的库。您没有收听PluginReady事件。 http://code.google.com/p/winforms-geplugin-control-library/wiki/PluginReady
要将它与VB一起使用,只需将基本示例转换为VB - http://code.google.com/p/winforms-geplugin-control-library/wiki/ExampleForm
此外,由于PluginReady事件是异步的,因此完全没有必要进行循环轮询PluginIsReady。
要显示地球,您需要的是以下内容。
Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
GeWebBrowser1.LoadEmbeddedPlugin()
End Sub
要在初始化时使用插件,请使用PluginReady事件。像。的东西。
Option Strict Off
Public Class Form1
Private Dim _ge as Object = Nothing
Private Sub GeWebBrowser1_PluginReady( ByVal sender As System.Object, ByVal e As FC.GEPluginCtrls.GEEventArgs) Handles GeWebBrowser1.PluginReady
_ge = e.ApiObject ' reference to the Google Earth Plugin object
MessageBox.Show(_ge.getApiVersion()) ' _ge is the plugin -use it just as in the javascript api...
End Sub
Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
GeWebBrowser1.LoadEmbeddedPlugin() ' load the plugin
End Sub
End Class