osgearth介绍
osgEarth为开发osg应用提供了一个地理空间SDK和地形引擎.
osgEarth的目标:
l 提供基于osg开发3D地理空间应用的支持;
l 直接从数据源可视化地形模型和影像变得更加简单;
l 提供对开放式绘图标准,技术和数据的交互操作;
在很多情形下,osgEarth可以替代离线地形数据库创建工具,你可以通过osgEarth完成如下工作:
获取地形基础地图并快速而流畅的运行
访问开放式标准的地图数据服务,例如WMS和TMS
将基于web服务的影像数据和本地存储的数据整合
在运行时嵌入新的地理空间数据层
超时处理可能改变的数据
集成商业数据源
社区资源
osgEarth是一个自由开源的SDK,任何人斗可以获取源码,同时欢迎和鼓励参与社区的测试,新功能研发和bug修复.
工具
osgEarth自带很多协助处理earth文件和地理空间数据的工具.
osgearth_viewer
从命令行加载并显示一个地图.osgEarth提供的地球操纵器用于控制相机,对地理空间数据的浏览进行了优化.
osgearth_version
显示osgEarth的当前版本号.
osgearth_cache
管理osgEarth的缓存.osgearth_cache较常用的用法:通过非交互方式--seed参数生成缓存信息.
osgearth_cache --seed file.earth
osgearth_package
从earth文件创建一个基于TMS格式,可重复发布的包。
osgearth_package --tms file.earth --out package
osgearth_conv
将瓦片源中到内容拷贝到另一个文件。所有参数以键值对方式出现,需要为每个驱动选项查找头文件。当然,输出驱动必须支持写(通过实现ReadWriteTileSource接口)。"in"属性来自于GDALOptions getConfig方法。"out"属性来自于MBTilesOptions getConfig方法。
osgearth_conv --in driver gdal --in url world.tif --out driver mbtiles --out filename world.db
osgearth_tfs
从特征源(例如shapefile)产生一个TFS数据集。通过将源预处理成网格结构(TFS),可极大提升大数据集的性能。同时,产生的TFS包可由web服务器提供服务。
osgearth_tfs filename
osgearth_backfill
用于后期处理TMS数据集的特殊工具。一些web地图服务在不同缩放比例下会使用完全不同的数据集。例如,当缩放比例达到4级时,可能使用NASA 的BlueMarble,然后陡然切换到地球资源卫星数据。在2D场景下,对于较光滑的地图有效,但是在3D场景下,整张图看起来会很不均匀,因为在不同的LODs下,相邻的瓦片看起来会完全不同。
Osgearth_backfill产生一个TMS数据集(使用osgearth_package或其他工具),然后从指定的查看高度填充较低缩放级别的细节。例如,你可以指定最大缩放级别10,0-9的lods就可以从10级的数据重新生成。
osgearth_boundarygen
产生边界地理信息,可使用osgEarth<mask> 将外部模型数据嵌入地形信息中。
osgearth_boundarygen model_file [options]
osgearth_overlayviewer
调试叠加功能。运行时显示两个窗口,一个显示普通的地图视图,一个显示包含边界的视锥体视图(用于叠加计算)。
osgearth_graticule
加载经纬线
地图
Osgearth提供了大量的地图文件,每个文件都对应某类功能,可通过osgearth_viewer查看运行效果。
Feature_drapped_lines.earth: 显示国界线
Feature_clip_plane.earth: 显示透明地球+国界线
Feature_custom_filters.earth: 根据缩放级别动态显示国名
Feature_drapped_polygons.earth: 相邻国家使用不同颜色显示
Feature_models.earth: 紧贴地表绘制的三维图形
Graticule.earth: 显示经纬线及经纬线位置(包含较清晰高层数据,未穿越云层)
Ldb.earth: 在地球某一高度显示一只静态的飞机
实例
以下地图文件基于osgearth提供的数据,包含一个地球、经纬线、国界线、各国名字。
- <!--
- osgEarth Sample
- Demonstrates feature draping using projective texturing,
- i.e. "altitude-clamping: terrain-drape".
- -->
- <map name="Geometry Rasterizer Demo" type="round" version="2">
- <options>
- <lighting>false</lighting>
- <terrain min_lod="16"/>
- </options>
- <image name="world" driver="gdal">
- <url>../data/world.tif</url>
- <cache_policy usage="no_cache"/>
- </image>
- <model name="world_boundaries" driver="feature_geom">
- <features name="earth" driver="ogr">
- <url>../data/world.shp</url>
- <build_spatial_index>true</build_spatial_index>
- </features>
- <styles>
- <style type="text/css">
- world {
- stroke: #ffff00;
- stroke-width: 5px;
- altitude-clamping: terrain-drape;
- }
- </style>
- </styles>
- </model>
- <extensions>
- <graticule>
- <!-- The approximate number of grid lines that you would like to see in your view extent.
- This number, along with the resolutions list, will be used to select a resolution on each view.
- -->
- <grid_lines>10</grid_lines>
- <!-- The grid resolutions, in degrees that you want to see, all separated by a space and sorted from lowest resolution to highest -->
- <!--
- <resolutions>10 5 2.5 1.25</resolutions>
- -->
- <!-- The grid line color -->
- <color>#f7a73f70</color>
- <!-- The label color -->
- <label_color>#ffff00ff</label_color>
- <!-- Specify the line width -->
- <line_width>2</line_width>
- </graticule>
- </extensions>
- <model name="cities" driver="feature_geom">
- <features name="cities" driver="ogr">
- <url>../data/world.shp</url>
- <!--Define a ChangeAttributeFilter, which is defined in the osgearth_featurefilter example. This will change the cntry_name of all countries to osgEarthLand.-->
- <change_attribute key="cntry_name" value="osgEarthLand"/>
- </features>
- <styles>
- <style type="text/css">
- cities {
- text-provider: annotation;
- text-content: [cntry_name];
- text-priority: [pop_cntry];
- text-halo: #3f3f7f;
- text-align: center_center;
- text-declutter: true;
- }
- </style>
- </styles>
- </model>
- </map>
第15行加载地球模型,第20行加载国界,第39行加载经纬线,第62行加载国名。
osgearth介绍的更多相关文章
- osgearth介绍(转载)-feature_labels.earth
初识osg OSG的诞生 在 1997 年时,Don Burns 由于喜欢滑翔机运动且对计算机图形学非常熟悉,在 LINUX 上写了一个控制滑翔机的小引擎,这便是 OSG 的最初雏形.后来在 1998 ...
- OSGEARTH三维地形开源项目
第一章 OSGEarth介绍 第二章 OSGEarth编译环境配置 OSGEarth的编译环境配置随着版本的不同.运行平台的不同,也有很大的差异.本章主要以Windows XP SP3(x86 ...
- [原][osg][osgearth]倾斜摄影1.介绍
总体介绍: 倾斜摄影就是将拍好的数据,三角网格化再附上贴图. 目前流行处理软件: Street Factory.PIX4DMapper.smart3D 后期开发平台:超图 Skyline smart3 ...
- osg实例介绍
osg实例介绍 转自:http://blog.csdn.net/yungis/article/list/1 [原]osgmotionblur例子 该例子演示了运动模糊的效果.一下内容是转自网上的:原理 ...
- OSG入门即osgEarth建立一个地球的详细步骤
OSG入门即osgEarth建立一个地球的详细步骤 转:http://blog.csdn.net/xiaol_deng/article/details/9246291 最近在学习有关osg的知识,刚开 ...
- OSG+VS2010+win7环境搭建---OsgEarth编译
OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 ...
- [osgearth]通过API创建一个earth模型
通过API的方式大体需要以下几个步骤: 创建map对象—— 创建影像数据层—— 创建高程数据层—— 将影像数据层以及高程数据层加入到map对象—— 根据前面创建的map对象创建mapNode节点—— ...
- OsgEarth开发笔记(一):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(上)
前言 OSG研究之后,做地理GIS显示了地球:<项目实战:Qt+OSG教育学科工具之地理三维星球>,这一文章是基于OSG做的,而基于OsgEarth是可以进一步对地球进行深度操作,所以 ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
随机推荐
- C#、WPF中如何自定义鼠标样式
需求:在C#中如何自定义鼠标样式?在这里可以分两种情况,一种是在winForm,另一种是在WPF中(注意使用的Cursor对象不一样) 解决办法如下: a.首先针对WinForm中,我们可以采用图标加 ...
- 【zabbix教程系列】四、用户自定义监控
本篇介绍运用zabbix进行自定义监控,以系统用户登录数量为例. 一.zabbix自定义语法 UserParameter=<key>,<shell command> 二.age ...
- stream流操作List工具类
工作中操作List对于程序猿来说是"基本操作",为了更加便利,对JDK8的新特性stream流进行二次封装.话不多说,直接上代码 package com.mydemo; impor ...
- PHP知识点记录
笔记源自---PHP必须知道的300个问题 一.提高编程效率 1.echo中字符串用单引号包含起来会比用双引号快. 2.$row['id']的速度要比$row[id]快很多. 3.echo比print ...
- jmeter压测数据库,抓包工具,python基础
jmeter压力测试 前提场景的设置:单场景(单个接口进行压力测试一个请求)或混合场景(有业务流程的场景进行压力测试多个请求),压测时间一般在5--1515分组具体看需求. 数据准备:数据量少和数据量 ...
- git使用kdiff3合并乱码问题
https://blog.csdn.net/u011008029/article/details/72644515 在合并代码过程中发现kdiff打开的文件都是乱码,解决方案如下: 第一步:点击Set ...
- bzoj4490 随机数生成器Ⅱ加强版
题目链接 题意 给出参数\(C_1,C_2,P\)按如下方式生成一个长度为\(n \times m\)的序列\(x\): \(x_0 = C_1,x_1=C2\) \(x_i=(x_{i-1}+x_{ ...
- 20175209 《Java程序设计》第八周学习总结
20175209 <Java程序设计>第八周学习总结 一.教材知识点总结 1.泛型 1.泛型类声明: 格式 class People<E> People是泛型类名称 E是泛型列 ...
- Flash设置(各种版本浏览器包括低版本IE)
涉及到的各种版本flash百度下都能下到的,不再说明. Flash的安装比较麻烦,涉及多种浏览器.多种操作系统支持,安装.设置的地方比较多,以下说明基本涉及大部分安装过程中可能遇到的问题,如果安装或视 ...
- Git复制已有分支到新分支开发
如果我们需要在现有的分支代码基础上,复制代码到新分支进行开发,并推送至远程仓库,可以进行如下操作: 注:被复制的分支代码(ibis35),创建新的分支(ibis35-dev) 1. 切换到被copy的 ...