Hi, I have an ASP.NET page , with a simple script that creates an instance of the Google Earth plugin (ActiveX control).
It works fine. I need to know when the control is initialised and ready, so I use a page method call to do this. In the page method call I am trying to pass to the C# code the IGEPlugin instance (COM interface), however, the page method does call into C#, but i cannot get the instantiated GE plugin reference. Do you know how I can get a handle to this control? I have included the aspx page for your attention. PageMethods.GEReady (ge,SuccessCB,failureCB); gets called ok, but the ge object (of type IGEPlugin) is empty when I debug it in C#. Any help would be greatly appreciated as I am really stuck. I could use the window.external JS method, but i don't know how to sink this in a web form. Also I have not found any examples on this :-( Thanks for reading. Noel Default.aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AJAXEnabledWebApplication_Go._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http:// www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/ > <title>Google Earth API Sample</title> <script src="http://www.google.com/jsapi? key=ABQIAAAA1XbMiDxx_BTCY2_FkPh06RRaGTYH6UMl8mADNa0YKuWNNa8VNxQEerTAUcfkyrr6OwBovxn7TDAH5Q"></ script> <script type="text/javascript"> var ge; google.load("earth", "1"); function init() { var content = document.getElementById('content'); content.innerHTML = '<input type="button" value="Move the Camera!" onclick="moveCamera()" />'; google.earth.createInstance('content', initCB, failureCB); } function initCB(instance) { ge = instance; ge.getWindow().setVisibility(true); // add a navigation control ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO); // add some layers ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true); ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true); document.getElementById('installed-plugin-version').innerHTML = ge.getPluginVersion().toString(); PageMethods.GEReady(ge,SuccessCB,failureCB); } function failureCB(errorCode) { alert("Failed!!"); } function SuccessCB(errorCode) { alert("Success!!"); } function moveCamera() { var lookAt = ge.getView().copyAsLookAt (ge.ALTITUDE_RELATIVE_TO_GROUND); lookAt.setLatitude(lookAt.getLatitude() + 2); lookAt.setLongitude(lookAt.getLongitude() + 20); ge.getView().setAbstractView(lookAt); } google.setOnLoadCallback(init); </script> </head> <body style="font-family: Arial;font-size:13px;border: 0 none;"> <div id="content" style="width: 380px; height: 380px;" runat="server" visible="true"> Loading... </div> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" EnablePartialRendering="False"> </asp:ScriptManager> </form> <br/><br/> Installed Plugin Version: <div id="installed-plugin-version" style="display:inline;"></div> </body> </html>
