搜档网
当前位置:搜档网 › 三维校园电子地图

三维校园电子地图

三维校园电子地图
三维校园电子地图

三维校园电子地图(上)

访问734次

作者:李纳璺陈金龙阮方舟

1引言

随着计算机技术,特别是计算机图形学、三维仿真技术以及虚拟现实技术的飞速发展,传统的

二维电子地图被注入了新的活力,三维电子地图正成为电子地图发展的一个重要方向。传统的二维

电子地图只能以图形和符号的方式来呈现一张地图,这种方式往往不能直观清晰的表示出地图所在

位置的地理环境;采用三维电子地图的方式,建立场景的仿真模型,把现实场景进行虚拟再现,真实、互动、情节化的特点是虚拟现实技术独特的魅力所在。

如何设计一个仿真度高,并且具备虚拟漫游和智能导航的三维地图引擎,成为三维电子地图研究领域的一个热点问题。本文研究的设计的三维电子地图引擎系统,设计了模型动态加载接口,并具备智能导航和虚拟漫游引擎,实现了三维校园仿真电子地图。它为校园规划建设、游客观光导航、学校对外宣传等方面提供了一个智能化的平台,为广大系统用户提供了极大的便利。开展虚拟校园三维地图仿真引擎系统及相关课题的研究适应了信息社会发展的趋势,具有重要的理论和现实意义。

本文对从DirectX技术着手,采用Microsoft Visual C#编程语言结合三维图形开发包(Managed DirectX SDK August 2007)在.net框架中构建的三维校园电子地图程序。该程序实现了桂林电子科技大学的(东区)的三维校园电子地图的功能。除此之外,在可视化的基础上实现了一些虚拟现实的交互操作和空间分析,如:校园景物的查看、校园路径导航、三维动态漫游校园等;给需要了解桂林电子科技大学校园地理信息的用户提供了极大方便。

2 本课题研究的内容

本课题是一个使用Managed DirectX的三维图形技术实现的一个三维校园电子地图程序,该程序是在.net框架下建立完成,开发语言为当今最流行的高级语言Microsoft Visual C#。它是以桂林电子科技大学东校区为实景,进行了校园虚拟仿真,建立了具备观光浏览与智能导航为一体的多媒体三维校园电子地图程序。

本课题主要是研究了三维建模技术在程序中的导入技术、三维模型的优化、虚拟现实技术、Floyd 算法实现的智能导航技术、Alpha混合与Alpha测试技术、三维场景中的光照技术、XML技术、用户交互控件技术等等。这些技术将全部应用到三维校园电子地图程序当中,最终展示出集视觉、听觉、用户智能交互于一体的校园仿真三维地图。

3 开发环境与相关技术简介

3.1 Managed DirectX与托管代码版DirectX 9.0语言支持

(1) Managed DirectX

DirectX 是一系列低级的应用程序接口(APIs),它用于创建游戏和其他高执行效率的多媒体程序。它包括对高效的2D和3D图形、音效和音乐、输入设备、力反馈设备、多媒体流和多人游戏的网络通信程序。三维校园电子地图程序的三维环境漫游引擎的构建就是使用Managed DirectX 9.0的图形

处理技术来完成的。

(2) 托管代码版DirectX 9.0语言支持

在DirectX 9.0下,开发者在使用托管代码的时候,能够利用DirectX的多媒体功能和硬件加速。托管代码版DirectX 9.0允许访问大多数原始的非托管DirectX功能。下面是被DirectX 9.0和DirectX 9.0 SDK支持的托管代码语言:

Microsoft Visual C#

Microsoft Visual Basic .NET

Microsoft Visual C++

Microsoft JScript .NET

在三维校园电子地图程序中,采用的是Microsoft Visual C# 2.0、 Microsoft DirectX Software Development Kit(SDK) August2007来开发。

(3) Managed DirectX包含的组件

托管代码版DirectX 9.0 由以下主要组件构成。

(1) Direct3D Graphics 提供了一个单一的API,你能使用它进行3-D图形编程。

(2) DirectDraw 提供直接的低级访问显存和高速渲染。

(3) DirectInput 提供对于多种输入设备的支持,包括对力反馈技术的完全支持。

(4) DirectPlay 提供多人网络游戏的支持。

(5) DirectSound 提供播放和捕捉预录制数码采样的支持。

(6) Audio Video Playback 允许回放和简单控制音频/视频媒体。

(4) Managed DirectX的优点

通过消除COM 组件对象模型的互通层,托管代码版DirectX 9.0改善了执行性能。托管代码能减少代码体积和提升工作效率。继承于强大易用的Microsoft .NET Framework 公共类型的接口更加直观。托管代码也把你从处理很多内存管理的任务中解放了,这些任务比如释放对象。

Managed DirectX还提供了简单的3D程序框架,三维校园电子地图就是基于这个框架而开发的一个3D应用程序。使用Managed DirectX很大程度上减少了繁重的初始化操作。由于代码运行

于 Microsoft .NET 虚拟机之上,开发的语言为Microsoft Visual C#,所以程序能够自动回收垃圾,避免了内存的泄露,还降低了代码复杂度,便于Web接口的开发。

3.2三维坐标系与几何图形学

在使用DirectX开发三维校园电子地图程序之前,首先要对3D图形学的数学基础有一定的了解,根据三维校园电子地图程序的需求,需要掌握以下几个方面的知识点:

(1) 向量以及向量的运算;(2) 3D坐标系;(3) 面和顶点法线;(4) 3D物体的构成。

(由于篇幅有限,加上难度不大,以上4点在此不作详细介绍。关于Floyd最短路径算法原理,Alpha混合与测试原理,三维场景中的光照技术类型请读者参考相关书籍):

4 系统总体设计

三维校园电子地图程序是把桂林电子科技大学东区的校园实景虚拟再现,除能够实现普通地图的功能以外,还能够进行三维的景点观光和智能路径导航等功能。系统总体开发流程框架如图4-1所示:

图4-1 系统总体开发流程框架

构建一个三维校园电子地图系统需要按照以下几个关键步骤来进行程序的开发:

(1) 数据采集:获取校园的相关建筑数据以及地理环境信息;

(2) 平面图制作:从获取的相关数据中提取有用信息,建立校园二维平面图;

(3) 三维模型的建立:建立校园场景中的建筑模型、场景小品模型、天空环境模型和地形模型等;

(4) 开发漫游导航引擎:使用程序来实现模型导入、三维场景的漫游、导航功能。

三维校园电子地图漫游导航引擎作为该项目的核心部分,它主要实现的目标是:实现将3ds Max建立的模型导入引擎,把所有模型组合成一个校园整体,导入音乐,加载天空、地形以及环境小品等对象,构建成一个集音乐与用户交互的三维校园互动程序。将更加直观的把整个校园场景展示出来,以便于该软件的使用者迅速了解桂林电子科技大学(东区)校园的地理信息。

4.1 相关数据的采集

(重点说明:作为学习或做Demo版,通过实地和GOOGLE卫星图获题材是一种十分可取的方法)在开发三维校园电子地图之前,首先要对校园的各方面数据进行收集,由于大量的建筑数据以及校园平面景观布局图纸可以从校方直接获取,也可以通过实地取材和互联网资源来获取相关数据(我们的数据是采取此法)。

校园建筑的模型比例数据、贴图数据、布局位置全部是通过实地取材得来,由于学校东区面积比较大,建筑复杂多样,导致数据采集工作量很大,用了近两个星期,使用数码相机在校园各个角落获取数码照片近10000张,将校园所有景观囊括在内。建筑轮廓基本是从高层楼顶拍摄,然后通过照片的对比和组合得到建筑的实际外形和轮廓数据,通过互联网的GOOGLE卫星图获取建筑之间的比例数据以及平面布局数据,通过照片的剪切获取景物的纹理贴图数据。

4.2 二维平面图的制作

校园二维平面图的制作在三维校园电子地图的开发过程中是相当重要的一个环节,二维平面图制作的好坏直接影响到三维立体图的效果。因为三维地图的建模是完全基于二维平面图而建立的,如果二维平面图的比例不正确,就不可能制作出精确的三维地图。制作二维平面图的还有个作用,就是生成导航

引擎程序的小地图导航地图功能。可见二维平面图的制作必须准确无误。

为了控制好二维平面图的比例和相关建筑的位置精确,本系统使用了Google卫星照片来做底图作为二维平面图的绘制参考。然后再使用AutoCAD 2007来绘制线条,这样便能达到精确绘制的目的。

底图是通过Google卫星照片拼接而成,首先在电脑上安装Google_Earth_BZXV.exe。在搜索框中输入桂林电子科技大学的位置:25°17'5.05"N,110°19'53.89"E以获取校园的卫星照片。为了得到清晰的底图,获取图片是采取分次获取,然后使用Photoshop合并成一张完整的桂电东区校园底图。如图4-2所示:

图4-2 桂林电子科技大学(东区)卫星图

4.2.1建筑平面框图

获得了校园的平面底图GuetMap.jpg以后,将它导入进AutoCAD 2007作为外部参照的地图,用CAD的直线和曲线绘制工具按照底图建筑的轮廓绘制出外形,就得到一张CAD导出平面图guet.dwg文件。该文件的最终效果如图4-3所示:

图4-3 校园平面图

有了这张平面地图,就能够使用3DMAX导入*.dwg文件作为底图参照,然后绘制出等比例的校园3D 模型。

4.3 三维模型的建立(建筑模型和环境小品模型的建立在此不作介绍)

地形模型建立:桂林电子科技大学整个东区校园的地形样式比较丰富,由山坡、河流、以及高低不同的坡面,这个地形的模型制作加大了难度。在校园东区地形的创作中,我把整个学校当作一个区域,按照CAD地图建立一个大平面,然后在这个大平面上切割出许许多多个小面,再通过多边形修改器来分区修改这些小面。在地形中,比较矮小的坡度(如:路边沿等)则不进行3D建模,而是使用贴图取而代之,这样将会最大程度上减小程序的开销。在实时虚拟系统中,它们应该使用尽可能少的面,获得尽可能少的面的方法是在建立模型时使用合适的方式,当把贴图赋给实时模型时,也应该使用最少的面。所以这类模型在建立时主要用二维的模型结合透明贴图来创造出三维的模型效果,即用贴图来代替细节模型。得出高低不同的坡面以及河流等模型。最终完成的地形图如图4-4所示:

图4-4 地形模型

4.4 三维漫游导航引擎的构建

创建三维校园电子地图引擎系统是使用C#语言结合Microsoft DirectX SDK来完成的,是基于Microsoft DirectX SDK Sample Framework来建立引擎框架,调用了Microsoft 为我们提供的类库。这些已经完成公用类全部放在 ..\Microsoft DirectX SDK (August 2007\Samples\Managed

\Common文件里面,创建三维校园电子地图程序的时候需要将这些公用类包含到该项目当中,使用这个框架相当于为引擎提供了一个快速开发3D程序的一个空框架,在这个框架中创建三维校园漫游导航的3D程序。为三维校园电子地图程序提供了丰富可利用的3D程序接口。引擎总体框架如图4-5所示。

图4-5 引擎总体框架

4.4.1 三维引擎的设计目标

该三维漫游导航引擎主要具备以下功能:

(1) 能对整个校园模型进行全局俯视以及任意视角的观察,以便让用户更加全面的了解校园每一处的地理信息;

(2) 能够让用户自定义选择所需要加载的三维模型,以便适应显卡配置较低的用户,通过读写XML文件来保存用户的配置信息;

(3) 能够设置不同的分辨率,以满足用户的需求;

(4) 采用FLOYD算法计算校园每两个景点的最短路径,实现校园每一个景观的智能导航功能;

(5) 在导航模式中,实现小地图标示位置功能,让用户快速的了解自己所在校园的具体位置;

(6) 实现用户控制摄影机的移动功能,并且能控制移动的速度;

(7) 实现三维漫游场景的音乐导入,使三维校园程序效果更加丰富;

(8) 实现光照效果,使得场景模型更加富有层次感。

4.4.2 三维地图的程序引擎的框架介绍

三维校园电子地图的漫游导航引擎是使用Microsoft Visual Studio 2005来进行编码,该项目工程中包含了以下的文件列:

(1) common文件夹:里面包含了Microsoft DirectX SDK Sample Framework的所有类库;

(2) UI文件夹:包含了用户控件的压缩纹理,以及用户控件的一些信息;

(3) Main.cs文件:程序的主入口;

(4) Campus3D.cs文件:控制整个引擎;

(5) BaseLevel.cs文件:层级的基类;

(6) Level.cs文件:控制主层操作级;

(7) Level1.cs文件:控制主层级模型加载;

(8) LoadingLevel.cs文件:读取模型素材层级;

(9) MenuLevel.cs文件:控制菜单层级;

(10) OptionLevel.cs文件:控制配置层级;

(11) MaxObject.cs文件:控制模型对象;

(12) HUD3D.cs文件:控制HUD模型对象;

(13) Background.cs文件:显示背景图片;

(14) PicShow.cs文件:显示小地图;

(15) PointShow.cs文件:显示提示点;

(16) Floyd.cs文件:实现最短路径算法;

(17) Mesh.cs文件:实现X文件加载;

(18) Music.cs文件:实现音乐的加载;

(19) Sound.cs文件:实现音效的加载。

(20) GuetRes文件夹:包含了所有模型的X文件、纹理贴图文件、声音文件、背景图片文件、XML用户配置文件以及场景元素文件,用于存放引擎的所有资源。

4.4.3 引擎的主入口

Main.cs文件包含了Project类,该类继承了DirectX SDK Sample Framework的两个IFrameworkCallback, IDeviceCreation类,是整个三维校园电子地图程序的入口。主要负责初始化程序中所需要的设备以及处理程序的所有消息,处理3D程序循环体中负责更新程序物体和渲染物体的方法,这两个方法分别是:OnFrameMove()和OnFrameRender()。下面对这主要函数的功能做简单的介绍:(1) OnFrameMove()

该函数在任何帧发生之前调用,根据程序时间对场景(例如,动画)的位置进行更新。

(2) OnFrameRender()

绘制场景,在调用返回后DirectX将交换链中的下一个缓冲区的内容显示在屏幕上。

(3) OnCreateDevice()

该函数用于创建设备,实例化Campus3D类,并且设置层级的光照效果和透明贴图。

(4) IntPtr OnMsgProc()

处理引擎的控制消息,接收用户发出的消息。

(5) OnResetDevice()

当窗口发生重置(如窗口分辨率发生变化)时调用,重新设定窗口的宽度和高度,设置设备的渲染状态RenderState,并且触发引擎主控制类的重置函数Campus3D.CurrentLevel.Reset()。

在设备的创建以后,实例化了Campus3D类。这个类是负责处理整个三维校园程序,在该类中的构造函数中设置了程序资源的路径。设置如下:

Directory.SetCurrentDirectory(Application.StartupPath + "\\GuetRes\\");

该类用来设置创建程序渲染的当前层级CurrentLever,在Campus3D类被初始化的时候就实例化了当前层级为MenuLevel,使得程序一开始运行就进入菜单窗口;

三维地图漫游导航引擎使用了两种摄像机camera和cameraHUD。设置这两种摄像机的作用如下:(1) camera

摄像机camera被定义成第一人称摄像机,负责渲染程序的动态主场景;

(2) cameraHUD

摄像机cameraHUD被定义成球型摄像机,负责渲染用户的菜单和静态的HUD模型;

4.4.4 引擎的层级

层级在三维电子地图执行的各个阶段中,包含了这个阶段所特有的元素和逻辑的对象。本引擎一共使用了三个层级:菜单层级、设置层级和主程序层级。每个层级往往有自己特定的更新和渲染函数。 BaseLevel.cs中包含了BaseLevel抽象类,他是整个程序所有层级的基类,其中声明了其派生类所调用的所有方法,它的构造函数用于重置整个层级。它定义的抽象方法主要有以下几个:

protected abstract void InitializeGraphics(); //初始化图形文件

protected abstract void InitializeSounds(); //初始化音效文件

public abstract void Reset(); //用于重置层级

public abstract void Update(); //用于更新层级

public abstract void Render(); //用于渲染层级

public abstract void KeyPressedHandler(KeyEventArgs Key);

在整个程序中,主要创建了以下几个层级:

(1) Level和Level1类

这两个层级是程序的核心层级Level继承于BaseLevel,而Level1又继承于Level;Level1负责加载Level层级中所需要渲染的3D物体以及定义好最短路径的结点矩阵,Level则负责处理程序主层级中的所有逻辑,接收用户发出的操作,并做出相应的处理,是整个程序最核心的部分。

(2) MenuLevel类

该类是负责处理程序开始运行时菜单层级的渲染,包含了所有菜单消息的响应函数,并按照用户选择不同的菜单进入不同的层级。

(3) OptionLevel类

负责处理引擎中的配置层级。

三维校园电子地图引擎中,层级之间的继承关系如下图4-6所示。

图4-6 层级的继承关系

4.4.5 引擎的模型对象

在三维校园电子地图中,所有的三维对象都具备了它本身的一些特有属性和一些公共的属性,它们都按照三维对象的实际需要去创建。

MaxObject.cs文件中包含了抽象类MaxObject,它是所有3D物体的基类,而且是一个抽象类,用于

创建物体,设置物体的变换矩阵。它的构造函数:用于设置物体的位置和旋转角度,并且保存mesh或者动画的引用。

它定义了模型对象的一些公共属性:

public static MeshHolder staticMeshHolder;

public Vector3 Position; //保存物体在世界坐标系中的位置

public Matrix MyTransformation = new Matrix(); //保存变换矩阵(平移和旋转)

public float xAngle, yAngle, zAngle; //保存旋转角度

private Meshes MeshReference = null; //保存mesh的引用

还包含了一些公共的抽象方法:

public abstract void Reset() //用于物体发生变化时重置模型对象;

public virtual void Render() //用于渲染当前的模型对象;

public virtual void Update(Matrix ParentTransformation) //用于更新模型对象;

private void SetupTransformationMatrix(Matrix ParentTransformation) //用于构造进行平移和旋转的变换矩阵。

派生类Obj、SkyObj、TreeObj、NodeObj、PlayerObj以及HUD3D,派生类都是直接继承于MaxObject 类。

(1) Obj类: 继承于MaxObject类,程序中所有的静态物体都是调用该类来创建,比如说教学楼、图书馆、体育馆等模型。

(2) SkyObj类: 继承于MaxObject类,用于创建天空环境的天空盒。在该类里面重写了Rander函数,用于关闭灯光和设置贴图模式,在后面讲对他做详细介绍。

(3) TreeObj类: 继承于MaxObject类,用于创建场景中树的模型。

(4) NodeObj类: 继承于MaxObject类,用于创建程序中用于计算校园导航时最短路径的所有结点。

(5) PlayerObj类: 继承于MaxObject类,用于创建程序中移动的物体,其中HandleMovement()函数实现了该移动物体的具体移动方式。

(6) HUD3D类:继承于MaxObject类,用于创建程序中用于HUD的物体模型。

4.4.6引擎的模型读取

在三维校园地图引擎中,需要加入很多由3Ds max创建的模型,而这些模型都是在创建以后到处成*.X文件格式,这种格式的文件是能够支持Directx的模型文件,它记录了模型的所有顶点位置和贴图的纹理路径以及模型在世界中的坐标等信息。三维引擎为了得到这些模型的相关数据,就必须得建立相关的文件读取类来读取X文件中的各种模型数据。

Mesh.cs文件包含了Meshes类,用于加载使用3DMAX导出的*.X模型文件,它将X文件中的纹理以及物体的顶点抽取出来,为3D程序渲染物体提供所需要的资源。

Meshes类将模型的顶点以及贴图信息成功读取以后,为了方便引擎的调用,将它们的所有网格都保存在MeshHolder这个类里面。该类中使用了一个Meshes的泛型变量列表来保存这些网格的信息。public List MyMeshes = new List(); //Mesh对象列表

4.4.7 引擎的图片导入

在三维校园地图程序中,会加载一些背景图片和二维的小地图的图片,这些图片是通过Background.类、PicShow类和PointShow类来实现的。这三个类他们都是用于加载图片,所以函数的实现方式基本一样,只是显示的位置和大小有所不同。

Background类是用作菜单层级的背景图片显示的,它在所有其它物体之前被渲染,位于屏幕中所有其他物体的后面,不会受到摄像机位置的影响,不会影响程序的进行。它的目的完全用于美化场景。

这三个类的共同点是:

(1) 使用VertexBuffer对象创建并且分配顶点缓冲区来保存顶点信息;顶点缓冲区必须包含4个

顶点,使用适当的信息来填充缓冲区。

(2) 使用Reset(float x,float y,float Width, float Height)函数来创建位置和纹理坐标,在Render()函数中设置好所要加载的图片和纹理,而后场景渲染在设备调用的BeginScene和EndScene之间完成。

4.4.8 引擎的音乐

为了丰富三维校园程序,在程序运行时,会加入背景音乐,以更好的渲染出环境的气氛;而加载音乐是通过Music.cs文件中的Music类来实现。

Music类继承于IDisposable类,里面包含了音乐的加载、播放、停止和暂停的控制函数,用以实现背景音乐的播放功能。

三维校园电子地图(下)

访问1138次

作者:李纳璺陈金龙阮方舟

5 三维引擎的功能模块设计

设计三维校园电子地图引擎系统包含了以下主要功能模块的设计:

(1) 用户交互界面设计;

(2) 智能导航设计;

(3) 模型加载和渲染;

(4) 光照处理;

(5) 天空盒设计;

本节将对这些主要功能和技术的实现进行详细介绍。

5.1 用户交互界面设计

5.1.1 用户界面设计

用户界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的用户界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。

本系统的主菜单界面采用天际

蓝作为主色调,背景使用桂林电子科技大学东区的标志性建筑物图片加以衬托,中间再使用三维仿真模型场景加以点缀,充分体现了软件的主体内容和风格。主菜单界面如图5-1所示。

图5-1 主菜单界面

程序运行的主界面以三维仿真场景为主,按照三维程序常见的做法,把二维平面地图放置在窗口的左上角,二维图下面放置的则是用户相关操作控件。符合人们的操作习惯,整体效果简洁大方,再加上背景音乐的渲染,有让人置身于其中的感觉。设计主程序界面如图5-2所示。

图5-2 主程序界面

5.1.2 用户控件设计

在三维的场景中,要使得程序与用户之间进行互动,就必须得使用到UI用户界面。而由Direct3D进行渲染的三维程序中直接使用Windows的控件明显是不可行的。因此,在三维校园电子地图引擎中的用户控件的创建,我直接调用了DirectX 9.0框架的UI支持,创建了DirectX的用户控件。

在三维校园电子地图引擎中,除了主菜单使用了UI以外,在设置界面也大量的使用了支持Directx的CheckBox控件来设置模型的隐藏和显示;在程序的主层级当中,也使用了ComboBox控件来选取所要寻找的景点,还用到了Slider控件来调节移动的速度。

UI的创建过程如下:

(1) 将Directx示例文件夹中的UI文件夹复制到当前项目中,该文件夹中包含了UI的外观模型与UI 的贴图文件,贴图文件如图5-3所示,该图像就是所有用户控件的贴图压缩纹理dxutcontrols.dds;而DXUTShared.fx则是控件的模型数据。

图5-3 UI的压缩纹理

(2) 将UI的外观数据添加到项目当中以后,要在程序中调用这些信息来创建控件。首先要定义一个Dialog对象,然后在这个Dialog对象上加载所需要的控件。

private Dialog Dlg_UI = null; // dialog for standard controls

(3) 下一步骤是建立它需要的控件。这是通过调用诸如AddButton之类的对话框AddXXX方法完成的。这部分代码全部放在InitializeUI()函数中完成,而该函数是在Level类被实例化的时候在构造函数中被调用。

(4) 在定义好需要加载什么类型的控件以后,就需要设置好控件放置在什么位置,这些由ResetUI()函

数来完成,代码如下所示:

private void ResetUI(){

Dlg_UI.SetSize(Project.CurrentWindowWidth, Project.CurrentWindowHeight);

Dlg_UI.GetControl(cb_mainID).SetLocation(20, 360);

……(由于代码太多,需要请与编辑部联系)

}

(5) 光把UI加入到对话框中还不能使得UI在三维的场景中显示出来,必须得对他进行渲染才能使得已经设置好的控件按照所指定的位置显示出来,渲染控件的代码当然是放在Level的Render()函数中完成了。写法如下:

Dlg_UI.OnRender(elapsedTime);

(6) 制作UI本身就是来接受用户所发出的消息,要求UI 完成的最后一步是将消息传递给控件,这让它们从用户那里接收键盘和鼠标事件。在MsgProc中,程序调用对话框MsgProc方法传递消息。如果对话框的MsgProc 返回true 指明消息已经被处理,程序将noFurtherProcessing 参数设置为true 并立即返回就是非常重要的。没有这样做的话将会导致消息被不止一次的处理。

noFurtherProcessing = Dlg_UI.MessageProc(hWnd, msg, wParam, lParam);

if (noFurtherProcessing)

return noFurtherProcessing;

添加完成消息传递函数之后,控件就能接收用户发出的消息。

5.2 智能导航设计

智能导航在三维电子地图程序中是难点部分,它将自动的寻找出用户所需到达的目的地的最短路径,并且进行跟踪导航。要实现最短路径的搜索功能,本引擎采取基于结点的最短路径算法——弗洛伊德(Floyd)算法。该功能模块的流程图如下图5-4所示:

图5-4 智能导航模块流程图

在三维校园电子地图程序中,将Floyd算法运用到各个景点之间来求得他们的最短路径,下面将介绍如何在程序中实现基于Floyd算法的智能导航模块。

(1) Floyd算法是通过邻接矩阵来实现的,因此首先要给每个景点排序,按照校园建筑的分布与坐标,将校园定义了149个结点,他们之间的关系如下表5-1所示:

表5-1 邻接矩阵的坐标与邻接点的定义

(2) 有了结点的坐标与他们之间的关系列表之后,就能够在程序当中来构造用于Floyd算法的矩阵了。

在程序当中,Floyd算法的构造与求值都是在Floyd.cs文件中Floyd类来实现。创建矩阵数组是在Level1类里面完成的,ConstructNodeMatrix()该函数构造出矩阵的数组cost[i, j],而两个顶点之间的权值则是求这两个结点在三维空间坐标系的距离,求法如下:

distance = Vector3.Length(Vector3.Subtract(NodeObjList[n1].Position ,

NodeObjList[n2].Position));

cost[n1, n2] = cost[n2, n1] = distance;

构造好矩阵数组以后,在ConstructNodeMatrix()实例化Floyd类,并且将构造的数组传入该类,进行最短路径的计算。

Floyd fd = new Floyd(cost, X, INFINITY);

其中cost表示构造的数组,X为数组的最大值,INFINITY为一个无穷大的数。在Floyd的构造函数中,已经导入了求最短路径的函数ArkyFloyd()求出各点之间的最短路径,然后再通过List OrderByPath(int starNode,List listPath) 函数将输出的结点的顺序调整。到这里实际上已经求出了所有结点之间的最短路径,并且能够按照先后的顺序将它们进行排序。

(3) 在Level类中,程序将实现最短路径的导航逻辑。由于一开始定义结点时,就给每一个景点定义了一个固定的序号。那么只需要将当前坐标点的序号与目的坐标点的序号传递给Floyd类的GetShortestPath(int starNode, int endNode)函数,就能够得出这两个点之间的最短路径,即为两个景点在校园中的最短路程。

当用户选择好一个景点以后,按“查找”按钮,摄像机将进行自动导航,实际上查找按钮触发的是PlayerMove(seletedItemsNum)函数,该函数中实现的功能就是将当前摄像机所在的结点和查找的目标结点的值传递给Floyd类的GetShortestPath()函数,并且将得到的最短路径结点的列表压入一个队列,以便摄像机智能导航时使用。实现方法如下:

private void PlayerMove(int NodeIndex){

List listNode = new List();

listNode = fd.GetShortestPath(PlayerCurrentNodeIndex, NodeIndex);

for (int i = 0; i < listNode.Count; i++)

qu.Enqueue(listNode[i]);

v3 = NodeObjList[PlayerCurrentNodeIndex].Position;

}

(4) 有了结点移动队列以后,就能够在Level类的update函数中调用处理摄像机智能移动的函数UpdatePlayerMove()了,该函数每被调用一次就执行摄像机位置的更新,直到摄像机到达第一个目标结点为止,然后设置当前结点为第一个目标结点,第一个目标结点从队列中弹出,继续按照下一个结点的位置移动,直到所有的结点全部移动完成,那么摄像机就到达了目的地了。实现代码如下:

private void UpdatePlayerMove(){

if (PlayerObj1.Position == v3)

if (qu.Count > 0) {

t = qu.Dequeue();

PlayerObj1.destPos = NodeObjList[t].Position;

v3 = NodeObjList[t].Position;

PlayerCurrentNodeIndex = t; //设定移动物体的位置

}

}

5.3 模型加载和渲染

要将3ds Max制作的教学楼模型导入进程序,并且将它们渲染出来必须经过一系列的代码转换处理,最终显示才能在三维的场景当中。下面将介绍如何把3ds Max制作的建筑模型导入程序,并且渲染到三维场景中的制作过程。

在桂林电子科技大学的三维校园电子地图当中,主要的建筑物有教学楼(如:二教、三教、九教等)还有学生食堂、图书馆等,他们都在校园中有固定的坐标位置。在3ds Max建立模型的时候,一般都是在原点建立模型。如果是这样,在导入进3D引擎的时候就得设定他们的具体坐标,在世界场景中设定了一个相对中心点设定了位移,就相当于多乘了一个矩阵。要在程序中同时渲染所有建筑,就要把每个建筑的位移值乘一次世界矩阵,这样很大程度的增加了程序的运算。为了消除这些运算,而把建筑物放到相应的位置上,那么就需要在建立模型的时候就移动好建筑的位置。

下面将介绍3ds Max制作模型是如何导入程序进行渲染的:

(1) 在3ds Max建立好模型以后,将模型群组成一个对象,再次导入CAD底图,然后以这张地图为参照来设定建筑物的位置,这样导入程序之后就是已经在该建筑的指定坐标上面了,如图5-5所示;最后再将此模型导出成X文件。

图5-5 模型位移放置

(2) 本系统使用3ds Max8的插件PandaDirectXMaxExporter.dle来导出X文件,该X文件中保存了模型的顶点信息和贴图信息等,在三维校园电子地图引擎里面通过Mesh类来获取这些X文件的顶点信息和贴图路径,以提供引擎渲染模型时使用。

(3) 引擎使用LevelMeshHolder来保存所有三维模型的数据,加载方式如下:

LevelMeshHolder.AddMesh("move.x");

有了这些模型的相关数据以后,就能够使用MaxObject的派生类来实力化这些模型,从而得出不同类型的场景模型体,由MaxObject派生出来的类有Obj、SkyObj、TreeObj、NodeObj、PlayerObj以及HUD3D。他们分别表示建筑模型对象、天空模型对象、树木模型对象、结点模型对象、操作者模型对象和HUD模型对象。每一个模型对象都有他们特殊的属性,所以区分出这几种派生类。但是,他们都使用一个Render()函数来进行渲染,使用Update()函数来进行模型的相关数据更新。

5.4 光照处理

为了使得三维校园的虚拟场景更加富有层次感,本引擎在程序中添加了光照。引擎在初期调试的时候是采用环境光,渲染的模型如果两个面是相同颜色,那么很难辨别模型的交界处,这样看起来就很不真实。在Direct3D一共可以添加8个光源,在引擎中只添加了一个光源,光源的类型是方向光,也就是我们平时所说的平行光。有了平行光照射到模型上,渲染出来的物体就有了明面和暗面,这样渲染模型显得更加真实而富有层次感。

添加光照的方法如下:

在引擎创建好Device以后,调用光照设置函数SetLight()来初始化光照系统。

(1) 在代码中,首先定义了一个v3向量来设置光源的方向,在这里设置的方向为西北方,因为天空盒的太阳所在位置也是这个方向,这样设置能使得场景更加真实。

(2) 设置好光的方向之后,MyDevice.Lights[0].Type = LightType.Directional; 来设置光源的类型为方向光。

(3) 再将Ambient属性设置一个光线亮度值,这个数值决定了光照的暗面的亮度。

(4) 接下来设置Diffuse属性,它决定了光照的颜色。

(5) 在函数的最后将设置好的光照Lights[0]开启。

(6) 在场景建立好以后,开启灯光系统,并且关闭没有使用的其它7盏光源。设置代码如下:Project.MyDevice.RenderState.Lighting = true;

for (int i = 1; i < 8; ++i)

Project.MyDevice.Lights[i].Enabled = false;

通过这些设置,场景中就成功的添加了一个平行光源,下图5-6是未添加光源和添加光源以后渲染场景的效果。

(a) 无光照 (b) 添加平行光

图5-6 光照对比

5.5 天空盒设计

在三维程序中,实现天空环境渲染主要采用天空盒和半球面两种方式。采用天空盒方式渲染的模型面要比半球少得多,所以一般都是采用天空盒模型来渲染周围环境,而半球面一般是用在精度比较高的场景中渲染天空。

三维校园电子地图的场景中,除了有地形和建筑物还需要有周围天空环境的烘托,这样才能使得三维环境更加的真实。本系统采用的是天空盒技术制作场景的环境,天空盒是一个长方体,它是由六个面构成一个天空盒,贴上云彩和山水图片,就可以实现一个矩形面的天空。

天空盒是由六张无逢贴图实现的一个盒子模型体,本系统使用的环境贴图如图5-7所示。

图5-7 天空盒贴图

在3ds Max里面,给天空盒模型贴图时要注意的是贴图贴在长方体的内,所以建立模型时要将长方体的六个面进行一次flip操作,使得图片贴在盒子的内部。如图5-8所建立的是场景中使用的天空盒模型。

图5-8 天空盒模型

建立好天空盒模型以后,同样是导出X文件,在程序中,创建天空盒必须得使用SkyObj类来实例化天空模型对象,因为天空环境跟普通模型不一样,它永远是跟随着摄像机移动的,但是他不会随着摄像机的旋转而转动。所以在场景中,人物永远无法走到天空尽头,这样就能创建出一个无边界的广阔环境了。在渲染天空的时候,不能像普通模型那样去渲染天空,因为场景中添加了光照,直接渲染的话,会出现明显的边界线,对比图如图5-9所示。因此,在渲染天空模型的时候必须关闭光照,待渲染完毕以后,再将灯光开启。渲染时,还需要开启贴图的延展模式,否则在天空盒的接缝处同样会出现边沿线。天空盒的渲染代码如下:

public override void Render()

{

//设置边沿的伸展模式

Project.MyDevice.SetSamplerState(0, SamplerStageStates.AddressU, 3);

Project.MyDevice.SetSamplerState(0, SamplerStageStates.AddressV, 3);

Project.MyDevice.RenderState.Lighting = false; //关闭光照

base.Render();

Project.MyDevice.RenderState.Lighting = true; //打开光照

Project.MyDevice.SetSamplerState(0, SamplerStageStates.AddressU, 1);

Project.MyDevice.SetSamplerState(0, SamplerStageStates.AddressV, 1);

}

(a) 有光照渲染 (b) 无光照渲染

图5-9 有无光照渲染天空的对比

6 系统测试

在软件工程项目中,在软件项目开发的各个阶段都会采用不同措施来保证软件的质量,但是在软件项目实际开发过程中难免会存在问题。为了避免正式投入使用时产生错误,在软件投入使用前要对项目进行全面的测试。软件测试是根据软件开发各阶段的规格说明和程序内部结构,设计若干测试用例,测试程序的正确性和兼容性。

6.1 测试环境

三维校园电子地图程序是采用Managed DirectX SDK August 2007来开发,使用的DirectX的版本比较新。因此,对进行系统测试的电脑配制要求也比较高。在使用显卡与CPU配置比较低的电脑上运行本程序时,不建议启用渲染所有模型,否则会导致运行画面十分不流畅。为了达到实时的目的,至少要保证图形的刷新频率不低于15帧/秒,最好高于30帧/秒。

为了使得程序有更好的运行效果,三维校园电子地图的推荐配置为:

CPU:双核、主频2.7G以上;

显卡:8600GT级、显存256MB以上;

内存:2GB以上

硬盘:大于100MB的空间

在对三维校园电子地图程序测试时,使用了两台不同级别的计算机进行测试,一号测试电脑安装的是Windows XP SP2操作系统,二号测试电脑安装的是Windows Vista操作系统。

(1) 两台计算机上还需要安装支持三维校园程序运行的软件平台:

Microsoft .NET Framework2.0

DirectX_mar2008

(2) 测试计算机的硬件配制:

一号计算机的配置:

CPU:Intel 酷睿2双核 E8200 2.7GHz;

显卡:Inno3D 8800GT,显存512MB;

内存:2GB

二号计算机的配置:

CPU:AMD Athlon(tm) 64 X2 TK-55 1.80GHz;

显卡:GeForce 7150M /nForce 630M,显存512MB;

内存:2GB

6.2 测试结果

(1) 针对程序的各部分功能进行测试,检测程序的每一个功能模块,没有异常产生,程序顺利执行,确保了程序执行的正确性。

(2) 测试软件的智能导航功能,在导航模型中,依次测试了各个景点之间的最短路径导航,测试所有查找景点都能到达目的地,而且行走的路线为最短路径,确保了智能导航模块的正确性。

(3) 在设置模式中,设置加载显示的模型,进入程序后,所有模型按照设置的模型显示;重新启动程序,进入设置界面,所有设置与上一次设置结果相同,该功能运行正常。

(4) 测试三维程序在不同配置的电脑上使用不同分辨率运行程序的刷新频率,一号测试电脑能流畅运行各个模块;二号测试电脑在高分辨率下加载所有模型运行程序有延迟现象。具体数据参见下一节测试数据。

(5) 分别使用了一号测试计算机(Windows XP操作系统)和二号测试计算机(Windows Vista操作系统)运行程序,都能够正常执行,系统的兼容性良好。

(6) 运行程序后,程序菜单界面感觉友好、简洁而又美观;程序主界面展示三维校园场景,并在左侧显示平面小地图和操作按钮,符合大众的操作习惯。在控制摄像机的浏览模式下采用常规的三维游戏操作方式,使用键盘的W,S,A,D,Q,E键来控制移动,鼠标控制方向,简单易学。

6.3 测试所得实验数据

(1) 在CPU为Intel酷睿2双核E8200主频2.7GHz;显卡为Inno3D 8800GT显存512MB;内存为2GB的一号计算机上测试刷新频率的数据表6-1所示:

表6-1 一号测试计算机的测试数据

(2) 在CPU为AMD Athlon(tm) 64 X2 TK-55主频1.80GHz;Inno3D 8800GT,显存512MB;内存为2GB

的二号测试计算机上测试刷新频率的数据如表6-2所示:

表6-2 二号测试计算机的测试数据

从两台配置不同的计算机测试数据表明,三维校园电子地图程序对电脑的配置要求较高,建议使用配备有中高端显卡和双核CPU的电脑来运行该程序,才能渲染出最佳效果的三维校园地图。

7 结论

本论文从介绍三维电子地图的背景以及发展状况开始,引述了开发三维漫游引擎的几项关键技术;再从整个三维校园电子地图项目的设计总体流程,引擎结构框架,主要功能模块的设计等几个方面详细介绍了整个项目的开发流程以及核心功能的实现。

整个软件项目按照下面的八个流程进行开发:

(1)数据采集;

(2)建立校园平面图;

(3)建立三维场景模型;

(4)设计导航漫游引擎;

(5)建立引擎的框架;

(6)实现各项功能和模块;

(7)优化代码;

(8)系统测试。

在三维校园电子地图引擎中,引入了多方面的技术,使得程序执行效率大副提升,操作更加简单,三维场景内容更加丰富,整体效果更加完美。

通过本论文中的实例可让读者进一步的了解到软件项目开发的全过程。系统而又全面的掌握到了使用Managed DirectX开发三维虚拟现实程序的步骤和关键技术,了解到数据结构中的算法在具体项目当中的实施方案。对开发三维游戏和虚拟现实程序打下了良好的基础。同时也体会到:作为一个比较高水平的程序员,光是会编写程序代码是远远不能满足现代项目开发的需求的。除了编程,还必须掌握相关方面的知识结构。这全靠平时的修炼。

通过此论文和例子,希望能带给读者在软件项目设计开发中更多的帮助!

参考文献

[1] 王德才,杨关胜,孙玉萍.精通DirectX 3D图形与动画程序设计[M]. 北京:人民邮电出版社, 2007:109~214.

[2] 严蔚敏,吴伟民. 数据结构[M]. 北京:清华大学,2004:156~190.

[3] 黄玉清,郑雨涵. 3ds Max8 游戏设计与制作宝典[M]. 北京:科学出版社,2006:39~228.

[4] 尚晶晶. DirectX 3D游戏开发技术详解[M]. 北京:人民邮电出版社,2006:142~146.

[5] 刘怀亮. 数据结构习题解析与实验指导[M]. 北京:冶金工业出版社,2005:86~91.

[6] Tom Miller. Managed DirectX? 9 Kick Start:Graphics and Game Programming[M]. Sams Publishing,October 22,2003.

[7] Lynn Thomas Harrison. Introduction to 3D Game Engine Design Using DirectX 9 and C# [M]. New York:Springer Verleg,2004.

[8] PRUSINKIEWICZ P,LINDENMAYER A. The algorithmicbeauty of plants[M]. New York:Springer Verleg, 1990.

[9] ROSSIGNAC J,BORREL P. Multi-resolution 3D approxima-tion for rendering complex scenes[C].Berlin:Springer-Ver-lag, 1993:453~465.

[10] 王卫辰,江晓红. 虚拟校园三维仿真系统的开发及优化[J] .徐州师范大学学报(自然科学版),2004,(03).

[11] 杨艳玲,王浩涌. 虚拟现实(VR)技术在虚拟城市中的应用[J].辽东学院学报(自然科学版), 2006,

(04).

[12] 徐利明,姜昱明. 可漫游的虚拟场景建模与实现[J]系统仿真学报, 2006,(01).

[13] 金小田,张小敏. 虚拟现实技术在建筑方案优化设计中的应用[J]建筑科学, 2004,(02).

[14] 黄薇. 立体式虚拟校园的建模技术与数据表现方法[D]华中师范大学,2006.

[15] 肖平. 立体式虚拟校园的场景规划与设计[D]华中师范大学,2006.

[16] 潘华伟. 基于图象的虚拟场景绘制技术研究与系统实现[D] 湖南大学

[17] 罗杰. 面向建筑的虚拟漫游系统研究与实现[D]. 大庆石油学院

[18] 马学强. 虚拟现实的关键技术研究与实现[D]. 山东科技大学

[19] 喻罡. 基于图象的虚拟场景构造和漫游系统研究[D]. 西安理工大学

[20] 王邯. 基于图像绘制的虚拟校园漫游系统的研究[D]. 华中师范大学

[21] 刘家胜. 三维重建中插值建模及其可视化的研究[D]. 江西师范大学

三维电子地图中英文对照外文翻译文献

中英文资料翻译 The Design and Implementation of 3D Electronic Map of Campus Based on WEBGIS I. INTRODUCTION Nowadays, digitalization and informatization are the theme of our times. With the development of information revolution and computer science, computer technology has penetrated into all fields of science and caused many revolutionary changes in these subjects, the ancient cartography also can't escape. With the technical and cultural constantly progress, the form and the content of the map change and update as well. As the computer graphics, geographic information systems (GIS) constantly applied to the Web, the conventional way of fabrication and demonstration has suffered great change, and the application of the Map has extended dramatically owing to the development of advanced information technology. Under these circumstances, cartography will be faced with promising prospect. It has branched out into many new products. One of the products come into being is the e-map [1]. With the rapid development of the computer technology, computer graphics theory, remote sensing technology, photogram metric technology and other related technology. Users require handling and analysis of three-dimension visualization, dynamic interactivity and show their various geo-related data, so much attention should be paid to the research of three dimensional maps. This article based on the Northeast Petroleum University and its surroundings designs and creates the three-dimensional electronic map. II. FUNCTIONDESIGN Three-dimensional electronic map system of campus based on WEBGIS has general characteristics of the common maps. Through pressing the arrow keys (Up, Down, Left, And Right) on the keyboard, one can make the map move towards the corresponding

浅谈电子地图制作

电子地图 一、电子地图 1.1电子地图说明 数字城市地理信息公共服务平台的基本服务数据。 由于天地图、数字城市的制作完成,广东省1-17级电子地图服务已经初步建设完,下一步主要生产目标为数字县区大比例尺电子地图(18-20级)以及数字城市中未完全覆盖县区的专题数据 1.2主要分类 发布内容的安全级别及发布网络区分:涉密、政务、公众 地图表达的内容:影像地图、矢量地图 1.3主要作业内容 1、矢量数据更新 2、地理数据实体化 3、矢量电子地图制作 4、影像电子地图制作 1.4作业流程 作业流程图:

1.3.1实体库整理 1.3.3.1基础数据抽取与重组 核实原始数据,获取数据源分类代码是否采用《广东省基础地理信息要素分类代码与属性表》进行分类分层,如否,则需要进行数据重组 1、制作代码对应关系表——

分类代码对照示例 2、进行代码的转换与整合——可编写程序,读取对照表进行重组 1.3.3.2核心要素更新 DLG数据由于编制工作量大,更新周期慢,大部分城市的DLG数据现势性都在3年以上,对于高速发展的城市来说滞后性严重,需要对主要道路、主要水系网络、大片居民地进行更新,满足服务的现势性要求: 核心要素更新对象: 主要道路、水系,居民片区、植被面 基于影像对已有数据进行核心要素更新: 更新内容: 1)删除已消失地物 2)采集新增地物 3)修改变化地物 4)变化地物与周边各图层地物相互关系进行接边处理

更新标准 水系 实地变化超过10(2)米的河流、运河、沟渠,变化面积超过200(36)平方米的湖泊、水库、池塘应予更新; 水系要素参考影像地图直接更新采集,河流、湖泊、水库水涯线一般按摄影时期的水位采集。池塘的水涯线按影像沿池塘的边缘绘出; 水系要素应构成网状,河流遇桥、水闸、道路等不断开,直接采集; 消失河段、地下河段、地下沟渠等不可视水系不采集; 不同名称的河流段从分界处断开,并分别录入名称; 其他水系附属设施根据水系主体要素的相应关系进行同步更新,如拦水坝、闸等。 居民地 实地变化面积超过200(36)平方米的居民地中已建成的普通房屋和高层房屋应予更新; 居民地参考影像采集,采集时要注意消除房屋投影差; 房屋附属建筑如阳台、飘楼等不做区分,视为房屋整体更新; 密集居民片区可做适当综合更新; 地下不可见建筑不予更新。 交通 实地变化长度超过10米的城际公路,除内部道路、阶梯路以外的城市道路,及铁路予以更新,长度虽小于10米,但起贯通作用的城市道路 也应更新。 正确采集变化的道路,并录入道路属性,重点更新高速公路、国道、省道、县道、乡道、城市主次干道以及新建的铁路。其他在影像上能清晰 判断的公路也要更新。 所有依比例道路更新需要采集中心线,并按实地采集道路面与道路边线。 道路附属设施如桥梁、隧道、收费站、匝道,服务区、加油站等根据道路主体要素的相应关系进行同步更新。

三维校园电子地图

三维校园电子地图(上) 访问734次 作者:李纳璺陈金龙阮方舟 1引言 随着计算机技术,特别是计算机图形学、三维仿真技术以及虚拟现实技术的飞速发展,传统的 二维电子地图被注入了新的活力,三维电子地图正成为电子地图发展的一个重要方向。传统的二维 电子地图只能以图形和符号的方式来呈现一张地图,这种方式往往不能直观清晰的表示出地图所在 位置的地理环境;采用三维电子地图的方式,建立场景的仿真模型,把现实场景进行虚拟再现,真实、互动、情节化的特点是虚拟现实技术独特的魅力所在。 如何设计一个仿真度高,并且具备虚拟漫游和智能导航的三维地图引擎,成为三维电子地图研究领域的一个热点问题。本文研究的设计的三维电子地图引擎系统,设计了模型动态加载接口,并具备智能导航和虚拟漫游引擎,实现了三维校园仿真电子地图。它为校园规划建设、游客观光导航、学校对外宣传等方面提供了一个智能化的平台,为广大系统用户提供了极大的便利。开展虚拟校园三维地图仿真引擎系统及相关课题的研究适应了信息社会发展的趋势,具有重要的理论和现实意义。 本文对从DirectX技术着手,采用Microsoft Visual C#编程语言结合三维图形开发包(Managed DirectX SDK August 2007)在.net框架中构建的三维校园电子地图程序。该程序实现了桂林电子科技大学的(东区)的三维校园电子地图的功能。除此之外,在可视化的基础上实现了一些虚拟现实的交互操作和空间分析,如:校园景物的查看、校园路径导航、三维动态漫游校园等;给需要了解桂林电子科技大学校园地理信息的用户提供了极大方便。 2 本课题研究的内容 本课题是一个使用Managed DirectX的三维图形技术实现的一个三维校园电子地图程序,该程序是在.net框架下建立完成,开发语言为当今最流行的高级语言Microsoft Visual C#。它是以桂林电子科技大学东校区为实景,进行了校园虚拟仿真,建立了具备观光浏览与智能导航为一体的多媒体三维校园电子地图程序。 本课题主要是研究了三维建模技术在程序中的导入技术、三维模型的优化、虚拟现实技术、Floyd 算法实现的智能导航技术、Alpha混合与Alpha测试技术、三维场景中的光照技术、XML技术、用户交互控件技术等等。这些技术将全部应用到三维校园电子地图程序当中,最终展示出集视觉、听觉、用户智能交互于一体的校园仿真三维地图。 3 开发环境与相关技术简介 3.1 Managed DirectX与托管代码版DirectX 9.0语言支持 (1) Managed DirectX DirectX 是一系列低级的应用程序接口(APIs),它用于创建游戏和其他高执行效率的多媒体程序。它包括对高效的2D和3D图形、音效和音乐、输入设备、力反馈设备、多媒体流和多人游戏的网络通信程序。三维校园电子地图程序的三维环境漫游引擎的构建就是使用Managed DirectX 9.0的图形 处理技术来完成的。 (2) 托管代码版DirectX 9.0语言支持 在DirectX 9.0下,开发者在使用托管代码的时候,能够利用DirectX的多媒体功能和硬件加速。托管代码版DirectX 9.0允许访问大多数原始的非托管DirectX功能。下面是被DirectX 9.0和DirectX 9.0 SDK支持的托管代码语言:

基于三维数字地图系统的城市设计

基于三维数字地图系统的城市设计 摘要:三维数字地图系统作为“数字城市”、“数字规划”的产物,以其海量数据和强大的系统功能,为城市设计人员在设计过程中对方案分析论证、规划管理人员在审批过程中对方案评审以及公众在听证过程中对方案实施效果评价提供技术支撑和科学依据。本文在阐述三维数字地图技术及其特征的基础上,探讨了三维数字地图系统在城市设计中的应用,介绍了武汉市三维数字地图系统在城市设计中的应用情况。 关键词:三维数字地图系统虚拟现实城市设计 1.引言 城市设计是对城市体形和空间环境的设计,其目的是对城市形象的提升和视觉景观环境的美化,对城市面貌的展现有着重要的作用。但长期以来,规划设计人员、规划审批人员在城市设计的设计过程和审批过程中,只能从二维层面或者静态的三维层面对设计效果进行把握,不能很好地去营造城市空间景观、保护城市特色。自“数字地球”、“数字城市”的概念提出以来,三维数字技术得到系统研究,三维数字地图系统应运而生,被广泛应用到城市设计中,城市设计进入了一个动态的三维时代。本文在简述三维数字地图技术与特征的基础上,探讨了三维数字地图系统在城市设计中的应用,并介绍了武汉市三维数字地图系统在城市设计中的应用情况。 2.三维数字地图技术及特征 2.1三维数字地图技术 三维数字地图是从平面地图向三维的拓展,它将自然地形、地貌、山体、河流、道路、建筑、环境以及重大基础设施等城市自然和建设要素,通过划分模型单元和管理对象,进行平面、高程、结构、纹理色彩等的数字化处理,按照统一坐标无缝拼接而成的区域或城市可视化三维数字模型。三维数字地图是在真实表达城乡自然和人文三维空间要素的基础上,通过增加时间维度和社会经济数据维度,构成融空间、时间和管理信息为一体的多维数字城市公共平台,可以用于提高城市设计和规划管理水平,作为现代城市信息化管理的重要支撑,还可以应急指挥、防灾减灾、交通管理、网格化管理、社区管理服务等方面提供多层次的服务。 2.2三维数字地图系统的主要特征

电子地图的制作方案

电子地图制作方案 一、电子地图的制作目标 为满足城市车辆导航的需要,电子地图的制作需要满足如下要求: 1、提供电子地图须是矢量化电子地图。矢量化电子地图虽然比传 统的栅格电子地图制作成本高,但具有无极比例尺(比例尺可 以随需求无限地放大或缩小)、信息含量高、易处理等特点, 更符合车船导航与管理的需要。 2、为保证地图精度和所需信息量,电子地图的矢量化工作要求在 比例尺为1:2万地图上进行。 3、提供电子地图要求包括主要城市街道及名称、公路、水库湖泊、 海洋、公园绿地、河流水溪、主要建筑或标志物、医院、影剧 院、学校、机关和公司等内容。 4、最终提供的电子地图数据格式须是DXF和ESRI shape。这是为 分别满足导航仪和管理系统要求而提出的。 二、电子地图制作的技术途径 1、矢量化平台的选择 经过对多种方案实验比较,确定采用美国ESRI公司的DAK作为地图数字化和编辑软件。DAK不仅具有较强的数字化功能,还可以进行地图编辑、建立拓扑关系,提供46种地图投影方式转换,具有支持ARC/INFO E00、AGF、DXF、ESRI shape等数据格式。 此外,利用DAK也可以方便以后对电子地图的修改和更新。 2、纸图的确定 根据电子地图的制作要求,选择1:2万的地图为矢量化对象。 3、其他条件的选择 制作矢量化电子地图在硬件上需要数字化仪、计算机等设备。计算机可以选择普通PC兼容机,数字化仪可选择DAK所支持的CAL

COM9100等品牌。 三、电子地图制作主要工作及步骤 1、地图控制点的选择与测定 因为购买的大比例尺地图缺少经纬度坐标和地理控制点,根据地图数字化的要求,需要首先测定一些高精度控制点。为提高控制精度,控制点的选择既要均匀,还要具有的易测点、易标定的特点。 2、地图数字化分层方案的制定 根据地图数字化的内容和地理信息处理与存储的需要,将地图分为9个图层(Coverage)。 面状图层:包括主要城市街道和公路、建筑、水库湖泊、海洋面状河流,公园绿地等。 城市区界边界层 高速路及主干道层 城市街道图层 次要街道图层 建筑物图层 水体图层 绿地公园图层 线状图层:包括河流水溪、铁路等,此外还包括一些面状图层中部分辅助线。 点状图层:包括主要建筑或标志物,主要医院、影剧院、学校、机关,主要公司等。 在以后使用中可以根据需要从以上8层中提取数据,做更多分层。 3、数字化编码方案制定 为满足电子地图在使用中显示、查询检索和定位导向的需要,在数字化过程中要对地物进行编码。 根据管理中心和车载设备对电子地图的不同要求,地图数字化采取了普遍编码的措施。对某一具体地物来说,其编码即用户标识码(User_ID)共7位,由两部分组成:前3位为属性码,后4位为识别

卫星地图制作三维基站地图

利用卫星地图制作三维基站地图 一、背景和思路: 目前我公司在日常网优的过程中使用的都是二维的基站电子地图,该地图即使导入目前的地理状况图层也只能大概反映出当地的地理信息,无法将数据库中的站高和基站覆盖范围等详细信息在地图中形象的体现出来,在网优工作人员进行网络投诉和网络规划时存在一定的缺陷,降低了工作效率,延长了处理投诉和新建工程的勘测时间。 因此,为能够方便、快捷地看到基站周围的立体的信息,覆盖的范围,提高工作效率,网络部开发了三维基站地图,将基站的基本信息与卫星三维地图信息都集成到工具中,通过运用工具,促使网络投诉处理和工程勘测等问题得以快速高效的解决。 二、实施步骤(或措施): 1、设计原理: 三维基站地图由A,B,C三个GOOGLE EARTH图层组成。A图层由二维的MAPINFO地图导出,主要实现在卫星地图上显示基站频点的功能;B图层由基站站点生成工具生成,实现在卫星地图上显示基站站点及其基本信息如所属BSC 和小区CI等功能。C图层由google eartch基站扇区绘制工具生成,实现在卫星地图上显示基站三维扇区的站高,基站基覆盖范围等的信息的生成。 问题难点:

(1)我们目前的数据库使用的是GB编码方式,而google earth 使用的是UT-8编码。在制作google earth所使用的KML文件时要进行编码方式的转换; (2)在三维电子地图中要现实大量的信息,由于各个基站信息的属性不同,要求处理的方式也不同; (3)google earth卫星地图在对敏感部门地区(如政府,军队)都做了模糊化处理,这些地区的卫星图片的分辨率只有200M左右,给我们部分三维基站在地理位置上的显示效果打了一定的折扣。 2、实现过程 制作此地图需要用到的工具有GOOGLE EARTH、MAPINFO及其插件MIPT2.1,Mapinfo2Google插件,基站站点生成工具,基站扇区绘制工具。制作分三个阶段: (1)A图层的制作: 1.使用MIPT2.1插件制作基站的二维基站地图; 2.使用Mapinfo2Google插件将制作好的二维基站地图导出生成GOOGLE EARTH的KML格式文件。(注意,在转换成KML格式文件时,MAPINFO地图的窗口要用最小模式,否则可能会遇到不能转换的情况); 制作好的图层如下图:

基于C#的GIS校园电子地图实现

基于C#的GIS校园电子地图实现 1.简介 地理信息系统(Geographic Information System, GIS)是融计算机图形和数据于一体,存储和处理空间信息的高新技术。它是以地理空间数据库为基础,在计算机硬、软件环境的支持下,对空间相关数据进行采集、管理、操作、分析、模拟和显示,并采用地理模型分析方法,适时提供多种空间和动态的地理信息,为地理研究、综合评价、管理、定量分析和决策服务而建立起来的一类计算机应用系统。校园电子地图是利用GIS技术实现对校园地物位置的实时显示,具有漫游,鹰眼,缩放,定位,量算,查询等功能。 本系统以中北大学校园地图信息为基础,在.NET环境下通过C#语言对MapX控件进行二次开发来实现的。MapX是MapInfo公司的地图化的ActiveX,在利用面向对象程序设计语言的开发应用中嵌入MapX,可以非常简便的使其应用程序具有强大的地图控制功能。在应用程序设计前期还用到了MapInfo Professional软件。MapInfo Professional是目前世界上比较完备、功能强大、全面直观的桌面地理信息系统,是一套强大的基于Windows平台的地图化信息解决方案。MapInfo Professional主要提供地图绘制、编辑、地理分析、网格影像等功能。 2.系统设计 本系统设计可分为两个部分,第一部分为地图数据的设计和.GST

地图文件的生成,第二部分为具体代码的设计。这样设计有以下目的:1)当出现校园规划地图变更时,只需变更地图数据并重新生成.GST文件,然后覆盖应用程序下maps文件夹下的地图文件即可。 2)当地图软件功能变更时,需要开发人员进行相关功能的完善与增删。 采用这种设计可以使程序的代码量大大降低,便于维护,提高了程序运行性能。 2.1系统功能与目标 本系统设计目标是提供校园各地物的具体位置及相关地物信息阅览,为新生以及其他第一次到访者提供便利的图文信息查询。为此,本系统功能主要如下: 1)实现校园电子地图功能并实现对其的各种基本操作,能够详细直观地表达校园各项空间信息和属性信息; 2)实现地图上的图元定位并显示相关属性信息; 3)实现鹰眼图功能; 4)实现地图上距离测量; 2.2 系统空间模型设计 MapInfo采用空间数据与属性数据分开存储模式。空间数据是用来确定图形和制图特征的位置,这是以地球表面空间位置为参照的;属性数据用来反映与几何位置无关的属性,它一般是经过分类,命名,量算,统计等方法得到的。MapInfo根据不同专题将地图分层,然后按照一定顺序来组织地图。每一个图层都包含了地图的不同部分,它存储为若干文件。将这些图层按一定顺序叠加,就能看到整个地图信

三维基站 卫星地图的制作

GOOGLE EARTH在日常网络优化中在应用一.效果图

二.三维地图的制作 2.1 工具: 制作此地图需要用到的工具有GOOGLE EARTH ,MAPINFO,MAPINFO 插件MIPT2.1,Mapinfo2Google插件,基站站点生成工具,基站扇区绘制工具。 2.2 原理: 三维基站地图由A,B,C三个GOOGLE EARTH图层组成。A图层由二维的MAPINFO导出,主要实现在卫星地图上显示基站频点的功能。B 图层由基站站点生成工具生成,实现在卫星地图上显示基站站点及其基本信息如BSC CI等功能。C图层由googleearth基站扇区绘制工具生成,实现在卫星地图上显示基站三维扇区的生成以及站高,基站基覆盖范围等的信息的生成。 2.3地图制作流程:

STEP1: A图层的制作: 1.使用MIPT2.1插件制作基站的二维基站地图。 2.使用Mapinfo2Google插件将制作好的二维基站地图导出生成GOOGLE EARTH的KML格式文件。(注意,在转换成KML格式文件时,MAPINFO地图的窗口要用最小模式,否则可能会遇到不能转换的情况)。 制作好的图层如下: 注意:我们只需要A图层中的MIPTCELL层,在导入后将MIPTSITE层的标记去掉即可。

STEP2: B图层的制作: 1.将基站数据导入基站站点制作模版。经纬度填写基站的经纬度,标注标题下填写基站的中文名字,地点描述根据实际工作需要 任意进行添加。 保存为KML格式文件。

将制作好的KML打开,效果图如下: STEP3: C图层的制作: 1.将基站数据导入扇区制作工具。在小区名称处填写基站中文名,编号处填CI,经纬度处填写基站经纬度,方位角出填写扇区方位角,其他信息可根据实际工作需要进行填写。

中国三维地图的发展历程

中国三维地图的发展历程 三维地图(Three dimensional map),俗称三维电子地图或3D电子地图,就是以三维电子地图数据库为基础,按照一定比例对现实世界或其中一部分的一个或多个方面的三维、抽象的描述。网络三维电子地图不仅通过直观的地理实景模拟表现方式,为用户提供地图查询、出行导航等地图检索功能,同时集成生活资讯、电子政务、电子商务、虚拟社区、出行导航等一系列服务。 近几年来,随着计算机技术,特别是计算机图形学、网络、多媒体、虚拟现实技术、三维仿真技术的快速发展,地图学发生了很大的变化,正在向多媒体、网络和三维方向发展。 随着街景技术的兴起,电子地图再一次迈开了前进的步伐。通过航空摄影、街景测量、三维建模,形成了所见即所得的三维街景地图,此类地图甚至可以模拟第一人称视角,让您足不出户便可畅游世界各地街景。 与三维电子地图相关的系统大多集中在三维可视化方面。但最近几年,国内外开展了大量三维电子地图的研究。世界著名的CAD Center认识到三维电子地图和实时三维仿真的重要性已经研制了Virtual Kyoto.他们认为基于三维电子地图的3D GIS很快将在公共服务、城市旅游、城市规划等各领域产生广泛的应用。美国著名的三维仿真软件Vega(一般都基于Multigen Creator 建模)也已经把自己的三维仿真产品与GIS相结合了。推出了SitBuilder 3D产品。 国内三维电子地图也早成为人们研究的重点。武汉测绘科技大学国家重点实验室、E都市地图、广州都市圈、北京灵图、武汉天元等多家研究单位和公司都在三维电子地图和三维地理信息系统的研究上做了大量的研发工作。也开发了具有自己特色的软件产品。 三维电子地图以其直观的三维地形、地物代替了抽象的二维地图符号。在城市规划和设计、城市交通、城市仿真领域、大型工程浏览、军事指挥、测绘和土地管理部门和基于空间信息的分析决策中产生广泛的应用。 以下是粗略汇编整理的中国三维地图领域的发展脉络,各相关企业和研究机构和相关学者有更多的信息可以邮件交流965896441@https://www.sodocs.net/doc/2e9925976.html,。 公元前3世纪(前210年)司马迁《史记》中记载有一张绘制的秦始皇大型立体地图,该地体能够较为直观形象地表示实地地形,成为表达和传播地理只是

湖南农业大学校园地图

湖南农业大学校园地图 1、校园地图定义 湖南农业大学校园地图覆盖大学商圈全境,面向师生及其居民6万余人提供地图服务。校园地图基础数据购自美国DigitalGlobe公司的QuickBird卫星照片,二维地图历时3个月绘制而成,地图系统2010秋开发完成,现正式投入使用。湖南农业大学、后勤集团等地图区域内多家单位、处所和机构在其官网首页提供链接导入。 2、校园地图特色 本系统设计并实现的校园网络社区,结合流行的WebGIS服务—Google Map,制作校园电子地图,与已有的校园网络社区进行组合,采用新兴的AJAX技术进行客户端与服务器端的异步数据交互,提高用户体验。吸收了web2.0的设计思想,使系统具有很好的扩展性、社会性、易用性和易维护性。 一.湖南农大校园地图是基于WEBGIS的校园地图。WebGIS具有传统GIS不能具备的功能和特性,在对地理信息进行收集、分析、处理之后,通过Web发布,不但达到透明化、可视化的效果,而且提高了效率。 二.构建真实性精确度高的校园地图 三.大量JS实现的地图操作 四.离线Google Maps API库 3、校园地图服务 湖南农大校园地图是为农大周边6万人口开发的区域地图,他主要为用户提供位置检索,道路指引,商铺推荐,及一些很难找的地方进行标注,为对农大不熟悉的人提供很大的方面。 校园地图可以为用户带来那些服务。 第一,校园地图可以准确的为用户提供位置检索,让用户知道该怎么走,他的路线相对于谷歌地图更加精确。 第二,校园地图为用户提供后勤商铺推荐,从热度可以看出一些商店的质量,并且提供商店的位置 第三, 校园地图的一些功能/ 第一,校园地图有一个搜索板块,可以为大家提供一个搜索平台,搜索农大内的任何建筑,道路。

宁波市三维数字地图建设与应用---文本资料

宁波市三维数字地图建设与应用 徐狄军*,王坤,廖佳 (宁波市测绘设计研究院浙江宁波315041) 摘要:本文首先阐述了三维数字地图建设的重要意义,然后以宁波市三维数字地图的建设为例,分析了三维数字地图的建设内容,研究其关键性技术,最后就三维数字地图的应用实践进行了探讨。 First, the paper describes the great significance of three-dimensional digital map construction. Taking Ningbo for example, the content, key technological problems of three-dimensional digital map construction are proposed. At last, the application of three-dimensional digital map is discussed. 关键词:三维数字地图;三维仿真;三维数字城市 l 引言 进入2l世纪,人类的活动领域不断扩大,逐渐向高空和地下拓展,“数字地球”、“数字城市”作为当今科技发展的重要方向,开始渗透到城市经济和社会生活的方方面面。 三维数字地图是利用虚拟现实技术而建立的三维模型,它运用多媒体技术和三维可视化技术将图形、图像、文字、声音等纳入到统一的窗口系统下应用,使其具有虚拟、动态、交互和网络特征,是空间数据应用技术发展的重要方向之一。 宁波市从2005年开始城市三维数字地图的建设工作,由宁波市规划局组织,宁波市测绘设计研究院负责具体实施。主要开展从二维空间的三维化拓展工作,构建一个覆盖宁波全市域、多尺度、开放性的基于三维的空间数据体系,为宁波市的城市发展提供全面的空间信息服务。本文将对宁波市三维数字地图的建设及应用情况进行探讨。 2 国内外形势 2.1国际形势 西方发达国家极为重视城市三维空间信息产品的建设。瑞士苏黎士理工大学启动CyberCity Modler项目,对欧洲很多城市建立了城市三维仿真模型。德国政府联合了几十家高校和公司大力开展了仿真城市的研究和建设工作,尤其是对高分辨率数字航空影像的合理应用,现已建成了包括柏林、汉堡、德累斯顿、科隆等几十个逼真的三维仿真城市,并开展了在城市规划和城市管理等方面的深入应用。英国伦敦为配合奥运会的举办,开展“虚拟伦敦”的项目,让专业设计人员到普通百姓都可以参与到伦敦的未来设计规划。

电子地图的制作流程

MapInfo地理信息系统平台作为一个图形-文字信息完善结合的软件工具,能将所需要的信息资料形象、直观地与地理图形紧密地联结起来,能提供大量常用的分析、查询功能,能将 结果以图形或表格的方式显示出来。 MapInfo软件提供与一些常用数据库的接口,可以直接或间接地与这些数据库进行数据交换。MapInfo软件提供的开发工具MapBasic, 可完成用户在图形、界面、查询、分析等方面的 各种要求,以形成全用户化的应用集成。配接多媒体系统可使用户对地图进行多媒体查询。MapInfo软件适用于军队管理与指挥、市场营销、城市规划、市政管理、公安交通、邮电通讯、石油地质、土地资源、人口管理、金融保险等各个应用领域,能对用户的管理、决策提供有力的支持与帮助。 一、强大的图形表达、处理功能 MapInfo做为一种功能强大的图形软件,利用点、线、区域等多种图形元素,及丰富的地图符号、文本类型、线型、填充模式和颜色等表现类型,可详尽、直观、形象地完成电子地图数据的显示。同时MapInfo对于位图文件(如GIF、TIF、PCX、BMP、TGA等多种格式的 位图文件)和卫片(SPOT)、航片、照片等栅格图象,也可以进行屏幕显示,根据实际需要还 可以对其进行矢量化。此外,DXF格式(AutoCAD和其它CAD软件包的图形/数据交换格式)的数据文件,也可以直接运用于MapInfo当中。在图形处理方面,它提供了功能强大的编图工具箱,用户可以对各种图形元素任意进行增加、删除、修改等基本编辑操作。 MapInfo所处理的电子地图与一般地图不同。一般的地图,各类要素、信息集中在一起,不利于不同用户对不同的地理信息的查询使用。MapInfo对地图是分层处理,用户可以通过图形分层技术,根据自己的不同需求或一定的标准对各种图形元素进行分层组合,将一张地图 分成不同图层。例如对于某个城市图,可分为区划、道路、河流、建筑物、标注等若干层。对于每一个图层又可以针对其信息数据的不同内容要求,运用不同的数据格式和不同的数据库类型如(dBase、FoxBase、Lotus1-2-3、Oracle、Sybase等)。而在用户对图形或数据库进行显示、编辑、查询等操作时,又可以对任意图层实现自动标注。对标注的大小、字体、位置、内容、颜色还可随时根据需要进行修改。为提高做图效率,MapInfo设有装饰层, 用户可将所画的图形在装饰层里编辑,认可后再存入相应层。利用MapInfo提供的视图工具(Zoom tool), 用户可对矢量图形和光栅图象进行任意比例的无级缩放,可纵览全局,亦可细 观局部。为了满足某些用户对于地理坐标系统的特殊需求,MapInfo不仅提供有几百种地理投影模式可供选择,用户还可以通过编辑投影参数,定义自己的地图投影模式。 二、实用的关系型数据库功能 MapInfo具有动态联接的关系型数据库的功能。MapInfo可以直接读取dBase、FoxBase、Clipper、Lotus1-2-3、Microsoft Excel及ASCII文件。在客户\服务器(Client\ server)的网格环境中,通过SQL DATALINK数据联接软件包提供的QELIB、ODBC接口,可以同远程服 务器联接,直接读取Sybase、Oracle、INGRES、DB/2 DataBase Manager 、SQLBase 、Netware SQL 、XDB等十几种大型数据库中的数据信息。MapInfo还可以将数据文件及图形目标的图形属性转换成mif、mid格式的AsCII文件,供其它用户使用。 MapInfo可以运用地理编码(GeoCode)的功能,根据各数据点的地理坐标或空间地址(如省市、街区、楼层、房间等),将数据库的数据与其在地图上相对应的图形元素一一对应。通过完

三维电子地图

三维电子地图讲稿 一、三维电子地图的背景 随着计算机图形学、数据库应用的深入,电子地图和GIS得到了快速的发展,并己大量投入到实际运用中。其主要应用领域一直是空间数据的二维可视化。同时人们越来越多地要求从真三维空间来处理问题。 在八十年代末期,随着计算机三维建模技术的出现和发展,许多研究者开始了三维地形、地物等自然场景的表现,并延伸出针对地图的三维可视化研究。 而地图的三维虚拟表达是一个以科学可视化与虚拟现实理论、地图符号与色彩理论以及信息传输、空间认知、地图感受等为理论基础,涉及三维可视化与虚拟现实技术、数字制图技术、地理信息技术、多媒体技术等多学科和技术的研究领域。 从应用的角度研究三维电子地图模型,对于增强地图表现力、提高广大地图用户的识图用图水平有很大作用,因此地图走向三维可视化是其发展的方向和必然趋势,同时地图的三维表达也是地图虚拟现实可视化的前提。三维地图和虚拟现实地图己经成为地图学的一个新的研究领域,它们的研究也将促进地图学理论和技术的进一步发展 二、三维电子地图的现状和存在问题 三维电子地图经过十余年的发展,在许多方面取得了丰富的成果,在一些领域逐渐开始得到应用。但是,三维地图也面临着一些技术挑战,许多关键技术没有得到很好的解决。列入,如何自动重构三维地理数据源,如何实现海量数据的可视化等。而且由于三维地理数据具有海量的数据和复杂的数据关系,而目前的数据库系统并不支持三维空间数据的管理,因此,需要在扩展目前的数据库系统的基础上,解决空间数据的管理和空间查询等关键问题。 当前研究和开发三维地图的思路可归纳为: (1)由二维向三维可视化领域扩展,包括由平面图转化为三维图形,典型的例子是对卫片 通过专门仪器描绘出等高线或者获得DEM技术非常成熟,其数据格式通用性很强,可以描述大范围内的地图地形; (2)直接采集三维数据,三维电子地图设计与实现构建三维图形,包括建立三维仿真、虚拟 现实(VR)等,多数属于专有数据,偏向于小范围内的细节展示,不适合于大范围的城市概貌的表现; (3)近两年,随着网络技术的飞速发展,电子地图的研究和应用也开始转向Internt网络,例 如利用工nternet网络在WEB上发布和出版二维航片、公路交通图和三维地形数据,为用户提供空间数据浏览和简单的查询功能,具有应用范围广泛、应用平台无关性、操作简便等特点。基于工nternet的电子地图迅速成为研究热点。典型的应用系统有谷歌公司的GoogleEarth,GoogleM即,NAsA的WorldWind应用系统。目前,这些三维地图在数据模型、网络传输等方面有了大的突破,但是还存在实现平台专有,技术不公开,投入庞大等问题,短时间内很难普及; (4)在传统GIS系统上实现三维地形的显示,又称为2.5维GIS,地面高程只是作为一个属性 值。现在的通用GIS系统普遍支持这种功能,如AreGIS、AutodeskMap3D、SuperMap等,给用户相当直观的地形整体轮廓。主要存在的问题是执行效率偏低,空间查询和分析功

基于Android的校园地图设计

0引言 随着经济的不断发展,人们对生活品质的要求不断提高,选择外出旅游的人数也不断增加,旅游市场的散客越来越多,旅游方式也由传统的跟团游转换为自由行的网络导航等方式。那么开发出一款适用于各大高校的旅游APP 就显得十分有开发前景。通过制作这么一款简单的手机旅游类APP ,可以奠定未来设计大型旅游APP 的基础,也可以更好的服务在校学生,使他们对学校景观及其周边环境更加的了解,为校外人士参观学校提供了一种有效的渠道。 1开发平台及其相关技术 本文主要是在智能手机的Android 系统平台上开发,运用Java 语言[1]及相关的Android 编程知识,制作出一款旅游类APP 。 Android 系统是安装在移动设备(例如智能手机、个人数字助理(PDA )、MP5播放器、手持终端、平板电脑、电子书等)上的操作系统软件,用于管理和调度移动设备的软、硬件资源。自2007年推广以来,在全球形成了研究Android 操作系统的热潮。其开源和强大的网络功能使得Android 系统在与其他嵌入式系统竞争中有着很大的优势。2软件的需求分析 江西财经大学至今已有近百年的办学历史,分为四个校区:蛟桥园、麦庐园、枫林园和青山园。江西财经大学悠久的办学历史不仅沉淀了丰厚的文化底蕴,而且还建设和保留了许多引人驻足的美景和历史遗迹,特地来校园看风景的人络绎不绝。所以设计并开发一款适用于江西财经大学的旅游类APP 是十分有必要的。3软件的总体结构 根据江西财经大学的地理位置,可将该系统分 基于Android 的校园地图设计 邹宗佑关春花潘王番王萍 (江西财经大学软件与通信工程学院,江西南昌330013) 摘要:为了解决各大高校内游客及大一新生入校时对学校陌生而迷路的情况,本文以江西财经大学为例,采用Eclippse 的开发环境,利用Android 技术开发出一款在江西财经大学使用的带有地图和导航功能的手机APP 。关键词:Eclipse ;Android ;地图;导航中图分类号:TP311文献标识码:A 文章编号:1671-4792(2016)11-0173-03 Campus Map Design Based on Android Zou Zongyou Guan Chunhua Pan Fan Wang Ping (School of Software and Communication Engineering ,Jiangxi University of Finance and Economics , Jiangxi Nanchang 330013) Abstract :In order to help the visitors and freshmen who are unfamiliar with the college campus and get lost ,this pa-per ,taking Jiangxi University of Finance and Economics as example ,develop a map and navigation app with An-droid development technology under Eclipse environment.Keywords :Eclipse ;Android ;Map ;Navigation ★基金项目:大学生创新训练项目 2016年第11期 总第180期 科技广场 173—— DOI:10.13838/https://www.sodocs.net/doc/2e9925976.html,ki.kjgc.2016.11.042

三维地图制作

三维地图制作 产品简介 三维地图制作,首先采用最新的高分辨率的卫星图或航拍图为数据制作底图,并以此勾画出需要建设三维地图城市的地表范围和划分道路、河道、山体等地形地貌,再通过专业的三维建模软件来制作城市建筑的三维模型,后期对建筑物贴上相应纹理,以固定的视角来展示城市的三维地图。 三维地图特点 工艺流程 1、影像数据定位处理 通过卫星影像图定位,确定楼宇所在地,整理成表

2、地理信息实地采集 定点完成根据实际需要采集的区域与楼宇,分配该区域负责的专业采集员进行相关地理信息的采集。采集过程结合卫星地图,对该区域的建筑物进行拍摄、记录、绘制平面图等,然后打包传送到回公司总部,进行3D 立体制作。

3、根据卫星影像地图和实地3D数据建模 地图图像制作人员根据采集回来的素材,结合卫星影像图进行三维建模 4、后期制作 建模流程完成后,进入后期制作,将对实体进行拼接、组合、渲染。将多个区块拼接构成大地图,之后进行质检(走内部测试流程)

资质证书 1.三维地图行业中最早获得《国家乙级测绘资质证》的企业,严格依法生产和运营 2.百纳九洲在国内三维地图业内最早通过地图安全审校专业培训,并拥有国家颁发的《互联网地图安全审校上岗证》对于地图进行安全审校。

我们的优势 1、准确实测:卫星影象图作为采集数据的一个蓝本,确保了建筑物的位置准确性,和3D美工制作铺设楼房的正确性。由于卫星图并非即时的图片,制作以实测为准。 2、高清建模:百纳九洲采用当今国际流行多边形建模技术,在保证还原楼房真实形状的同时也能保证制作的速度。在制作楼房的时候,根据采集照片对楼房的每一部分进行推敲,结合卫星图片制作建筑,制作好建筑后,严格按照卫星图片上建筑的位置对制作好的建筑进行摆放,减少建筑与建筑之间、建筑与地表之间的位置误差。 3、精细贴图:百纳九洲对每一栋建筑进行细致的贴图,建筑外墙、窗体、装饰物的材质来自采集的照片或者精选的素材库,尽量还原建筑的真实外观。 4、真实渲染:百纳九洲采用渲染效果非常接近于真实的光线跟踪渲染器,使百纳九洲的三维地图有着良好的层次感和丰富的色彩,在增强立体层次的时候不会让客户觉得很刺眼,大大提高了产品的友好度,同时根据光线跟踪渲染器的特点对模型、贴图进行优化,使渲染的速度进一步的提升同时不降低产品的效果。 5、美化环境:百纳九洲按照卫星图片来进行环境的布局,对照卫星图片布置绿化、草地、树木,同时在保证在真实的情况下对环境做美化处理,增强产品的可看性。 经典案例 深圳三维地图

3维地图制作流程

三维电子地图的核心制作流程—案例分析 一、地图的概述及发展 地图是按照一定的数学法则,根据地图投影、地理坐标和比例尺,经过制图概括,在一定的载体上用各种地图符号(点、线、面状符号)和文字注记、颜色来表示一定区域内的地形、地貌、地物等地理信息。它反映各种自然和社会经济现象的空间分布、组合、联系及其动态变化。因此,地图是对地理空间信息的抽象化、符号化的描述。 近年来,随着互联网的不断普及和发展,电子地图也因以互联网为载体而快速兴起,地图已经从纸上走到了互联网、个人电脑和手持设备。人们可以很方便地在电子地图中搜索感兴趣的地点、行车线路和公交线路等,为出行安排提供参考建议。 众所周知,我们生活在一个真三维的现实世界里,而传统的二维地图只对处于三维空间中的各种地理对象全部进行向二维平面投影的简化处理,导致第三维方向(即垂直方向)上的几何位置信息、空间拓扑信息和部分语义信息的损失,不能完整地反映客观世界。 近几年来,随着计算机技术,特别是计算机图形学、网络、多媒体、虚拟现实技术、三维仿真技术的快速发展,地图发生了很大的变化,正在向网络化、互动化以及三维化的方向发展。 二、三维电子地图概述 三维电子地图是以其直观的三维表现形式,将真实地形、地貌、地物通过虚拟现实技术以及三维仿真技术,以互联网为载体,通过直观的方式模拟人的地理空间认知方式以及进行各种空间地理分析的阶段,将真实的地理空间信息以动态的、多维的、可交互的描述。 三维电子地图这种描述形式,使得地图超出了传统的地理信息符号化、空间信息水平化和地图内容凝固化、静止化、平面化的状态。与之相适应的是,地图制图从传统的地图符号的选择、制作、组织协调和绘制转变为三维地形、地貌、地物的构建、以及分析应用模型的建立。这一变化也使地图学理论从单纯的地图传输理论、地图语言理论以及地图认知理论转变为在三维虚拟地理环境中,模拟人在自然地理环境中(包括地下、地面、空中)进行地理认知、空间地理分析应用的理论研究。所以,三维仿真技术在地图学上的应用贯穿了传统的制图和利用地图进行分析应用的全过程。

相关主题