
3DGIS
召唤师峡谷
WebGIS、3DGIS、DesktopGIS,移动开发
展开
-
三维输电线路建模
三维输电模型主要有:地形、杆塔、线路、变电站等附属设施及交叉跨越的一些模型房屋、树木等。1、地形动态建模虚拟地形环境的表达在输电线路三维场景中不可缺少。采用DEM和DOM数据叠加的方式来构建三维场景2、杆塔建模在三维输电GIS中,需要对杆塔及其他输电设备进行三维实体建模。一句杆塔的型号对杆塔进行分类,同型号的杆塔再依据表面材质,纹理的相似性进行分类,这些模型在工具软件(3DMAX、原创 2014-03-10 20:12:39 · 3552 阅读 · 0 评论 -
ArcGlobe三维开发之十四————播放动画
在动画开发中,录制的一个动画可能只有一个Track也可能有多个Track。前面的博文提到动画的实现方式有两种,这里采用基于Camera的动画。这里我做的比较简单,首先来看实现效果图:下面,我们来看,如何在Globe下实现动画的播放。来看下面的OMD图,从这张图里我们可以看出,Globe包含多个Track(轨迹),Track包含多个KeyFrame(关键帧);动画类型主要有基于Camer原创 2014-04-08 23:21:36 · 4353 阅读 · 0 评论 -
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三维开发之十七——书签
关于书签,主要实现创建书签,缩放至书签等功能。相关接口:ISceneBookmarks2 和IBookmark3D,实现过程很简单,代码如下: 创建书签源码: public partial class CreateBookMark:DevComponents.DotNetBar.Office2007Form { public IGlobeControl m_g原创 2014-04-14 19:51:41 · 2395 阅读 · 1 评论 -
ArcGlobe三维开发之七————动画的两种实现方式
动画的实现方式主要有两种:IAnimationTrack和ICamera。一、Animation(1)、基于关键帧(2)、设置每个关键帧的ImeStamp来确定播放时间(该帧占总播放时间的百分比)(3)、便于使用,集成了视频输出接口。可输出.AVI二、Camera两个位置- Observer:Camera所在的位置- Target:Camera所指向的位置• 获原创 2014-04-04 13:16:35 · 4659 阅读 · 0 评论 -
ArcGlobe三维开发之八————由指定路径创建动画(接口)
上一篇博文讨论了动画的两种实现方式,本篇博文采用了Camera的方式创建动画,给定一条路径,按该路径变换Observer和Targeter的位置来实现动画效果。一、首先来看主要用到的接口:IAnimationExtension 、IAGAnimationUtils 、IAGImportPathOptions (1)、IAnimationExtension :动画扩展对象。原创 2014-04-04 14:30:21 · 4580 阅读 · 0 评论 -
ArcGlobe三维开发之九————由指定路径创建动画(实现)
上一篇博文主要介绍了根据路径实现飞行动画的接口,本篇博文则讲解其实现过程。这里我封装了一个生成动画的类,用于动画的操作,目前只是实现了动画的生成,动画的保存以及动画的加载,后面的博文再陆续探讨动画的播放控制等功能。创建动画类代码如下: /// /// 根据路径创建飞行动画 /// class AnimationCreator { pub原创 2014-04-04 16:40:45 · 6116 阅读 · 1 评论 -
ArcGlobe三维开发之十——IGlobeDisplayRendering2 接口
在使用ArcGlobe时,我们可以看到星空,地球外围的晕圈等等效果。在GlobeControl开发中实现这样的效果则要用到IGlobeDisplayRendering2 接口。通过查文档可以知道GlobeDisplay实现了该接口。如下图::最新的接口是IGlobeDisplayRendering2 ,通过该接口,可以控制Globe的显示渲染效果。代码如下:IGlobeDispla原创 2014-04-06 18:31:08 · 2640 阅读 · 1 评论 -
ArcGlobe三维开发之十三——加载保存动画
ArcGlobe3D开发原创 2014-04-08 21:42:19 · 4025 阅读 · 0 评论 -
ArcGlobe三维开发之十八——纵断面图的绘制
我是采用Dev控件中的绘图控件来绘制的纵断面图,下面主要来介绍下输电线路选址以及纵断面图的实时绘制的实现流程。一、关于输电线路的选址,首先要准备好基础地理数据,包括选线区的DOM,DEM,DLG以及属性数据等;其次选址采用二三维交互的方式,即以DLG和DOM为背景,初步选择线路路径,,而后在三维场景下将线路反映出来;再次,通过提取线路路径沿线的高程值,绘制纵断面图,并结合三维地貌对塔位进行原创 2014-04-21 17:11:58 · 3992 阅读 · 2 评论 -
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三维开发之五——获取并设置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三维开发之十二——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三维开发之二十——输电线路二三维交互选线
前面输电线路的生成方式前提是实地勘测了杆塔点位,采集了杆塔的坐标,直接导入Excel生成shape文件。现在是做一个输电线路的选址,传统的规划选线作业采用失效性差的纸质地图,造成选线路径方案可行性差,准确性低。应用高分辨率卫星影像和数字高程模型建立三维选线平台以辅助选线并进行杆塔辅助规划,可有效提高线路路径规划的可行性和准确性,节省投资。基础地理数据主要包括DEM、DOM、DLG,杆塔模型以及原创 2014-04-27 22:56:27 · 4873 阅读 · 4 评论 -
World Wind Java开发之十五——加载三维模型
之前的一篇博客是关于加载粗三维模型的,见http://blog.youkuaiyun.com/giser_whu/article/details/43452703,这个地方还存在着不能加载纹理的问题,一直没呢解决。那么WW如何加载常用的三维模型格式(3ds、obj、skp)呢,通过一番搜索,了解到WW可以加载collada的dae格式的三维模型,并且还可以加载kml\kmz文件,那么WW加载三维模型的方法就出原创 2015-03-18 19:25:18 · 6968 阅读 · 11 评论 -
World Wind Java开发之十二——加载粗制三维模型(ExtrudedPolygon)
ww可以根据DLG图批量生成假三维模型,这对于小区等特征相似的建筑物模型的构建是非常有用的。下面来看如何一步步实现假三维模型的加载:1、Shp文件的制作首先在arcmap下数字化几个建筑物,并新建height字段存储建筑物的高度。2、代码实现 /** * * @方法名称: init3DModel ; * @方法描述: 导入简易三维模型 ;原创 2015-02-03 18:18:33 · 5170 阅读 · 13 评论 -
ArcGlobe三维开发之十一——3D符号化(接口)
这里只探讨3D点的符号化,将做好的模型(.3ds)导入作为符号对点图层进行符号化处理,这里对3D符号的操作主要用到IMarker3DSymbol 接口以及IMarker3DPlacement 接口。图层的符号化则要用到IGeoFeatureLayer接口。原创 2014-04-06 21:59:00 · 6134 阅读 · 0 评论 -
ArcGlobe三维开发之六——动画(前言)
在Globe下使用动画可以让用户以一种动态原创 2014-04-04 11:49:29 · 3036 阅读 · 0 评论 -
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 评论 -
ArcEngine下架空线之悬链线的模拟
最近在做电力方面的东西,需要对架空线进行三维建模。经过前端时间的搜索与实践,最终实现了AE下悬链线的模拟。首先说明几个问题:(1)实地架设杆塔时,两个相邻杆塔的高程一般是不相同的,这就需要用到不等高悬点架空线的悬链线方程,在线路三维建模时要进行点位的判断(2)在计算悬链线高度时要进行三维空间XYZ到二维空间ZU的转换,这里的u坐标轴是杆塔连线在XY平面的投影,zu所在三维空间Z=低悬点的高原创 2014-03-16 13:55:10 · 5732 阅读 · 5 评论 -
ArcEngine由点生成TIN
这两天替别人写一个三维校园的展示程序,用的是SceneControl二次开发。需要利用DOM和TIN构建三维地形。现在说下根据高程点生成TIN的过程:(1)根据高程点文件(Excel)生成点shapefile(2)使用ITinEdit的AddFromFeatureClass方法生成TIN高程点数据格式如下:操作界面如下::生成TIN效果图:代码很容易理解,如原创 2014-05-13 23:09:08 · 6762 阅读 · 2 评论 -
ArcEngine下TIN生成等高线
时间太晚了,直接附上源码:原创 2014-05-13 23:48:30 · 4213 阅读 · 0 评论 -
ArcEngine下SceneControl叠加影像数据(构建三维地形)
加载完TIN数据后,需要在三维物体上描绘细节,即纹理;建立DEM表面点与纹理空间点的关系,即纹理映射。叠加影像数据就是把影像看作纹理,将其贴在地形表面,让其具有地形起伏的三维效果。这里与GlobeControl下三维场景的构建有所不同,在前面的博文中我们提到过,globe下图层主要有三种类型:Floating、Draped、Elevation(浮动、叠加和高程图层),即只需要设置图层的属性即可原创 2014-05-13 23:42:04 · 5418 阅读 · 0 评论 -
AE+SceneControl源码共享
最近,有博友发私信或留言交流,先把之前用SceneControl代做的一个小工程共享,做的很粗糙,希望可以帮到大家,欢迎留言交流哈。除了基本的打开、保存、数据加载、查询等,主要实现以下几个功能:1、根据高程点(excel文件)生成TIN。2、TIN与DOM叠加构建三维场景。3、根据TIN提取等高线。4、模型导入下载地址见:http://download.youkuaiyun.com/d原创 2014-08-21 00:05:05 · 2637 阅读 · 4 评论 -
World Wind Java开发之七——读取本地栅格文件(影像+高程)构建三维场景
首先,看下本篇博客要达到的效果图:下面逐步分析如何加载影像及高程文件。1、WorldWind Java导入数据包在src源码文件中找到dataimport包,这个包里面的示例代码演示了如何向WW上加载影像及高程文件。可以看到有import和install两种方式,import是简单的以图层的形式加载到WW上;install是指当文件较大时,将文件以本地缓存的方式加载,这里先以i原创 2014-12-02 16:51:20 · 9069 阅读 · 16 评论 -
World Wind Java开发之八——加载本地缓存文件构建大范围三维场景
上一篇博客主要是针对小文件直接导入WW中显示,然而当文件特别大时,这种方式就不太可行。因此要将大文件切片,生成本地缓存,WW可以加载本地缓存文件,保障浏览场景时的流畅性。1、使用Global Mapper生成WW缓存切片使用Global Mapper生成WW缓存切片的步骤已上传至使用GlobalMapper生成WW缓存切片,这里不再赘述。生成后的切片可以放在任意文件夹下,目前参考了WWJ自原创 2014-12-20 20:00:26 · 6874 阅读 · 10 评论 -
World Wind Java开发之十三——加载Geoserver发布的WMS服务
这篇是转载的平常心博客,原地址见:http://www.v5cn.cn/?p=171WorldWind图层类(3)-WMSTiledImageLayer类发表于2013年11月8日1、类说明这一篇我们将使用《OSM数据插入PostGIS数据库为GeoServer提供数据》中发布的WMS服务来完成WMSTiledImageLayer的简单测试。一个WM转载 2015-02-04 16:07:19 · 5620 阅读 · 5 评论 -
World Wind Java开发之十一——加载热点信息(仿Google Earth)
在GE的图层中有一个照片图层,在浏览时可以看到各地的一些图片,我们称之为热点信息,如下图所示:再来看下本文的实现效果:效果是不是很像呢,其实实现这个很简单,参照examples中的Balloons就可以很容易的实现,这里我自己封装了BalloonUtil类便于复用,代码很简单都加了注释就不再一一展开了,直接附上源代码,有看不明白的地方可以留言交流哈。/** * @Copyri原创 2015-02-03 17:22:39 · 5100 阅读 · 2 评论 -
World Wind Java开发之九——阶段小结
将近一个月没有更新了,一是因为项目的事情,二是期末考试复习,三是玩啦。上一篇博客搭建起了三维框架,这段时间没有研究新的东西,把之前用C#写的代码移植到现在的平台下,中间也遇到了不少问题,但还好都解决掉了,大都是写基本的小问题,就没有写博记录了。看下效果:1、三维地形构建数据都是自己下载的,DEM在地理空间数据云上下载的,影像用BIGE MAP地图下载器下载,经过投影变换以及Glob原创 2015-01-16 22:19:09 · 3509 阅读 · 3 评论 -
World Wind Java开发之十——AnalyticSurface栅格渲染
1、AnalyticSurfaceDemoArcGIS下对栅格的各种分级渲染效果是非常好的,可以做出很漂亮的图,现在在WW下也可以做出同样的效果了,看到这里是不是有点小兴奋呢。先看下WW自带的AnalyticSurfaceDemo的运行效果图:通过看源代码可以知道给出了三种渲染示例,其中两种是动态的,这里我需要的是对dem数据或者是单波段影像的渲染,也就是左上方的渲染效果。2、原创 2015-01-22 13:10:20 · 3775 阅读 · 2 评论 -
ArcGlobe三维开发之十五——使用对话框设置坐标参考系(ISpatialReferenceDialog2)
最近在学习新的东西的时候也对之前写的程序做了优化。今天在使用对话框设置坐标参考的时候遇到了一点问题,特此备注,希望能帮到遇到同样问题的童鞋。我是写的用Excel生成shape文件,之前写的是先生成shape文件,在设置空间参考。在参考了ArcMap的添加XY数据功能后,感觉还是采用这种模式比较好一些,代码很简单: ISpatialReference pSpatialReference;原创 2014-04-08 23:41:23 · 4599 阅读 · 1 评论 -
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 评论 -
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三维开发之三——3D符号的现实单位显示
ArcEngine实现3D符号的现实单位显示。原创 2014-04-03 15:31:53 · 5262 阅读 · 0 评论 -
World Wind Java开发之十四——添加WMS地图服务资源
数据是GIS的核心,没有数据一切无从谈起,Internet上有很多在线WMS地图服务资源,我们可以好好利用这些数据资源,比如天地图、必应地图、NASA、OGC数据服务等等。在我们国家常用的还是天地图的地图服务资源,详见:http://blog.3snews.net/space.php?uid=6955280&do=blog&id=67981,这篇博客列举了一些常用的在线地图服务资源,读者可以自原创 2015-02-05 11:39:33 · 11807 阅读 · 8 评论