原文参考:http://docs.osgearth.org/en/latest/user/features.html

自己翻译的,本人英文水平有限,有问题看原链接,原文

20170802重置修改部分翻译(本人也在不断学习啦O(∩_∩)O~)

注:OE就是osgEarth

了解Features

Features是矢量的几何图形

不像(光栅化的)地图与高程数据,他不是离散的像素位图。

osgEarth可以在任何级别详细的显示Features。

一个Features由三个部分组成

  1.矢量的几何图形(点,线,面和集合)

  2.属性(名称name对应键值项value的组合)

  3.空间参考(描述几何坐标)

创建一个Feature图层

有两种方式:

  1.作为图像层栅格化显示

  2.作为模型层嵌入

1.栅格化:

  光栅feature是最简单的:

    OE将矢量信息“画”入一张地图瓦片,将这张新的底图瓦片代替原来的地图瓦片(仅图像层)

    OE有一个软渲染驱动:agglite驱动(driver)

  下面是一个显示ESRI Shapefile点阵图片层的例子:

<image name="my layer" driver="agglite">
<features name="states" driver="ogr">
<url>states.shp</url>
</features>
<styles>
<style type="text/css">
states {
stroke: #ffff00;
stroke-width: 2.0;
}
</style>
</styles>
</image>

2.嵌入方式

  将矢量数据经过编译变成支持OSG绘制的几何图形(点,线,三角面,或者替换模型)

  主要的feature嵌入插件是:feature_geom驱动(driver);这驱动在feature的样例演示使用中是非常常见的

  以下一个模型层,它显示一个ESRI Shapefile一系列黄线,用OSG几何线渲染:

<model name="my layer" driver="feature_geom">
<features name="states" driver="ogr">
<url>states.shp</url>
</features>
<styles>
<style type="text/css">
states {
stroke: #ffff00;
stroke-width: 2.0;
}
</style>
</styles>
</model>

feature层的组合

就像之前看到的一样,这里有几个必要的feature层组件

“features”块   描述了实际功能源。即,osgEarth在哪找到输入数据。

“styles”块   描述如何osgEarth渲染feature。即,在场景中出现。我们叫他样式表或者象征,

        样式表的构成可以从根本上改变feature数据的外观。

这两个元素是必需的

样式 styling

在earth文件中,“styles”块如下

<styles>
<style type="text/css">
buildings {
altitude-clamping: terrain;
extrusion-height: 15;
extrusion-flatten: true;
fill: #ff7f2f;
}
</style>
</styles>

这个样式表一般在渲染feature层的“model”块中,和“feature”块配合

(“feature”块定义真正包含的数据源)

“style”元素是CSS样式的(不了解的自己去查CSS)

这个东西告诉几何引擎做这几件事:

  将feature几何图形固定到地形高层数据上

  挤压形状地形高度15米以上;

  平的顶部挤压形状;

  形状颜色橙色。

osgEarth需要每个输入特性和主题样式的过程。输出将完全依靠在样式表中符号的组合。这包括:(太累了,时间太紧,下面的先机器翻译了)

  填充和中风——无论是画线或多边形的数据
  挤压,挤压二维几何三维形状
  替换,替换(如几何与外部的3 d模型。、树)或图标
  高度——几何与地图的地形相互作用的方式
  文本-控制标签
  呈现——照明应用,混合和深度测试

样式表

每个功能层需要一个样式表。样式表作为一个<风格>块出现在地球的文件。这里有一个例子:

<model name="test" driver="feature_geom">
<features driver="ogr">
<geometry>POLYGON( (0 0, 1 0, 1 1, 0 1) )</geometry>
<profile>global-geodetic</profile>
</features>
<styles>
<style type="text/css">
default {
fill: #ff7f009f;
stroke: #ffffff;
stroke-width: 2.0;
altitude-clamping: terrain;
altitude-technique: drape;
render-lighting: false;
}
</style>
</styles>
</model>

样式表包含一个称为默认风格。由于只有一个风格,osgEarth将应用到所有的输入特性。(应用不同的风格不同的特性,使用选择器-下面的更多信息。)
符号的风格包含一组几何描述osgEarth应该如何呈现什么特点。在这种情况下:

fill: Draw a filled polygon in the specified HTML-style color (orange in this case).
stroke: Outline the polygon in white.
stroke-width: Draw the outline 2 pixels wide.
altitude-clamping:
  Clamp the polygon to the terrain.
altitude-technique:
  Use a “draping” technique to clamp the polygon (projective texturing).
render-lighting:
  Disable OpenGL lighting on the polygon.

这只是一个小样本可用的象征。对于一个完整的清单,请参阅:符号学参考。

地形追踪

它是相当普遍的特性与地形相互作用。要求包括:
  街道上,遵循地形的轮廓
  树种植在地上
  主题映射,如着色基于人口的一个国家的地区
osgEarth提供多种地形的方法后,因为没有一个最好的方法是为每个情况。

Map Clamping地图夹紧(地图褶皱?地图覆盖?地图紧贴?)

地图夹紧是最简单的方法。当编译特性显示,osgEarth将样本的仰角层地图,发现地形的高度,并将之运用于由此产生的几何特性。它将测试每个点在几何。

地图夹紧导致高质量渲染;权衡性能:
  它可以减缓抽样中的高程数据地图,根据你选择的分辨率。为大量特性,它可以是cpu密集型和耗时。
  抽样是准确的,和做的每一点的几何学。你可以选择样本的thecentroid每个特性来提高编译速度。
  根据几何分辨率的特性,您可能需要镶嵌细工的数据来实现更好的质量。
  渲染质量好与其他方法相比。
你可以激活地图夹在你的样式表如下所示:

altitude-clamping:   terrain;        // terrain-following on
altitude-technique: map; // clamp features to the map data
altitude-resolution: 0.005; // [optional] resolution of map data to clamp to

Draping覆合

覆盖是覆盖的过程编译几何地形的皮肤,就像“覆盖”一条毯子在一个不均匀的表面。osgEarth这是渲染纹理的特征(RTT)然后投射纹理在地形

draping都有其优点和缺点:

   draping将符合功能完美的地形;没有担心决议或镶嵌。
  你可能会参差不齐的artificats当呈现直线或多边形边缘。投影纹理大小有限,它必须覆盖面积大,越低分辨率图像的投影。在实践中这意味着披盖多边形比直线更有用。
  意想不到的混合构件可能由于覆盖许多透明的几何图形在彼此。

GPU Clamping

GPU夹紧后实现近似地形使用GPU着色器。它使用一个两阶段技术:首先它使用深度域采样夹每个顶点到地形的皮肤在一个顶点着色器;其次它depth-offsetting算法适用于缓解z-fighting片段着色器。

Rendering Large Datasets呈现大型数据集

特性数据加载到osgEarth最简单的方法是这样的:

<model name="shapes">
<features name="data" driver="ogr">
<url>data.shp</url>
</features>
<styles>
data {
fill: #ffff00;
}
</styles>
</model>

我们只是shapefile加载每个特性和颜色的黄色。
在某种程度上来说,这就做得够好了,这时候osgEarth(用OSG)成为充斥着太多的几何学。即使osgEarth的几何优化编译器使用一个足够大的数据集可以排气系统资源。
解决方案是瓷砖和分页功能。这里是如何配置它。

Feature display layouts功能显示布局

功能显示布局激活特性数据的分页和瓷砖。让我们修改前面的示例:

<model name="shapes">
<features name="data" driver="ogr">
<url>data.shp</url>
</features> <layout>
<tile_size>250000</tile_size>
<level name="data" max_range="100000"/>
</layout> <styles>
data {
fill: #ffff00;
}
</styles>
</model>

Cropping features裁剪功能

默认情况下,如果一个功能相交瓷砖,它将包括即使外面扩展区段的瓷砖。这是用于挤压建筑之类的东西,它没有意义去砍他们适合完全的瓷砖,因为你不想看到半页。一般建筑也小,所以外的距离,他们将延长瓷砖相对较小。
例如道路或国家的边界,是线性特性,它可能更有意义作物完全符合瓷砖。视觉上一行看起来不那麽糟糕如果你看到部分页面。您可以启用功能种植布局的布局将crop_features属性设置为true。

<model name="roads" driver="feature_geom">
<features name="roads" driver="ogr" build_spatial_index="true">
<url>roads.shp</url>
</features> <layout crop_features="true" tile_size="1000">
<level max_range="5000"/>
</layout> <styles>
<style type="text/css">
roads {
stroke: #ffff7f7f;
}
</style>
</styles>
</model>

层级Levels

每一层描述的详细程度。这是一个相机范围(min_range和max_range)之间的瓷砖在这种级别的细节呈现。但每个瓷砖有多大?这是计算基于thetile范围的因素。

[原][译][osgearth]关于Features & Symbology (特征与符号)(OE绘制矢量几何与特殊字符)讲解(OE官方文档翻译)的更多相关文章

  1. 【译】在Asp.Net中操作PDF - iTextSharp - 绘制矢量图

    原文 [译]在Asp.Net中操作PDF - iTextSharp - 绘制矢量图 在上一篇iTextSharp文章中讲述了如何将现有的图片插入PDF中并对其进行操作.但有时,你需要在PDF中绘制不依 ...

  2. [原][译][osgearth]Model Source Drivers模型驱动源(OE官方文档翻译)

    ModelSource 是一个能生成OpenSceneGraph节点的驱动(driver) osgEarth使用ModelSources显示矢量特征(feature)数据和加载和显示外部3d模型 Fe ...

  3. [原][译][osgearth]样式表style中参数总结(OE官方文档翻译)

    几何Geometry 高度Altitude 挤压Extrusion 图标Icon 模型Model 渲染Render 皮肤Skin 文本Text 覆盖Coverage 提示: 在SDK中,样式表的命名空 ...

  4. [原][译][osgearth][EarthFile]关于EarthFile 的Model Layer 讲解(通过earth文件加载模型层)(OE官方文档翻译)

    原文参考:http://docs.osgearth.org/en/latest/references/earthfile.html#model-layer 本人翻译能有限.... 模型层 模型层渲染“ ...

  5. [原][译][osgearth]API加载地球(OE官方文档翻译)

    原文参考:http://docs.osgearth.org/en/latest/developer/maps.html#programmatic-map-creation 本人翻译水平有限... 加载 ...

  6. [原][译][osg][osgEarth]飞行模拟软件JSBSim的操作(FGFCS类)

    英文原文在 FGFCS.h头文件中 JSBSim的控制操作封装了飞行控制系统(FCS)的功能. 这个FGFCS类还封装了相同的“系统”和“自动驾驶仪”能力. FGFCS包含用来定义一个系统或飞行模型体 ...

  7. [原][OSG][osgEarth]osgEarth例子程序简介

    1.osgearth_graticule:生成经纬线. 2.osgearth_annotation:各类标注(点.线.面.模型.文本等). 3.osgearth_city:加载一个城市三维模型,可以浏 ...

  8. 【原】训练自己的haar-like特征分类器并识别物体(3)

    在前两篇文章中,我介绍了<训练自己的haar-like特征分类器并识别物体>的前三个步骤: 1.准备训练样本图片,包括正例及反例样本 2.生成样本描述文件 3.训练样本 4.目标识别 == ...

  9. [原][译][jsbsim]空气动力学模型库讨论JSBSim对比YASim

    英文原文:JSBSim_vs_YASim 准确性和现实性飞行动力学模型的准确性和真实性是针对YASim的争论中提出的两个共同点.实际上,如果你给YASim或JSBSim垃圾参数,它们都将返回垃圾空气动 ...

随机推荐

  1. Spring AOP依赖包

    Spring4和2.5发生了很大的变化,原来的spring2.5很多倚赖的jar包都是随着spring一起发布的,现在spring4已 经不再发布倚赖包,需要你自己去导入 1.org.springfr ...

  2. Visual Studio 2015 Enterprise - 企业版 - 简体中文

    文件名称 文件大小 百度网盘下载 微软官方下载 Visual Studio 2015 Enterprise - 企业版 - 简体中文 3.89GB http://pan.baidu.com/s/1bn ...

  3. Oracle管理监控 之 rac环境密码文件管理

    密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. RAC环境中多个节点的密码文件应该保证一致,否则 ...

  4. Windows中的DNS服务——正向解析&反向解析配置 分类: AD域 Windows服务 2015-07-16 20:21 19人阅读 评论(0) 收藏

    坚信并为之坚持是一切希望的原因. DNS服务是AD域不可或缺的一部分,我们在部署AD域环境时已经搭建了DNS服务(windows server 2008 R2域中的DC部署),但是DNS服务的作用还是 ...

  5. 【ArcGIS for SivlerLight api(3)】基础图层增删改查

    1.基础底图通常使用TiledLayer或者ArcGISDynamicLayer. 本质上都是在本地加载栅格图片.后台生成策略不同而已.从Vs2010的控件栏上拖过来的Map控件默认添加的底图是Esr ...

  6. State of the official Elasticsearch Java clients

    Elasticsearch Java Clients | Elastic https://www.elastic.co/blog/state-of-the-official-elasticsearch ...

  7. code sandbox & mlflow

    https://codesandbox.io/ https://www.jianshu.com/p/d70b25bf3cf4 https://my.oschina.net/u/2306127/blog ...

  8. EOS主网节点部署

    EOS主网节点部署 #环境 ubuntu 16.4 EOS编译安装 EOS主网节点部署 eos区块查询.进程监控shell #EOS编译安装 #环境 ubuntu 16.4 # EOS安装部 # 以下 ...

  9. 监听checkbox事件

    <!DOCTYPE html> <html> <head> <title></title> </head> <script ...

  10. PROPAGATION_REQUIRES_NEW VS PROPAGATION_NESTED

    PROPAGATION_REQUIRES_NEW, in contrast to PROPAGATION_REQUIRED, uses a completely independent transac ...