osgEarth加载谷歌卫星地图的源码案例

更新时间:2024-07-01 00:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

osgEarth加载谷歌卫星地图的源码案例

2014-12-24 11:51 242人阅读 评论(0) 收藏 举报

osgEarth谷歌卫星地图

一、准备工作

安装水经注万能地图下载器,如果没有安装本软件,可以百度“水经注软件”到官方网站下载。 编译OSG、OSGEarth和第三方插件等,这里有一个已经编译好的vs2010+osgearth,下载地址“http://pan.http://www.wodefanwen.com//share/link?shareid=107009& uk=2801833827”。 二、下载地图

首先需要把谷歌卫星地图下载下来,这里以“郫县”为例。

启动水经注万能地图下载器,点击“框选下载区域”,双击下载区域,选择级数,如下图。

image001.jpg (269.3 KB, 下载次数: 0) 下载附件 保存到相册 2014-12-23 16:01 上传

在级别列表中,你可以选择任何级别,但一般来讲城区选择19级,郊区选择16级比理想,但选择级别之前,最好在在线地图浏览中先查看所想要下载的级别是否有数据,这里我们以10级为例。选择好级别后,点击确定开始下载。

下载完成后会弹出对话框询问是否要立即导出,选择“是”,然后显示“导出图片数据”对话框,如下图所示。

在该对话框中,不需要作任何设置,点击“输出”按钮以默认参数导出数据即可。 默认导出路径为“D:\\SGDownload\\tt1_拼接[默认]\\L10”。

三、VS2010创建应用程序

解压编译包后还不能直接使用,需要设置环境变量: OSG_ROOT X:\\OSG

OSG_FILE_PATH %OSG_ROOT%\\data OSG_WINDOW 600 15 800 800 Path %OSG_ROOT%\\bin;

设置文件目录属性

Osgearth的一个主要目标是易于应用集成,实际上有2种方式去整合osgearth. 第一种方式你可以建立一个earth file,然后在你的应用程序中加载它. 第二种使用osgearth API的时候以编程方式动态建立一个地图。

这里我们使用第一种,使用OpenSceneGraph现有的插件来读写数据,不需要osgEarth的lib和头文件,但是需要把dll拷贝到osg的bin目录下面 1、新建一项目,我命名为test3。

2、首先配置相应的包含文件和库文件目录,添加相应的链接器

3、附加依赖项

01.OpenThreadsd.lib 02.osgd.lib 03.osgDBd.lib 04.osgFXd.lib 05.osgGAd.lib 06.osgManipulatord.lib 07.osgParticled.lib 08.osgShadowd.lib 09.osgSimd.lib 10.osgTerraind.lib 11.osgTextd.lib 12.osgUtild.lib 13.osgViewerd.lib

4、编写代码 #include \

#include #include #include #include #include #include #include

int _tmain(int argc, _TCHAR* argv[]) {

osg::ref_ptr viewer=new osgViewer::Viewer(); osg::ref_ptr root=new osg::Group();

osg::ref_ptr node=osgDB::readNodeFile(\ root->addChild(node.get()); osgUtil::Optimizer optimizer; optimizer.optimize(root.get()); viewer->setSceneData(root.get()); viewer->realize(); viewer->run();

return 0; }

mymap.earth是一个earth 文件,earth其实是文本格式的文件 内容如下

world.tif

其中world.tif使用的是相对路径,也就是当前目录, 运行结果如下

在MyMap.earth中叠加我们想要的地方的高精度影像数据,代码如下 data/world.tif

data/tt2.tif 运行结果如下

放大到最大级别,如下图

至此在osgearth加载谷歌卫星地图完成。

本文来源:https://www.bwwdw.com/article/nhy.html

Top