编程实现Google Earth和ArcGIS的联动(9页).doc
《编程实现Google Earth和ArcGIS的联动(9页).doc》由会员分享,可在线阅读,更多相关《编程实现Google Earth和ArcGIS的联动(9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-编程实现Google Earth和ArcGIS的联动-第 9 页编程实现Google Earth和ArcGIS的联动demo 这个DEMO实现的功能就是在google earth中用鼠标获取地理坐标,然后自动定位到ARCGIS对应的区域影像中。前段时间因项目引导,在师兄的启发下,做了一个这样的Demo,后来因为各种原因一直没有进行下去。现在感觉还是有些用处的,现在抽空整理一下。 Google Earth是一款优秀的Map Explorer,它的优秀在于使用普及和方便,虽然DigitalGlobe影像数据更新速度慢,但分辨率是还是很高的,最高可达到0.5m。如果忽略其误差,可以利用Google
2、 Earth的影像资源进行定位参考、解译参考、数字化等。 Google Earth继Google Map API之后推出的Google Earth COM API ,提供的功能相对比较弱,一些功能据说似乎还存在着Bug。网址: earth的二次开发有两种方法:(1)使用windows API控制两个进程的调用,利用google earth api实现核心功能。(2)使用做好的务功能重点放在GE API开发上。这个demo使用的是GEVContorl(GEVC),它是一个完全COM的控件,对截止目前所有版本的GoogleEarth都支持,具有很高的兼容性和可用性,能够将GE视图(地球视图)集成到
3、开发人员的应用系统中,并且支持滚轮功能。下载地址:一、安装完GE后,系统会自动拷贝一个EARTHLib.dll,添加Google Earth 1.0 Type Library到库应用.二、.NET中新建Arcgis command类。将生成一个dll,可以被ARCGIS自动添加到组件库中。三、部分代码,主窗口中:1ImportsEARTHLib2ImportsESRI.ArcGIS.Controls3ImportsESRI.ArcGIS.Geometry4ImportsESRI.ArcGIS.Carto5ImportsESRI.ArcGIS.SystemUI6ImportsESRI.ArcGI
4、S.ArcMapUI7ImportsESRI.ArcGIS.esriSystem8ImportsESRI.ArcGIS.Framework9ImportsESRI.ArcGIS.Geodatabase10ImportsESRI.ArcGIS.Display11ImportsSystem.Windows.Forms.Cursor12ImportsSystem.Drawing13ImportsSystem.Drawing.Drawing2D141516PublicClassForm217Publicg_GeHelperAsEARTHLib.ApplicationGEGE的主应用API18Publi
5、chookhelperAsIHookHelperhookhelper19PubliclongitudeAsDouble经度20PubliclatitudeAsDouble维度21DimpAppAsIApplication22DimpEnableAsBoolean23DimpDocAsIMxDocument24DimpWorkspaceAsIWorkspace25DimpMapAsIMap26DimpLayerAsILayer27DimpWorkEAsIWorkspaceEdit28DimpFeaLayerAsIFeatureLayer29PrivateStructurePOINTAPI30Di
6、mxAsDouble31DimyAsDouble32EndStructure3334PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click35初始化应用GE36g_GeHelper=NewEARTHLib.ApplicationGE37AxGEViewer1.HookGE(g_GeHelper.GetMainHwnd,g_GeHelper.GetRenderHwnd)38EndSub394041PrivateSubAxGEViewer1_MouseDownE
7、vent(ByValsenderAsSystem.Object,ByValeAsAxGEVControl._GEViewer_MouseDownEvent)HandlesAxGEViewer1.MouseDownEvent42IfCheckBox1.Checked=TrueThen43DimGePtAsPointOnTerrainGE44DimptAsPOINTAPI45屏幕坐标到GE屏幕坐标的转换46pt.x=e.evtArgs.X*2/Me.Width-147pt.y=-e.evtArgs.Y*2/Me.Height+148GE屏幕坐标到地理坐标的转换49GePt=g_GeHelper.G
8、etPointOnTerrainFromScreenCoords(CDbl(pt.X),CDbl(pt.Y)5051MsgBox(点击屏幕坐标:&pt.x&,&pt.y&获得ge坐标:&GePt.Longitude&,&GePt.Latitude)52longitude=GePt.Longitude53latitude=GePt.Latitude54pMap=hookhelper.ActiveView5556arcmap中绘制点57DimpointAsIPoint58point=NewESRI.ArcGIS.Geometry.Point59point.PutCoords(longitude,l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程实现Google Earth和ArcGIS的联动9页 编程 实现 Google Earth ArcGIS 联动
限制150内