论坛
商城
新人指南
地信网论坛
»
论坛
›
『软件技术应用』
›
地质辅助软件
›
osgEarth加载谷歌卫星地图的源码案例
免费视频
|
新人指南
|
投诉删帖
|
广告合作
|
地信网APP下载
返回列表
查看:
1775
|
回复:
0
[3S]
osgEarth加载谷歌卫星地图的源码案例
[复制链接]
希望、、
希望、、
当前离线
积分
966
雷达卡
6
主题
740
铜板
34
好友
高级工程师
高级工程师, 积分 966, 距离下一级还需 234 积分
高级工程师, 积分 966, 距离下一级还需 234 积分
积分
966
发消息
发表于 2014-12-25 14:44
|
显示全部楼层
|
阅读模式
一、准备工作
安装水经注万能地图下载器,如果没有安装本软件,可以百度“
水经注软件
”到官方网站下载。
编译OSG、OSGEarth和第三方插件等,这里有一个已经编译好的vs2010+osgearth,下载地址“
http://pan.baidu.com/share/link?shareid=107009&
uk=2801833827”。
二、下载地图
首先需要把谷歌卫星地图下载下来,这里以“
郫县
”为例。
启动水经注万能地图下载器,点击“框选下载区域”,双击下载区域,选择级数,如下图。
在级别列表中,你可以选择任何级别,但一般来讲城区选择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 "stdafx.h"
#include <osgViewer/viewer>
#include <osg/Node>
#include <osg/geode>
#include <osg\group>
#include <osgDB/readfile>
#include <osgDB/writefile>
#include <osgUtil\optimizer>
int _tmain(int argc, _TCHAR* argv[])
{
osg::ref_ptr<osgViewer::Viewer> viewer=new osgViewer::Viewer();
osg::ref_ptr<osg::Group> root=new osg::Group();
osg::ref_ptr<osg::Node> node=osgDB::readNodeFile("mymap.earth");
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其实是文本格式的文件
内容如下
<map name="MyMap" type="geocentric" version="2">
<image name="bluemarble" driver="gdal">
<url>world.tif</url>
</image>
</map>
其中world.tif使用的是相对路径,也就是当前目录,
运行结果如下
在MyMap.earth中叠加我们想要的地方的高精度影像数据,代码如下
<map name="MyMap" type="geocentric" version="2">
<image name="t1" driver="gdal">
<url>data/world.tif</url>
</image>
<image name="t2" driver="gdal">
<url>data/tt2.tif</url>
</image>
</map>
运行结果如下
放大到最大级别,如下图
至此在osgearth加载谷歌卫星地图完成。
谷歌卫星
相关帖子
•
万能地图下载器如何下载屏幕之外的谷歌卫星地图
•
如何使用万能地图下载器导出含有边界的谷歌卫星地图
•
如何下载区县范围的谷歌卫星地图
•
如何把Excel坐标加载到谷歌卫星地图上
•
如何在GlobalMapper中打开谷歌卫星地图
回复
使用道具
举报
提升卡
沉默卡
喧嚣卡
变色卡
抢沙发
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
营业时间
早8:30 - 晚18:00
商务合作
论坛管理员
忘记密码,找回密码请发邮件到此邮箱:
快速回复
返回顶部
返回列表