osgEarth22+vs+win7安装说明dm0720Word文档下载推荐.docx
《osgEarth22+vs+win7安装说明dm0720Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《osgEarth22+vs+win7安装说明dm0720Word文档下载推荐.docx(48页珍藏版)》请在冰豆网上搜索。
X.2libzip库40
X.3Osgearth资源下载40
第二章OSGEarth编译43
第一节sln生成43
1.1CMAKE配置43
1.2VS2010配置49
第二节OSGEarth编译与测试51
2.1OSGEarth编译51
2.2OSGEarth测试53
第三章OSGEarth学习54
第一章OSGEarth编译环境配置
OSGEarth的编译环境配置随着版本的不同、运行平台的不同,也有很大的差异。
本章主要以WindowsXPSP3(x86)为平台,VisualStudio2010为编译环境来介绍OSGEarth2.0的变异环境配置。
第一节OSGEarthV2.0相关资源
OSGEarth的相关资源可以通过其官方网站(http:
//www.osgearth.org/wiki/Downloads)获取(所有资源文件均在关盘的source文件夹中)主要资源说明和网址如下表:
资源名称
版本要求
推荐下载
OpenSceneGraph
V2.8.0以上
http:
//www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.1.zip
GDAL
V1.6以上
//download.osgeo.org/gdal/gdal181.zip
//download.osgeo.org/gdal/gdal-1.8.1.tar.gz
CURL
V7.21以上
//curl.haxx.se/download/curl-7.22.0.zip
GEOS
V3.2以上
//download.osgeo.org/geos/geos-3.3.1.tar.bz2
SQLite
源文件:
//www.sqlite.org/sqlite-amalgamation-3070900.zip
Dll:
//www.sqlite.org/sqlite-dll-win32-x86-3070900.zip
MiniZip
V1.0以上
头文件:
源代码:
Dll文件:
Expat
V2.0.1以上
code:
exe:
OSGEarth
V2.0
git:
//
OSGEarth源代码使用tortoisegit软件存放,因此需要下载并安装:
1.安装Git-1.7.0.2-preview20100309.exe
(
2.安装ortoiseGit-1.7.4.0-32bit.msi
以上有些版本已经过期,仅供参考,最好按后面的说明边载边做。
第二节OpenSceneGraph安装与配置
为了提高OSGEarth在编译过程中执行速度,降低计算机硬件要求,因此选用windowsXPSP3作为测试系统平台,vs2010作为windows平台下最新的编译软件,具有windows平台的兼容性考虑,编译出来的EXE文件可以顺利的部署在vista,win7上。
2.1CMake介绍与安装
CMake是个跨平台的自动化建构系统,它用组态档控制建构过程(buildprocess)的方式和Unix的Make相似,只是CMake的组态档取名为CmakeLists.txt。
Cmake并不直接建构出最终的软件,而是产生标准的建构档(如Unix的Makefile或WindowsVisualC++的projects/workspaces),然后再依一般的建构方式使用。
这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是CMake和SCons等其他类似系统的区别之处。
CMake可以编译源代码、制作程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。
CMake支援in-place建构(二进档和源代码在同一个目录树中)和out-of-place建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。
CMake也支援静态与动态程式库的建构。
支持VS2010的CMake版本为v2.8以上,本书选择V2.8.4。
下载地址:
关于的cmake的具体用法请参看
//techbase.kde.org/Development/Tutorials/CMake_(zh_CN)
或者
//www.cmake.org/Wiki/CMake。
下载完成后安装,在安装选项的位置选择:
其他可选择默认安装。
2.2OpenSceneGraph介绍
OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API),它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。
它作为中间件(middleware)为应用软件提供了各种高级渲染特性,IO,以及空间结构组织函数;
而更低层次的OpenGL硬件抽象层(HAL)实现了底层硬件显示的驱动。
2.2.1优势
OpenGL技术为图形元素(多边形、线、点……)和状态(光照、材质、阴影……)的编程提供了标准化的接口。
而OSG开发的主要意义在于,将3D场景定义为空间中一系列连续的对象,以进行三维世界的管理。
正是由于场景及其参数定义的特点,通过状态转化、绘图管道和自定制等操作,OSG还可以用于优化渲染性能。
从系统开发人员的角度看,相比工业标准OpenGL或其它的图形库,OSG的优点显而易见。
除了开源和平台无关性以外,它封装并提供了数量众多的提升程序运行时性能的算法、针对包括分页数据库在内的几乎所有主流数据格式的直接数据接口、以及对脚本语言系统Python和Tcl的支持,特别的,支持脚本语言系统的意义不仅限于用户可以使用除C++语言以外的工具进行图形系统的开发,事实上,对弱类型计算机语言的支持将突破现有交互式图形系统在人-机交互性能方面的最终限制。
OSG采用以下思想和工具进行构建:
1.ANSI标准C++;
2.C++标准模板库(STL);
3.设计模式(Designpatterns)。
这些工具使得OSG的开发者可以在自己喜好的平台上进行开发,并且依据用户所要求的平台进行配置。
2.2.2硬件需求
如今的OSG已经可以在多种硬件平台和操作系统上运行,并且能够在大部分计算机系统上正常使用。
处理器:
OSG可以在大部分的CPU上编译通过。
OSG具备线程安全性,并且可以有效利用多处理器和双核结构的特性。
OSG可以在32位或者64位处理器上运行通过。
图形:
你的计算机系统需要配置一块AGP或者PCI总线的图形显示卡。
OSG可以在大部分用于建模,仿真和游戏的专业级或大众级图形设备上运行。
可以运行OSG的图形设备必须高效地支持OpenGL,因此你应当从设备商处获得最新的OpenGL设备驱动程序。
OSG对显卡RAM的需求因用户的使用而异,但是256MB应当足够了。
OSG可以在多管(multi-pipe)显示系统上运行,并且可以利用多显卡来提升渲染速度。
RAM:
最小的系统RAM内存需求是由显示数据的数量和类型决定的。
推荐配置为1GB,大型数据集的开发可能需要更多的内存支持。
磁盘:
和RAM一样,磁盘空间的需求大小由数据量决定。
对于任何程序来说,更高速和更大容量的磁盘无疑可以减少数据读取的时间。
2.2.3软件需求
可以运行OSG的平台需要具备OpenGL的支持能力,以及C++的编译环境,支持OSG的系统包括Solaris,IRIX,Windows,MacOSX,HP-UX,SonyPlatystation等等,不过XBox除外。
和OpenGL类似,OSG的核心并没有提供窗口系统的功能。
因此用户可以自由选择所需的图形开发接口,如GLUT,X11/Motif,Win32,MacOSX,Qt,wxWindows,Fox等。
2.3OpenSceneGraph安装
OpenSceneGraph安装与编译还需要下载两个资源:
1.Osg第三方库(3rdParty_VC10_x86_x64.zip),网址:
.au/~bchrist/3rdParty_VC10_x86_x64.zip
2.数据包(OpenSceneGraph-Data-3.0.0.zip),网址:
//www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenSceneGraph-Data-3.0.0.zip
2.3.1建立文件地址与资源解压
第一步:
选择一个磁盘(X),保证磁盘具有30G左右的可用空间,并创建文件夹,X:
/OSG/;
(作者使用了E盘,后续如果出现E盘表示选择磁盘)。
第二步:
将OpenSceneGraph-3.0.0.zip解压到X:
/OSG/OpenSceneGraph文件夹中;
3rdParty_VC10_x86_x64.zip解压到X:
/OSG/3rdParty文件夹中;
OpenSceneGraph-Data-3.0.0.zip解压到X:
/OSG/OpenSceneGraph-Data文件夹中。
X:
/OSG/OpenSceneGraph文件夹截图:
/OSG/3rdParty文件夹截图:
/OSG/OpenSceneGraph-Data文件夹截图:
2.3.2安装源代码
启动CMake-gui.exe并设置文件地址,将编译地址设置为E:
/osg/OpenSceneGraph/vs2010。
点击“configure”:
以此出现以下过程:
点击“YES”:
选择“visualstudio2010”,点击“Finish”:
2.3.3配置CMAKE相关设置
配置环境变量
设置基本参数
ACTUAL_3RDPARTY_DIR值:
E:
/OSG/3rdParty;
BUILD_OSG_EXAMPLES值:
ON
CMAKE_INSTALL_PREFIX值:
/osg/OpenSceneGraph/vs2010
第二部:
点击Configure;
(红色标记为需要修改或设置不清楚的地方)。
第三步:
将Advanced打勾,将BUILD_MFC_EXAMPLE设置为on,然后进行最后一次的Configure配置。
第四步:
点击Generate,自此建构完成。
(只有出现了“Generatingdone”才表示生成完成,否则需要根据提示修改CMAKE的相关设置)
打开文件夹E:
\osg\OpenSceneGraph\vs2010,可以看见:
2.3.4编译OpenSceneGraph
用VS2010打开OpenSceneGraph.sln(此文件在E:
\OSG\OpenSceneGraph\VS2010下),过程可能需要较长时间,请耐心等待。
配置VS2010的相关设置。
点击“生成”,估计需要3-6个小时。
验证生成的文件
在E盘新建E:
\osgearth\OpenSceneGraph文件夹。
(说明:
\osgearth文件夹是用来编译osgearth的文件夹)
将E:
\osg\OpenSceneGraph\vs2010下的bin,include,lib文件夹拷贝到E:
\osgearth\OpenSceneGraph下(可以删除vs2010生成的临时文件,即bin中保留dll和exe文件,include不用处理,lib中保留lib文件),将E:
\osg\OpenSceneGraph-Data下的数据拷贝到E:
\osgearth\OpenSceneGraph\data下;
这几个文件是OSG需要的。
\osg\OpenSceneGraph下的include和src文件夹拷贝到E:
\osgearth\OpenSceneGraph下,否则后面编译可能找不到文件。
\osg\3rdparty\x86文件夹中的bin,include,lib合并到E:
\osgearth\OpenSceneGraph下,这样后面编译的时候需要包含的路径会少一些。
测试文件:
1.打开E:
\osgearth\OpenSceneGraph\bin\osgviewerMFC.exe
2.打开E:
\osgearth\OpenSceneGraph\data文件中的.osg或者.osgt文件,使用鼠标拖动观察程序运行情况。
如果运行正常,表明编译已经成功,否则需要查看编译过程中是否错误。
在退出程序是出现下面对话框是正常现象。
第三节CURL安装与配置
3.1CURL介绍
curl是利用URL语法在命令行方式下工作的文件传输工具。
它支持很多协议:
FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE以及LDAP。
curl同样支持HTTPS认证,HTTPPOST方法,HTTPPUT方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上载文件断点续传,http代理服务器管道(proxytunneling),甚至它还支持IPv6,socks5代理服务器,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。
Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。
准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。
curl是瑞典curl组织开发的,您可以访问http:
//curl.haxx.se/获取它的源代码和相关说明。
在http:
//curl.haxx.se/docs/您可以下载到UNIX格式的man帮助,里面有详细的curl工具的使用说明。
3.2CURL编译
首先解压curl-7.22.0.zip到E:
\osgearth\curl。
使用vs2010打开vc6curl.dsw,出现的提示全部选择“是”。
设置生成
编译完成的界面显示:
文件转移。
\osgearth\curl\include\curl文件夹复制到E:
\osgearth\OpenSceneGraph\include文件夹中;
\osgearth\lib文件夹中(包含子文件夹)的dll和lib文件复制到E:
\osgearth\OpenSceneGraph\lib文件夹中。
\osgearth\curl\src文件夹复制到E:
\osgearth\OpenSceneGraph\src文件夹中;
包括后面的安装也是一样,尽量把bin中的exe,dll,include,lib中的lib,dll,src文件夹都复制到E:
\osgearth\OpenSceneGraph\中去,这样后面osgearth编译的时候包含文件相对容易处理,而且可以避免出现编译时出错error1083:
找不到osg/version这样的问题。
第四节GDAL安装与配置
4.1GDAL介绍
GDAL(GeospatialDataAbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库。
它利用抽象数据模型来表达所支持的各种文件格式。
它还有一系列命令行工具来进行数据转换和处理。
OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。
有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的ArgGIS9.2,GoogleEarth和跨平台的GRASSGIS系统。
利用GDAL/OGR库,可以使基于Linux的地理空间数据管理系统提供对矢量和栅格文件数据的支持。
4.1.1GDAL
GDAL提供对多种栅格数据的支持,包括Arc/InfoASCIIGrid(asc),GeoTiff(tiff),ErdasImagineImages(img),ASCIIDEM(dem)等格式。
1)GDAL抽象数据模型
GDAL使用抽象数据模型(abstractdatamodel)来解析它所支持的数据格式,抽象数据模型包括数据集(dataset),坐标系统,仿射地理坐标转换(AffineGeoTransform),大地控制点(GCPs),元数据(Metadata),栅格波段(RasterBand),颜色表(ColorTable),子数据集域(SubdatasetsDomain),图像结构域(Image_StructureDomain),XML域(XML:
Domains)。
2)GDAL基础类
GDALMajorObject类:
带有元数据的对象。
GDALDdataset类:
通常是从一个栅格文件中提取的相关联的栅格波段集合和这些波段的元数据;
GDALDdataset也负责所有栅格波段的地理坐标转换(georeferencingtransform)和坐标系定义。
GDALDriver类:
文件格式驱动类,GDAL会为每一个所支持的文件格式创建一个该类的实体,来管理该文件格式。
GDALDriverManager类:
文件格式驱动管理类,用来管理GDALDriver类。
4.1.2OGR
OGR提供对矢量数据格式的读写支持,它所支持的文件格式包括:
ESRIShapefiles,S-57,SDTS,PostGIS,OracleSpatial,Mapinfomid/mif,MapinfoTAB。
OGR包括如下几部分:
Geometry:
类Geometry(包括OGRGeometry等类)封装了OpenGIS的矢量数据模型,并提供了一些几何操作,WKB(WellKnowsBinary)和WKT(WellKnownText)格式之间的相互转换,以及空间参考系统(投影)。
SpatialReference:
类OGRSpatialReference封装了投影和基准面的定义。
Feature:
类OGRFeature封装了一个完整feature的定义,一个完整的feature包括一个geometry和geometry的一系列属性。
FeatureDefinition:
类OGRFeatureDefn里面封装了feature的属性,类型、名称及其默认的空间参考系统等。
一个OGRFeatureDefn对象通常与一个层(layer)对应。
Layer:
类OGRLayer是一个抽象基类,表示数据源类OGRDataSource里面的一层要素(feature)。
DataSource:
类OGRDataSource是一个抽象基类,表示含有OGRLayer对象的一个文件或一个数据库。
Drivers:
类OGRSFDriver对应于每一个所支持的矢量文件格式。
类OGRSFDriver由类OGRSFDriverRegistrar来注册和管理。
4.2GDAL编译
将文件解压到E:
\osgearth\gdal并打开makegdal10.sln。
(本书解压文件夹为D:
\数字地球\gdal-1.8.1\gdal-1.8.1)
GDAL编译完成后的文件存放于C:
\warmerda\bld,包含文件bin,data,html三个子文件夹。
将C:
\warmerda\bld\bin和C:
\warmerda\bld\data拷贝到E:
\osgearth\gdal文件夹下;
\osgearth\gdal下的子文件夹alg,gcore,ogr和port中所有的.h文件拷贝到E:
\osgearth\gdal\include下;
将E:
\osgearth\gdal中所有的lib和dll文件复制到E:
\osgearth\gdal\lib文件夹下。
同时将bin,data,include,lib,src觉得可能有用的都拷到E:
\osgearth\OpenSceneGraph中。
第五节GEOS安装与配置
5.1GEOS介绍
GEOS(几何引擎——开源)是一个Java拓扑套件(JTS)的C++移植。
因此,它的目的是在C++中包含完整的JTS移植。
这包括了所有的OpenGIS“简单SQL特征”:
空间预测函数和空间操作员,以及具体的JTS拓扑功能
5.2GEOS编译