WEB开发网
开发学院软件开发C语言 C#调用 GoogleEarth COM API开发(一) 阅读

C#调用 GoogleEarth COM API开发(一)

 2009-05-22 08:29:55 来源:WEB开发网   
核心提示:一、准备Google Earth提供了个人免费版、Plus版、Pro版,个人开发只安装个人免费版就可以了,C#调用 GoogleEarth COM API开发(一),如果需要更多的功能,那么只有每年上交$400购买专业版了到目前为止,然后可以打开这个截图看看,呵呵)1://功能:GE实例2://描述:GECOMAPI网

一、准备

Google Earth提供了个人免费版、Plus版、Pro版,个人开发只安装个人免费版就可以了,如果需要更多的功能,那么只有每年上交$400购买专业版了

到目前为止,GoogleEarth的二次开发接口还比较少,功能太弱,仅仅提供了1.0的类库。

GoogleEarth COM API参考文档可以在这里找到:http://earth.google.com/comapi/index.html

C#调用COM的参考资料多如牛毛,大家可以到网上搜一下

二、例子

这里提供一个利用VS2008 + Google Earth 5.0开发一个“Hello world”程序

首先,确保已经正确安装GE,打开VS2008 ,新建一个Windows应用程序项目,在“项目”菜单中选择“添加引用…”,切换到“COM”选项卡,选择“Google Earth 1.0 Type Library”,其实就是Google Earth的主程序

在项目的引用中你可以看到已经添加了一个EARTHLib的引用,然后我们就可以调用其中的接口进行开发了。

下面就是小例子的代码(功能很简单,只有三个,打开GE,然后让GE保存一张截图,然后可以打开这个截图看看。呵呵)

  1: // 功能:GE实例
  2: // 描述:GE COM API 网址:http://earth.google.com/comapi/index.html
  3: // 作者:温伟鹏
  4: // 日期:2008-01-20
  5:  
  6: using System;
  7: using System.Collections.Generic;
  8: using System.ComponentModel;
  9: using System.Data;
 10: using System.Drawing;
 11: using System.Text;
 12: using System.Windows.Forms;
 13: using EARTHLib;
 14: using System.Runtime.InteropServices;
 15: using System.IO;
 16: using System.Diagnostics;
 17:  
 18: namespace GEDemo
 19: {
 20:   public partial class Form1 : Form
 21:   {
 22:     /// <summary>
 23:     /// 标记GE是否已经启动
 24:     /// </summary>
 25:     private bool isGeStarted = false;
 26:     /// <summary>
 27:     /// 定义GE应用程序类
 28:     /// </summary>
 29:     private ApplicationGEClass GeApp;
 30:  
 31:     public Form1()
 32:     {
 33:       InitializeComponent();
 34:     }
 35:  
 36:     private void button1_Click(object sender, EventArgs e)
 37:     {
 38:       StartGE();
 39:     }
 40:  
 41:     /// <summary>
 42:     /// 启动GE
 43:     /// </summary>
 44:     private void StartGE()
 45:     {
 46:       if (isGeStarted)
 47:       {
 48:         return;
 49:       }
 50:  
 51:       try
 52:       {
 53:         GeApp = (ApplicationGEClass)Marshal.GetActiveObject("GoogleEarth.Application");
 54:  
 55:         isGeStarted = true;
 56:       }
 57:       catch
 58:       {
 59:         GeApp = new ApplicationGEClass();
 60:  
 61:         isGeStarted = true;
 62:       }
 63:     }
 64:  
 65:     private void button2_Click(object sender, EventArgs e)
 66:     {
 67:       string ssFile = Path.Combine(Application.StartupPath, "ScreenShot.jpg");
 68:  
 69:       try
 70:       {
 71:         //quality的取值范围在(0,100)之间,质量越高,quality越大
 72:         GeApp.SaveScreenShot(ssFile, 100);
 73:  
 74:         MessageBox.Show("成功保存截屏图像:" + ssFile);
 75:       }
 76:       catch(Exception ex)
 77:       {
 78:         MessageBox.Show("保存截屏图像时发生错误:" + ex.Message);
 79:       }
 80:     }
 81:  
 82:     private void button3_Click(object sender, EventArgs e)
 83:     {
 84:       string ssFile = Path.Combine(Application.StartupPath, "ScreenShot.jpg");
 85:  
 86:       if (!File.Exists(ssFile))
 87:       {
 88:         MessageBox.Show("未能找到保存的截屏图像!");
 89:         return;
 90:       }
 91:  
 92:       Process.Start(ssFile);
 93:     }
 94:  
 95:     private void button4_Click(object sender, EventArgs e)
 96:     {
 97:       this.Close();
 98:       Application.Exit();
 99:     }
 100:  
 101:   }
 102: }

1 2  下一页

Tags:调用 GoogleEarth COM

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接