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>




Reply via email to