C#调用GoogleEarth COM API开发(一)
来源:互联网 发布:生成微信专用淘宝链接 编辑:程序博客网 时间:2024/05/22 15:57
原文地址:http://www.cnblogs.com/wpwen/archive/2009/02/06/1385570.html
一、准备
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: }
- C#调用GoogleEarth COM API开发(一)
- C#调用GoogleEarth COM API开发(一)
- 转:C#调用GoogleEarth COM API开发(一、二)
- C#调用Google Earth COM API开发(一)
- C# 调用 Google Earth Com API开发(二)
- C# 调用 Google Earth Com API开发(二)
- C# 调用 Google Earth Com API开发(三)
- C# 调用 Google Earth Com API开发(四)
- 转:C# 调用 Google Earth Com API开发(三)
- 转:C# 调用 Google Earth Com API开发(四)
- GoogleEarth二次开发(资料一)
- VC 调用api(Google Com Api)
- 使用C#调用windows API入门(一)
- C#调用百度地图API经验分享(一)
- C#调用百度地图API经验分享(一)
- C#调用百度地图API经验分享(一)
- C#调用COM组件
- c#如何调用com
- 2010-12-29
- /LGC物理引擎/Ubuntu 下编译运行 Box2D
- (二)Files
- 悲哀的人生
- 除去复制代码中的行号
- C#调用GoogleEarth COM API开发(一)
- 常用的 SQL Server 数据库命令
- eth0:Error while etting interface flags:No such device
- Linux下的鼠标操作
- RTEMS文件系统(2):系统初始化
- /LGC物理引擎/Box2D:一个 2D rigid body 物理引擎
- /LGC物理引擎/Havok physics engine 分析
- 人生感悟:巧妙说服他人的心理术
- /LGC物理引擎/overview of Physics Engine