
ArcGlobe三维地理信息系统开发
采用ArcEngine,基于.NET开发技术使用C#开发语言,完成中小型三维地理信息系统的开发,最终具备创建专业级地理信息应用系统的能力。
召唤师峡谷
WebGIS、3DGIS、DesktopGIS,移动开发
展开
-
ArcGlobe三维开发之二十——输电线路二三维交互选线
前面输电线路的生成方式前提是实地勘测了杆塔点位,采集了杆塔的坐标,直接导入Excel生成shape文件。现在是做一个输电线路的选址,传统的规划选线作业采用失效性差的纸质地图,造成选线路径方案可行性差,准确性低。应用高分辨率卫星影像和数字高程模型建立三维选线平台以辅助选线并进行杆塔辅助规划,可有效提高线路路径规划的可行性和准确性,节省投资。基础地理数据主要包括DEM、DOM、DLG,杆塔模型以及原创 2014-04-27 22:56:27 · 4873 阅读 · 4 评论 -
ArcGlobe三维开发之十九——GlobeControl与MapControl的二三维联动
实现思路:2D—>3D,将当前MapControl的可视范围设置为GlobeControl中Extent属性的值;3D--->2D,获取当前GlobeControl的target和observer的Camera的BLH以及当前的图形显示范围,并将其设置为Mapcontrol的显示范围。中心点可取observer、target或者二者的中心点均可。全部代码如下: #region 二三维切换及原创 2014-04-21 19:57:22 · 5457 阅读 · 3 评论 -
ArcGlobe三维开发之十八——纵断面图的绘制
我是采用Dev控件中的绘图控件来绘制的纵断面图,下面主要来介绍下输电线路选址以及纵断面图的实时绘制的实现流程。一、关于输电线路的选址,首先要准备好基础地理数据,包括选线区的DOM,DEM,DLG以及属性数据等;其次选址采用二三维交互的方式,即以DLG和DOM为背景,初步选择线路路径,,而后在三维场景下将线路反映出来;再次,通过提取线路路径沿线的高程值,绘制纵断面图,并结合三维地貌对塔位进行原创 2014-04-21 17:11:58 · 3992 阅读 · 2 评论 -
ArcGlobe三维开发之十七——书签
关于书签,主要实现创建书签,缩放至书签等功能。相关接口:ISceneBookmarks2 和IBookmark3D,实现过程很简单,代码如下: 创建书签源码: public partial class CreateBookMark:DevComponents.DotNetBar.Office2007Form { public IGlobeControl m_g原创 2014-04-14 19:51:41 · 2395 阅读 · 1 评论 -
ArcGlobe三维开发之十六——加载和保存3dd文件
ArcEngine提供了加载3dd文件的方法,却没有开放保存3dd文件的接口,通过查找资料,主要是采用二进制段实现了3dd文件的保存和加载,但是用这种方法保存的3dd文件其实是“伪”3dd文件,在ArcGlobe下是打不开的。下面是源代码: private void button_Open3dd_Click (object sender,EventArgs e)原创 2014-04-12 20:59:23 · 4627 阅读 · 1 评论 -
ArcGlobe三维开发之十五——使用对话框设置坐标参考系(ISpatialReferenceDialog2)
最近在学习新的东西的时候也对之前写的程序做了优化。今天在使用对话框设置坐标参考的时候遇到了一点问题,特此备注,希望能帮到遇到同样问题的童鞋。我是写的用Excel生成shape文件,之前写的是先生成shape文件,在设置空间参考。在参考了ArcMap的添加XY数据功能后,感觉还是采用这种模式比较好一些,代码很简单: ISpatialReference pSpatialReference;原创 2014-04-08 23:41:23 · 4599 阅读 · 1 评论 -
ArcGlobe三维开发之十四————播放动画
在动画开发中,录制的一个动画可能只有一个Track也可能有多个Track。前面的博文提到动画的实现方式有两种,这里采用基于Camera的动画。这里我做的比较简单,首先来看实现效果图:下面,我们来看,如何在Globe下实现动画的播放。来看下面的OMD图,从这张图里我们可以看出,Globe包含多个Track(轨迹),Track包含多个KeyFrame(关键帧);动画类型主要有基于Camer原创 2014-04-08 23:21:36 · 4353 阅读 · 0 评论 -
ArcGlobe三维开发之十三——加载保存动画
ArcGlobe3D开发原创 2014-04-08 21:42:19 · 4025 阅读 · 0 评论 -
ArcGlobe三维开发之十二——3D符号化(添加3D符号)
前面的博文http://blog.youkuaiyun.com/giser_whu/article/details/23047213介绍了3D符号化的主要接口。在这里总结下在座的过程中实现3D符号化的两种方式,第一种是将3ds文件作为符号,对点图层进行唯一值渲染,可以设置符号的大小,转角等属性;第二种则是借助GraphicsLayer添加到Globe显示,也可以对符号进行旋转等操作,两种方式的效率如何,还未做原创 2014-04-12 23:52:43 · 4518 阅读 · 2 评论 -
ArcGlobe三维开发之十一——3D符号化(接口)
这里只探讨3D点的符号化,将做好的模型(.3ds)导入作为符号对点图层进行符号化处理,这里对3D符号的操作主要用到IMarker3DSymbol 接口以及IMarker3DPlacement 接口。图层的符号化则要用到IGeoFeatureLayer接口。原创 2014-04-06 21:59:00 · 6134 阅读 · 0 评论 -
ArcGlobe三维开发之十——IGlobeDisplayRendering2 接口
在使用ArcGlobe时,我们可以看到星空,地球外围的晕圈等等效果。在GlobeControl开发中实现这样的效果则要用到IGlobeDisplayRendering2 接口。通过查文档可以知道GlobeDisplay实现了该接口。如下图::最新的接口是IGlobeDisplayRendering2 ,通过该接口,可以控制Globe的显示渲染效果。代码如下:IGlobeDispla原创 2014-04-06 18:31:08 · 2640 阅读 · 1 评论 -
ArcGlobe三维开发之九————由指定路径创建动画(实现)
上一篇博文主要介绍了根据路径实现飞行动画的接口,本篇博文则讲解其实现过程。这里我封装了一个生成动画的类,用于动画的操作,目前只是实现了动画的生成,动画的保存以及动画的加载,后面的博文再陆续探讨动画的播放控制等功能。创建动画类代码如下: /// /// 根据路径创建飞行动画 /// class AnimationCreator { pub原创 2014-04-04 16:40:45 · 6116 阅读 · 1 评论 -
ArcGlobe三维开发之八————由指定路径创建动画(接口)
上一篇博文讨论了动画的两种实现方式,本篇博文采用了Camera的方式创建动画,给定一条路径,按该路径变换Observer和Targeter的位置来实现动画效果。一、首先来看主要用到的接口:IAnimationExtension 、IAGAnimationUtils 、IAGImportPathOptions (1)、IAnimationExtension :动画扩展对象。原创 2014-04-04 14:30:21 · 4580 阅读 · 0 评论 -
ArcGlobe三维开发之七————动画的两种实现方式
动画的实现方式主要有两种:IAnimationTrack和ICamera。一、Animation(1)、基于关键帧(2)、设置每个关键帧的ImeStamp来确定播放时间(该帧占总播放时间的百分比)(3)、便于使用,集成了视频输出接口。可输出.AVI二、Camera两个位置- Observer:Camera所在的位置- Target:Camera所指向的位置• 获原创 2014-04-04 13:16:35 · 4659 阅读 · 0 评论 -
ArcGlobe三维开发之六——动画(前言)
在Globe下使用动画可以让用户以一种动态原创 2014-04-04 11:49:29 · 3036 阅读 · 0 评论 -
ArcGlobe三维开发之五——获取并设置Globe图层的叠加次序
Globe中的图层类型主要有以下三种:(1)、浮动图层(floating): 通过在要素几何、要素属性或图层级别设置中包含 Z 值,来定义其自身在 3D 空间中的位置。(2)、叠加图层(draped):被放置在某个已知表面图层之上,以从该图层获得其Z值。(3)、高程图层(Elevation):提供要在其上放置其他图层的 3D 表面。1、首先初始化Globe对象2、Get I原创 2014-04-03 23:10:26 · 4753 阅读 · 1 评论 -
ArcGlobe三维开发之四——设置globe图层的缓存属性)
Disk caching creates a temporary file or cache for each layer in ArcGlobe, which helps you display and navigate your data efficiently. This topic shows how to set layer cache properties programmatical原创 2014-04-03 19:43:44 · 4402 阅读 · 0 评论 -
ArcGlobe三维开发之三——3D符号的现实单位显示
ArcEngine实现3D符号的现实单位显示。原创 2014-04-03 15:31:53 · 5262 阅读 · 0 评论 -
ArcGlobe三维开发之二——IGlobeLayerProperties接口
IGlobeLayerProperties 接口Provides access to members that manipulate the globe layer properties. Note: the IGlobeLayerProperties interface has been superseded byIGlobeLayerProperties4. Please原创 2014-04-03 10:28:34 · 2620 阅读 · 0 评论 -
ArcGlobe三维开发之一——图层及常用接口
1、IGlobe:--Globe控件的globe对象2、IGlobeDisplay:Globe控件的显示操作3、IGlobeCamera:IGlobeCamera- 控制查看的视角4、IGlobeViewer:-控制查看的视点5、IGlobeDisplayLayers:提供对控制globe显示图层成员的访问描述:IGlobeDisplayLayers interface p原创 2014-04-03 10:08:11 · 4953 阅读 · 3 评论