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

一、准备工作

安装水经注万能地图下载器,如果没有安装本软件,可以百度“水经注软件”到官方网站下载。

编译OSG、OSGEarth和第三方插件等,这里有一个已经编译好的vs2010+osgearth,下载地址“http://pan.baidu.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 "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加载谷歌卫星地图完成。

时间: 2024-11-09 02:51:32

osgEarth加载谷歌卫星地图的源码案例的相关文章

如何在OsgEarth中加载谷歌卫星地图的ArcGISServer服务教程

说明: 本实例演示如何在arcgis中发布下载好的影像瓦片数据,在osgearth中加载发布好的瓦片服务. 本实例使用软件版本:ArcGIS10.2,osg3.3.1和osgEarth2.5 VC10编译环境(参考osgearth加载谷歌卫星地图的源码案例),水经注万能地图下载器. 影像瓦片来源"水经注万能地图下载器".如果没有安装本软件,可以百度"水经注软件"到官方网站下载. 一.下载瓦片数据 启动水经注万能地图下载器,点击"框选下载区域",双

SparkConf加载与SparkContext创建(源码)

即日起开始spark源码阅读之旅,这个过程是相当痛苦的,也许有大量的看不懂,但是每天一个方法,一点点看,相信总归会有极大地提高的.那么下面开始: 创建sparkConf对象,那么究竟它干了什么了类,从代码层面,我们可以看到我们需要setMaster啊,setAppName啊,set blabla啊...等等~ val sparkConf = new SparkConf().setMaster("local").setAppName("TopActiveLocations&qu

Android中图片加载框架Glide解析2----从源码的角度理解Glide的执行流程

转载地址:http://blog.csdn.net/guolin_blog/article/details/53939176 在本系列的上一篇文章中,我们学习了Glide的基本用法,体验了这个图片加载框架的强大功能,以及它非常简便的API.还没有看过上一篇文章的朋友,建议先去阅读 Android图片加载框架最全解析(一),Glide的基本用法 . 在多数情况下,我们想要在界面上加载并展示一张图片只需要一行代码就能实现,如下所示: Glide.with(this).load(url).into(i

SparkConf加载与SparkContext创建(源码阅读三)

sparkContext创建还没完呢,紧接着前两天,我们继续探索..作死... 紧接着前几天我们继续SparkContext的创建: 接下来从这里我们可以看到,spark开始加载hadoop的配置信息,第二张图中 new出来的Configuration正是hadoop的Configuration.同时,将所有sparkConf中所有以spark.hadoop.开头的属性都复制到了Hadoop的Configuration.同时又将spark.buffer.size复制为Hadoop的Configu

osgEarth如何加载离线谷歌卫星地图瓦片的源码教程

说明 本实例演示重新编译bing驱动直接加载本地离线影像瓦片地图. 本实例使用软件版本:osg3.3.1和osgEarth2.5 VC10编译环境(参考osgearth加载谷歌卫星地图的源码案例),vs2010,水经注万能地图下载器.  osgdb_osgearth_bingd.rar (52.96 KB, 下载次数: 786)  osgearthAPI.rar (31.91 KB, 下载次数: 831) 影像瓦片来源"水经注万能地图下载器".如果没有安装本软件,可以百度"水

如何在谷歌卫星地图中叠加等高线并打印

一.准备工作 安装水经注万能地图下载器,如果没有安装本软件,可以百度"水经注软件"到官方网站下载. 安装ArcGIS系列版本之一,这里以ArcGIS10.2为例. 二.下载地图 首先需要把谷歌卫星地图下载下来. 启动水经注万能地图下载器,选择"新建任务",弹出"选择地图类型",如下图. 点击"确定".弹出"新建任务"对话框,如下图所示. 输入坐标,并选择级别. 在级别列表中,你可以选择任何级别,但一般来讲城

如何将谷歌卫星地图转成80坐标并测量面积

一.准备工作 安装水经注万能地图下载器,如果没有安装本软件,可以百度"水经注软件"到官方网站下载. 安装arcgis系列版本之一,这里以ArcGIS10.2为例. 二.下载地图 首先需要把谷歌卫星地图下载下来. 启动水经注万能地图下载器,缩放到成都天府广场,点击"框选下载区域",框选天府广场大概区域,双击下载区域,选择级数,如下图. 在级别列表中,你可以选择任何级别,但一般来讲城区选择19级,郊区选择16级比理想,但选择级别之前,最好在在线地图浏览中先查看所想要下载

制作百度地图离线JavaScript API加载本地瓦片地图

1.首先获取百度 JavaScript API 首先用浏览器打开 http://api.map.baidu.com/api?v=1.3 如下图所示 其中 http://api.map.baidu.com/getscript?v=1.3&key=&services=&t=20121108061854 这个链接就是我们要找的API文件, 同样在浏览器中打开它,并另存为诸如“apiv1.3.min.js” 还有百度地图必须的一些控件,光标,logo之类的图片也下载下来 2.修改“apiv

百度地图-同时加载多张地图

1.问题背景 在一个界面,同时展示不同城市地图分布情况 2.实现源码 <!DOCTYPE html> <html> <head> <title>同时加载四张地图</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description"