- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
osgEarth如何加载离线谷歌卫星地图瓦片的源码教程
osgEarth如何加载离线谷歌卫星地图瓦片的源码教程
说明
本实例演示重新编译bing驱动直接加载本地离线影像瓦片地图。
本实例使用软件版本:osg3.3.1和osgEarth2.5 VC10编译环境(参考osgearth加载谷歌卫星地图的源码案例),vs2010,水经注万能地图下载器。
影像瓦片来源“水经注万能地图下载器”。如果没有安装本软件,可以百度“水经注软件”到官方网站下载。
一、下载瓦片数据
启动水经注万能地图下载器,点击“我的下载”,选择“新建任务”,弹出“选择地图类型” 对话框,选择相应的地图类型,点击“确认”,如下图。
弹出“新建任务”对话框
输入全球坐标,由于我们需要导出瓦片数据,为了增加缩放效果,这里我们下载完成后会弹出对话框询问是否要立即导出,选择“是”,然后显示“导出图片数据”对话框,如下图所示。
在该对话框中,,点击“输出”按钮导出数据即可osgdb_osgearth_bingd” 动态库项目,如下图所示。
点击“确定”,弹出“应用程序向导”,如下图所示。
点击下一步
选择程序类型“DLL”,点击“完成”。
添加“包含目录”和“库目录”
包含目录设置为“D:\OSG\include”
库目录设置为“D:\OSG\lib“
以上目录路径根据OSG文件位置设定。
附加依赖项
OpenThreads.lib
osgd.lib
osgAnimationd.lib
osgDBd.lib
osgdb_osgearth_feature_ogrd.lib
osgdb_osgearth_feature_tfsd.lib
osgdb_osgearth_feature_wfsd.lib
osgEarthd.lib
osgEarthAnnotationd.lib
osgEarthFeaturesd.lib
osgEarthSymbologyd.lib
osgEarthUtild.lib
osgFXd.lib
osgGAd.lib
osgManipulatord.lib
osgParticled.lib
osgPresentationd.lib
osgShadowd.lib
osgSimd.lib
osgTerraind.lib
osgTextd.lib
osgUtild.lib
osgViewerd.lib
osgVolumed.lib
osgWidgetd.lib
点击“确定“。
根据D:\OSG\src\osgearth_2.5\osgearth_gitgui\src\osgEarthDrivers\bing路径找到Bing驱动源代码,如下图所示。
BingTileSource.cpp中的代码复制粘贴到,刚刚新建的osgdb_osgearth_bingd.cpp中
如下图所示。
下一步改写代码
#include BingOptions 改成 #include osgEarthDrivers/bing/BingOptions
_debugDirect ( false) 默认为false 改成_debugDirect ( true )
找到getDirectURI()将内容替换成:
return stringify()D:/Test/tt3BinggetLodKey(key)/getQuadKey(key).jpg;
新建
td::string getLodKey(const TileKey key)
{
unsigned int lod = key.getLevelOfDetail()+2;
std::stringstream sLod;
if(lod10)
sLod/L0lod;
if(lod=10)
sLod/Llod;
//OE_WARN LC sLod: sLod.str() std::endl;
return sLod.str();
}
注意:其中“D:/Test/tt3Bing“为下载的瓦片存放路径。
重新生成。
生成成功后可以在osgdb_osgearth_bingd.项目Debug中查看到文件。
将拷贝到OSG的bin目录下,替换掉之前的dll文件。
三、新建osgearth应用程序
新建步奏跟新建动态库类似,只是不再选择“DLL“,选择“控制台应用程序“
设置“包含目录“,”库目录“,”依赖项“跟DLL设置一样。
这里新建了一个名为“osgearthAPI“的控制台应用程序。代码如下
#include stdafx.h
#include osgViewer/Viewer
#include osgViewer/ViewerEventHandlers
#include o
文档评论(0)