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

2016-7-21 14:36:01 0人评论 350次浏览 分类:技术文章

一、准备工作
安装水经万能地图下载器,如果没有安装本软件,可以百度“水经软件”到官方网站下载。
编译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加载谷歌卫星地图完成。

附件下载

相关资讯

  • 青海省谷歌高清卫星地图下载(百度网盘离线包下载)

    一、概述  青海,简称青,省会西宁,位于中国西部,雄踞世界屋脊青藏高原的东北部,是中国青藏高原上的重要省份之一。青海省东西长约1200公里,南北宽800公里,面积为72.10万平方公里。境内山脉高耸,地形多样,河流纵横,湖泊棋布。昆仑山横贯中部,唐古拉山峙立于南,祁连…

    2018-8-23 16:18:41
  • 宁夏省谷歌高清卫星地图下载(百度网盘离线包下载)

    一、概述  宁夏,全称宁夏回族自治区,简称“宁”。首府银川市,成立于1958年10月25日 [1] ,是中国五大少数民族自治区之一。  宁夏回族自治区得黄河水灌溉而形成了悠久的黄河文明。 早在三万年前,宁夏就已有了人类生息的痕迹。公元1038年,党项族的首领李元昊在此建立…

    2018-8-10 16:41:59
  • 辽宁省谷歌高清卫星地图下载(百度网盘离线包下载)

    一、概述辽宁,中华人民共和国省级行政区,简称“辽”,辽宁省南临黄海、渤海,东与朝鲜一江之隔,与日本、韩国隔海相望,是东北地区唯一的既沿海又沿边、中国最北端的沿海省份,也是东北地区及内蒙古自治区东部地区对外开放的门户。辽宁省是中国重要的重工业基地、教育强省、…

    2018-7-25 17:18:09
  • 江西省谷歌高清卫星地图下载(百度网盘离线包下载)

    一、概述  江西,中国省级行政区,简称“赣”(gn),又称江右、别称赣鄱大地,省会是南昌。因公元733年唐玄宗设江南西道而得省名,又因古为干越之地和省内最大河流为赣江而简称赣。  夏商时期,江西境内有邗越(干越)、百濮,《荀子劝学篇》注:“邗越古国名”。已进入青…

    2018-7-24 16:25:25

共有访客发表了评论 网友评论

验证码: 看不清楚?
    我们的客户
    卫星地图下载