arcglobe二次开发实习指导书_第1页
arcglobe二次开发实习指导书_第2页
arcglobe二次开发实习指导书_第3页
arcglobe二次开发实习指导书_第4页
arcglobe二次开发实习指导书_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二次开发实习指导书掌握Globe场景数据导入、不同图层类型的控制方掌握Globe工 管理控件及右键控制图层功能的添加方法掌握更改图层属性、、高程设置等Globe图层属性的设置方法掌握在Globe场景中添加三维注记与三维模型的方实习环软ArcEngine10.0硬实习方数据导入了解Globe场景图层类型数据导入分类的基本流程:加载数据Globe图层分类其C#函数使用方法如下。其中TLayer为添加的数据图层,GlobeLayerType则为该图层指基于上面知识,现在进行编程开发。启动VisualStudio2008,文件->新建->项目,在项目类型中,选择VisualC#语言,在ArcGIS中选择ExtendingArcObjects,然后在VisualStudio已按照的模板中,选择GlobeControlApplication,可选填自定义名称,如下图中privatevoid加载栅格文件到漂浮图层{Item_Click(objectsender,EventArgsprivatevoid加载栅格文件到漂浮图层{Item_Click(objectsender,EventArgsOpenFileDialogFilePath=newOpenFileDialog();FilePath.FileName="";FilePath.ShowReadOnly=false;FilePath.FilterIndex=1;FilePath.Title="打开栅格文件if(FilePath.ShowDialog()=={IRasterLayertempRaster=new//IRasterLayer需要 GlobeLayerTypeFloating, }}如何加入Shp要素文件如何查看效果?(提示:缩放到图层 IToolbar接口:其作用为可支持Command,Tool,ToolControl,MultiItemand添加新建项ArcGISExtendingArcObjectsBaseCommad,新建名称ZoomToLayer,确定后弹出来的界面为选择ArcGlobeorGlobeControlCommand,建立ZoomToLayer.cs。basem_caption"缩放到图层";//localizablepublicbasem_caption"缩放到图层";//localizablepublicoverridevoidOnCreate(object{}publicoverridevoid{在ZoomToLayer.cs中的如下函数中实现缩放到图层控制。注意添publicoverridevoid{ yer=.ArcGIS.Carto.ILayeryst3D.ISceneViewersceneViewer= yst3D.ICamera= .ArcGIS.GlobeCore.IGlobeCameraglobeCamera }在完成ZoomToLayer控件定义后,接着在MainForm.cs中,定义全局私有变 //用//用于TOCControl右键菜privateITOCControl2m_tocControl;private 然后在MainForm.cs的MainForm_Load函数中初始化,添加右键菜单privateprivatevoidMainForm_Load(objectsender,EventArgs{… 栏控 Layernew Class();//}//{if(e.button!=2)TOCControlItemitem{if(e.button!=2)TOCControlItemitem=IBasicMapmap=null;ILayerlayer=null;objectother=null;objectindex=m_tocControl.HitTest(e.x,e.y,refitem,refmap,reflayer,refother,refif(item== m_tocControl.SelectItem(map,null);=;(if(item{}(ex,e.y,m_tocControl.hWnd);//弹出右键菜}} “选择重定义菜单类型”publicvoidSetTextureLayer(IGlobeControlm_pGlobeControl, {IGlobeLayerPropertiespublicvoidSetTextureLayer(IGlobeControlm_pGlobeControl, {IGlobeLayerProperties yLayers yLayers= pGlobeLayerPropertiespGlobeLayerProperties= pGlobeLayerProperties.Type }新建Command接口:工程添加新建项ArcGISExtendingpublicoverridevoid{ yer= publicoverridevoid{ yer= _3DFunctionGisFunction=new_3DFunction(); }privatevoidMainForm_Load(objectsender,privatevoidMainForm_Load(objectsender,EventArgs{……}Layer.AddItem(newSetTextureLayer(),-1,1,IGlobeDrawingOrderpublicoverridevoid{ yer= _3DFunctionGisFunction=new_3DFunction(); publicoverridevoid{ yer= _3DFunctionGisFunction=new_3DFunction(); }privatevoidMainForm_Load(objectsender,EventArgs{……}添privatevoidMainForm_Load(objectsender,EventArgs{……}三维文字IText3DElementIRgbColor接口:使用RGBIGradientFillSymbol,ISimpleFillSymbol,IPictureFillSymbol。publicvoidDraw3DText2(IGlobeGraphicsLayerpGL,IGlobepGlobe,doublethisx,doublepublicvoidDraw3DText2(IGlobeGraphicsLayerpGL,IGlobepGlobe,doublethisx,doublestringtext,intFsize,intred,intgreen,int{IPointpoint=newPointClass();point.PutCoords(thisx,thisy);Ptext3DElement.AnchorPoint=point;Ptext3DElement.Text=text;Ptext3DElement.Alignment= Ptext3DElement.AxisRotation= Ptext3DElement.ZAxisScale=1;Ptext3DElement.Justification= Ptext3DElement.Height=Fsize;Fcolor.Red=red;Fcolor.Blue=blue;pFillSymbol.Color=Fcolor;IFillShapeElementpFillShapeElement=Ptext3DElementasIFillShapeElement;pFillShapeElement.Symbol=pFillSymbol;IGraphicsContainer3DpGC3D=(IGraphicsContainer3D)newGlobeGraphicsLayer();pGC3D=(IGraphicsContainer3D)pGL; }在工程中,右键选择MainForm.cs,视图设计器privatevoid添加三维注记{Item_Click(objectprivatevoid添加三维注记{Item_Click(objectsender,EventArgsIGlobeGraphicsLayerm_globeGraphicsLayer2newGlobeGraphicsLayerClass();((ILayer)m_globeGraphicsLayer2).Name="动态图层";IScenescene= scene.AddLayer((ILayer)m_globeGraphicsLayer2,false); _3DFunctionGisFunction=newGisFunction.Draw3DText2(m_globeGraphicsLayer2,axGlobeControl1.Globe,-82,30,"地理信息系统2010年级 ,255,0,}(.3ds),or(VRML*)等格式外部模型作为一个点符号。3) cement接口:用于三维标记符号的空间位置属性设置。其QueryRotationAngles和SetRotationAngles设置或获取在X、Y、Z上的旋转角度publicvoidAddModel(IGlobeGraphicsLayer{IMarker3DSymbolpMarker3DSymbolnewMarker3DSymbolClass();publicvoidAddModel(IGlobeGraphicsLayer{IMarker3DSymbolpMarker3DSymbolnewMarker3DSymbolClass(); cement cement=pMarker3DSymbolas IGeometrytempGeometry=pMarker3D IEnvelopetempEnvelop=tempGeometry.Envelope;cement.Size=tempEnvelop.Depth*500000;cement.Depth=tempEnvelop.Height*500000;cement.Width=tempEnvelop.Width*cement.MaintainAspectRatio=cement.SetRotationAngles(0,0,cement.XOffset=cement.YOffset=cement.ZOffset=//cratethegraphicIElementtrackElement=newMarkerElementClass();((IMarkerElement)trackElement).Symbol=pMarker3D //createanewpointatthegivenpositionIPointpoint=newPointClass();((IZAware)point).ZAware=true;point.X=110.0;point.Y=point.Z=trackElement.Geometry=pointasIPoint;globeGraphicsLayer.FindElementIndex(trackElement,globeGraphicsLayer.FindElementIndex(trackElement,out}privatevoid添加三维模型{Item_Click(objectprivatevoid添加三维模型{Item_Click(objectsender,EventArgsIGlobeGraph

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论