在osgearth里头画线
osgEarth用户手册
这个文件建立了一个地图“MyMap”,geocentric 类型,GeoTIFF 图片源 名称是“bluemarble”(GeoTiff 是包含地理信息的一种 Tiff 格式的文件)。驱 动 driver 属性告诉 osgearth 哪个驱动去加载这些图片,所有子元素针对特定 的驱动。
2.1.2.多重图像层 osgEarth 支持有多个图像源的地图。这允许你创建的地图时,在基础层上
featuregeometryosg的几何渲染矢量数据featurestencil使用模板缓冲技术褶皱化地形矢量数据simple加载外部模型并放置在场景图421featuregeometrymodeldriver建立矢量特征数据的osg几何形状如今这个驱动程序可以简单的将矢量数据嵌合进几何图形中同时会有一个可选择的高度偏移这样你可以将几何图形放置于地形上将来它将支持足迹挤压纹理化和其他一些功能
mu lt ipas s
复合材料由多个渲染的图像,通过对场 景图。这种技术对图像层, 你可 以有数量没有限制,但可能会影响性能 ,因为每个额外的层意味着 另一 个渲染传递的场景图。
10
示例:
<map> <options> <terrain> <compositor>multitexture</compositor> </terrain> ... </options> ...
optional
<image>
图像图层。随着 osgearth 的合成器 compositor 使用,你的电
脑图像显示硬件将决定<image>层可以显示的最大数量 。
optional
谷地绘制等高线步骤
谷地绘制等高线步骤利用谷地GoodyGIS可轻松快捷、方便高效地在地球上生成等高线,并导出为AutoCAD 的dxf格式文件。
先看看效果,如下图。
====================================================================== 目录1 用谷歌地球高程数据绘制等高线2 用本地DEM数据绘制等高线1 用谷歌地球高程数据绘制等高线第一步:点击高级菜单,打开等值线绘制界面。
第二步:绘制矩形或多边形,并用鼠标左键点击它,识别状态显示成功。
第三步:设置采样点间距、等高距和等高线颜色等参数。
是否叠加高程标注,标注密度也可以设置。
第四步:点击提取高程并绘制等高线按钮。
地球窗口会移动,并调用surfer软件生成等高线,叠加在地球上。
如果范围较大,高程点数太多,可能会持续较长时间,请耐心等待。
等高线成功生成后叠加在地球上,如下图:第五步:导出AutoCAD的dxf格式文件。
首先需要选择输出坐标系,最好是选择平面坐标系,如北京54、西安80和UTM。
别忘了设置坐标转换参数哦!至此,等高线绘制并导出完成,我们用AutoCAD或南方CASS打开导出的dxf文件,如下图。
默认叠加图层有高程点、等高线、高程标注,可以任意编辑和删除图层。
2 用本地DEM数据绘制等高线第一步:点击高级菜单,打开等值线绘制界面。
第二步:绘制矩形或多边形,并用鼠标左键点击它,识别状态显示成功。
第三步:勾选是否采用加载的本地DEM数据。
如果还没有加载本地dem数据,则弹出加载DEM文件对话框,点击导入本地DEM文件,选择多边形所在区域的dem文件,以粉色边框表示。
当多边形范围跨多个dem网格时,需加载相应的多个dem数据文件。
到此,我们可以将dem网格隐藏,以便于后期操作。
第四步:设置等高距。
由于SRTM高程数据自身采样分辨率为90米,因此无需设置采样点间距,默认为90米。
第五步:点击提取高程并绘制等高线按钮,系统自动从加载的dem文件提取高程,并调用surfer软件生成等高线,叠加在地球上。
如何利用谷歌地球制作等高线
看mapgis中是 否加上带数,
5
影像的校正:首先打开参照文件,然后删除所有控制点, 再重新添加控制点,选择明显的地物作为控制点。
2 添加控制点, 按空格选中 1删除所有控制点
4几何校正,生成新的msi影像。
3 校正预览后,才能进行几何校正
6
加载到mapgis中,发现基本吻合,这样可以便于后期等高线 校正中查找控制点的坐标。
五、获取影像图
返回目录
1
打开mapgis主菜单,在进行等高线校正之前,建议先将影 像加载到mapgis中,便于后期控制点的选择。
影像校正
2
影像图可以选用国土局提供的,也可以利用稻歌软件自己从 谷歌地图上下载。下载完成后格式为tif,需要转换成msi格式
获取左上角和右 下角的坐标
地图级别越高, 越清楚
误差校正
4 打开复位要校正的线文件,选择控制点,进行等高线的校正。
2选择采集文件 1设置控制点参数 3添加校正控制点
4对线文件进行校正 5 保存线文件和控制点, NEWLAN.WL是最后的 校正完的线。
5
最后,修改等高线的参数,与原来的等高线进行衔接。进 行图面的整饬与美化。
说明:
1.由于Google地球部分地区的影像数据可能 不是最新的,因而数据的准确性不能保证。 2.关于等高线的制作方法还有其他方法可以生 成,可以后期交流。 3. 由于技术原因,其中有不足之处,希望大 家可以批评指正,以供完善。
3
搜索目的地,选择合适的区域
4
可以对边界进行调节,只能缩小,不能放大。 选择合适的边界点和中点,单击“捕捉”, 可以重复上述过程,选取区域进行合并(建 议少选,否则后期处理困难,一般1-3个为 宜)。出现提示框单击“确定”。
osg earth笔记(下载)
osgEarth学习笔记这是个人在学习osgEarth时根据体会或从别的地方看到的做的一个简单整理,有些东东就是官方文档翻译过来的,都是根据自己的需要感觉需要记录下来什么东西就随便记录下来了,也没有个条理,都是用到哪记到哪,别见怪。
对个人在初期使用osgEarth时有很多帮助,所以特发上来,希望对大家也有帮助osgEarth学习笔记1. 通过earth文件创建图层时,可以指定多个影像数据源和多个高程数据源,数据源的顺序决定渲染顺序,在earth文件中处于最前的在渲染时处于最底层渲染;所以如果有高低精度不同的影响数据或者高程数据,在创建earth文件时要将粗精度的数据放在上方xml节点,高精度的放在其下面的节点;2. osgEarth自带多种驱动器,不同的驱动器驱动不同的数据源,自己也可以扩展驱动器读取相应的数据;3. 可以通过profile属性指定数据的投影方式或者数据分页方式以及地理空间延展;osgEarth通过profile创建数据四叉树,每个四叉树节点数据瓦片通过TileKey类来标示;一个地形数据能否正常工作要看创建它的驱动器是否能够创建和对应profile兼容的数据瓦片;比如,如果要生成地球数据,就需要指定global-geodetic 或者global-mercator profile,相应的数据源要能够在这种profile下生成相应的地形数据;4.通过earth文件,最基本的也是最主要的功能是我们可以指定生成地形的坐标属性(地理坐标或投影坐标)影像数据、高程数据、矢量数据、模型数据、以及缓冲位置,通过这些基本要素就可以轻易生成我们想要的地形;5. osgEarth只能使用16或32位的高程数据源;6. 如果直接使用原始的影像、高程以及矢量数据,可以用GDAL驱动器,在这种情况下需要注意几个性能的问题。
第一,将数据源预先进行坐标变换,变换为目标地形坐标,否则osgEarth会对源数据进行坐标投影变换,这将降低数据的加载及处理速度。
osgearth各个例子功能概述
osgearth各个例⼦功能概述转⾃:/wl198302/article/details/21177309最近在学习osgearth,对其还不是很理解,有些例⼦不会运⾏,有些可以,把可以的做个统计,以备后⾯查⽤。
1、osgearth_graticule:⽣成经纬线。
2、osgearth_annotation:各类标注(点、线、⾯、模型、⽂本等)。
3、osgearth_city:加载⼀个城市三维模型,可以浏览。
4、osgearth_clamp:在⼀个区域加载⽣成5000个树⽊的三维模型展⽰。
5、osgearth_colorfilter:运⾏不起来……6、osgeatth_controls:有⼀个osg的图标,可以控制透明度与⽅向。
还有⼀些⽂本矩形框之类的。
7、osgearth_demo:qt的⼀个集成地球的例⼦8、osgearth_elevation:显⽰⿏标所指位置的经纬度、坐标系、⾼程(MSL\HAE)、分辨率。
不过运⾏⾮常缓慢。
9、osgearth_featureeditor:添加⼀条线,并可以修改线的节点与颜⾊(编辑时,线的形状变为虚线段)。
10、osgearth_featurfilter:出来⼀个地球,不知道需要什么数据才能运⾏出效果。
例⼦给出的⽤途为-简单的功能过滤,改变数据源特征属性的值。
11、osgearth_featureinfo:不是界⾯程序,不知道⼲嘛的……12、osgearth_featuremanip:出现⼀个地球,没明⽩⼲嘛的……13、osgearth_featurequery:同上……14、osgearth_imageoverlay:在地图上叠加⼀张gif图⽚,并可以控制图⽚的透明度。
15、osgearth_features:代码建⽴地图,并加载各国分界线的shp数据。
16、osgearth_los:以稍稍⽔平的视⾓,显⽰飞机模型绕⼀点旋转,还有⼀些运动对象。
17、osgearth_manip:地球上⽣成⼀个⽴体的helloworld⽂字,并且可以控制⽂字⾏⾛,快速定位不同级别的视点,让⽂字始终在屏幕中央,地球滚动,很好的功能 O(∩_∩)O~18、osgearth_map:代码⽣成地球tms地图图层。
google earth做图说明
1.打开一张图(如上需截取的是黄色边界),若为图片格式,则用ps打开,点击滴管工具->鼠标变成滴管后点击黄色区域,前景色变为黄色如图;然后菜单栏“选择”->“色彩范围”:弹出如下窗口然后调整颜色容差,差不多是上图这个白色部分是要选择的部分->点击确定(注意不要出现灰色部分,灰色部分表示此位置选择了一部分颜色,如淡黄深黄色等,白色是黄色部分所有颜色,黑色才是完全没有选中);多出的部分用选择工具+左上角选择然后在图中拉框截去多余部分,点击“选择”->“扩大选取”(表示选取边界旁边部分,如用此工具可使边界连续)->重复“扩大选取”。
直至选择范围过大时点击“编辑”->“还原扩大选取”;用鼠标在图中任一位置右击,在弹出的对话框中选择“通过拷贝的图层”,在图层窗口可见多了如下一个图层,(把下面背景图层的小眼睛点掉,可以看到图变成以下样子:)在图层窗口右击图层1,弹出的对话框选择“复制图层”,弹出如下对话框注意文档选择下拉菜单中的“新建”->“确定”,现在看右边那个图层窗口现在就是新图的只有一个图层的文件啦名字叫未标题-1,然后选择“文件”->存储为“png”就可以了,最好存成png,不然google earth添加进去会有白色背景,png添加进去就是无色背景。
2.如果是cad的图可以用coreldraw打开,保存成tiff或者png都可以,这两个是无压缩,文件比较大,保存成jpg也可以,coreldraw支持的格式还是蛮多,但是cad数据太大了好像用coreldraw打开总出错,如果是这种情况,可以把cad的图导成问wmf,也比较清楚的,或者导成几块,再拿去ps里面拼成一个大的就完啦~~~~3.Google earth里面要添加是“添加”->图像叠加层。
那个是手工放大或者比对就可以的,很简单的,我上次跟刘红说了下,比如安陆的话不是一般可研里面会给经纬度的范围,在google earth上标注四个角点,然后用提取的那个边界就可以比较准确了,或者用铁路和国道省道比对也可以,googleearth 上有国道省道。
利用googleEarth绘制地形图教程
利用google Earth自制地形图Google在国内推出高清图以后,的确极大程度地方便了我们的生活,我们可以在上面肆无忌惮地查找任何感兴趣的地方,清晰的卫星图像足以使我们身临其境。
但是,不光如此,google earth除能提供详细的地理经纬度、三维立体图外,还提供有一项重要数据:海拨高程。
它的显示精度达到了1英尺(约0.3m),要知道,目前普通的GPS导航器的高程定位精度只有2.5m,这样,我们就完全可以利用这些空间数据来自制地形图了。
地形图上的首要要素便是等高线,而等高线的正确与否主要取决于地性线(山脊线、山谷线)。
所以,绘制地形图的思想便是:沿山脊线或山谷线隔一定距离将每一个点的三维坐标量取下来,再经过适当地加密测点,然后通过CAD进行展点,最后用内插法绘制等高线。
但是,这样的获取方法对每个点都需要记录三个坐标,即B(地理纬度)、L(地理经度)、H(大地高)。
如此,不仅使获取的工作量很大,对以后的展点也是一个负担。
这时我们可以采用一个简化的方法:只记录大地高,而将经纬度取为默认(每次都以一个起始经度或纬度开始,等距取点),这样便极大提高了取点速度。
关于经纬度的取点密度,传统地形图的规定一般为“图上距离每间隔3cm”,但传统地形图的每张图都要涉及到比例尺,而显示屏的出现则完全颠覆了它的概念。
对此,我认为:既然人眼在地图上所能分辨出的最小距离是0.1mm,而显示器的象点距离一般都为0.2xmm,那么可令显示器上每个象素为纸质地图上的0.1mm,这样就可以得到一个大概的比例尺,从而可以确定出取样点的间距了。
地形图比例尺与等高线的关系如下:对于要绘制一幅相当于2.5万分之一的地形图,即图上1cm相当于实地的250m,那么可按750m的间距取点。
地理纬度在赤道附近每秒约合实地30m(赤道周长40030km/1296000″),在中纬度地区值不会相差很大,经度每秒亦可按30m取值。
例如每隔3″取值,在一个2′×2′的范围内(约13平方公里),只需360个点,一个多小时就可以获取完毕。
osgEarth数据加载及组织解析-推荐下载
1.1 读取 earth 文件
Байду номын сангаас
读取earth文件
分解Conf属性 构建map对象
根据map对象及 options对象,创 建mapNode节点
将mapNode节点加入场 景图中,通过分页LOD 动态调度进行组织渲染
图 3.1 osgEarth 数据加载整体流程
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术通关,1系电过,力管根保线据护敷生高设产中技工资术0艺料不高试仅中卷可资配以料置解试技决卷术吊要是顶求指层,机配对组置电在不气进规设行范备继高进电中行保资空护料载高试与中卷带资问负料题荷试22下卷,高总而中体且资配可料置保试时障卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看2度并22工且22作尽22下可22都能2可地护1以缩关正小于常故管工障路作高高;中中对资资于料料继试试电卷卷保破连护坏接进范管行围口整,处核或理对者高定对中值某资,些料审异试核常卷与高弯校中扁对资度图料固纸试定,卷盒编工位写况置复进.杂行保设自护备动层与处防装理腐置,跨高尤接中其地资要线料避弯试免曲卷错半调误径试高标方中高案资等,料,编5试要写、卷求重电保技要气护术设设装交备备4置底高调、动。中试电作管资高气,线料中课并3敷试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
利用google earth制作地形等高线,代替地形图
利用google earth制作地形等高线,代替地形图SRTM数据主要是由美国太空总署(NASA)和国防部国家测绘局(NIMA)联合测量的,SRTM的全称是Shuttle Radar Topography Mission,即航天飞机雷达地形测绘使命,2000年2月11日上午11时44分,美国“奋进”号航天飞机在佛罗里达州卡那维拉尔角的航天发射中心发射升空,“奋进”号上搭载的SRTM系统共计进行了222小时23分钟的数据采集工作,获取北纬60度至南纬56度之间,面积超过1.19亿平方公里的 9.8万亿字节的雷达影像数据,覆盖全球陆地表面的80%以上,该计划共耗资3.64亿美元,获取的雷达影像数据经过两年多的处理,制成了数字地形高程模型,该测量数据覆盖中国全境。
好了,刚才简单介绍了SRTM地形数据,现在开始进入正体、,如何在Google Earth里面显示等高线呢?先下载Srtm数据,可以参考下面的链接Srtm 中国区域文件名查询图也可以直接到/SELECTION/inputCoord.asp去下载下载后得到一个zip压缩包,解压开来,会有一个70M的tif图片用PHOTOSHOP打开来,如下图,几乎是黑色一片,只能分辨出海岸线,看图像属性,可以知道是一个16位通道的灰度图片,我们常用的JPG图片都是8位通道。
下载Global Mapper,网上可以搜索一下,这是一个强大的地图格式转换软件,几乎无所不能。
ok,安装好以后,打开tif地图察看,完全不一样了(可以点击enable hill shading 按钮显示立体效果),山脉清晰可辨,大好河川展现在眼前。
开始创建等高线,选择file\generate contours,出现等高线创建对话框,在"descripti"处输入等高线的名称,可以自己定义。
contour interval这里设置等高线得分度值,常规20米就足够了,如果是小面积的一座山(10km以内),也可以分10米下面的选项可以如图中一样勾选,其中"append unit label..."是必须要选的,其作用是在等高线上面用文字标出高度ok,转到Simplification页面,拖动划块来控制采样的精度,向左精度高,文件也大,处理时间长,向右则相反。
Google Earth展点的三种方法
将测线展绘至Google Earth中的几种方法 Google Earth的免费卫片资源在各行各业有着广泛的应用,如何将物探测线展绘至Google Earth上,为指导我们工作更好的服务,笔者进行了如下的探索:Google Earth最主要的数据格式有两种:一是Google Earth格式,即kml,kmz等专门支持Google Earth的数据格式;二是GPS通用数据格式,即Gpx数据格式。
本文就第二种数据格式,即Gpx数据格式得获取进行探讨。
一、 应用微软的EXCEL以及Mapsource软件Excel强大的函数功能几乎无所不能,只要我们弄清楚了Gpx数据格式的构成,就能用Excel的函数功能进行数据的转换,从而得到我们所需的数据。
Gpx数据格式是基于WGS‐84坐标系,且坐标单位为度,即其格式为(DDD.ddddddddd°)。
打开Excel,在A1单元格中输入公式:=”<wpt lat=”&””””&C1&””””&”lon=”&””””&D1&””””&”>”&”<name>”&B1&</na me>”&”<sym>Waypoint</sym></wpt>” ,在B1列中输入桩号,在C 列、D列中分别输入纬度和经度,利用Excel序列功能可生成航点属性。
复制A列,在原位置选择性粘贴为数值,将其他列删除,保存为waypoint.csv即可。
打开Mapsource(Garmin导航仪自带软件),随意输入几个航点,保存此文件,保存类型设为“GPS交换格式(*.gpx)”,文件名为“waypoint.gpx”,以备下步工作需要。
应用UltraEdit编辑器,打开waypoint.gpx,将Excel中生成的waypoint.csv数据复制粘贴至最后一行</GPX>前,删除前面在Mapsource中随意输入的航点数据后保存文件,文件类型不变,仍为*.gpx格式,这样我们就得到了航点的GPX数据格式文件。
利用google地球画高程图
高程图:用来表示某一区域海拨高低(即高程)的图。
可在google地区上画
志,
1、以济南市为起点至泰安市各做一个地标,按下图中左键单击地标标
弹出对话框,将弹出的地标移至所在位置,标注名称后保存;
2、在上图内找到路径工具单击,弹出对话框并在图上出现一个十字光标,为对话框的路径命名,点开颜色/样式设定路径线条颜色、线条宽度(3-5)、度量单位设为公里,放大卫星图至可以分辨道路,从济南地标处开始画出路径,按住鼠标左键沿道路画出路径,画面太大时可松开鼠标左键用键盘方向键移动地图,直至从起点画到终点,路径完成。
单击对话框的确定,即在左侧“位置”中保存了这一路径,单击“文件-保存-保存图像”命名后确定即可保存为jpg格式文件用于打印。
3、右击“位置”栏中刚刚保存的路径,单击“编辑—显示高度配置文件”,图片下出现高程图,在高程图中移动光标可实时显示该位置距起点公里数、高度等信息,同时在地图上出现一个红箭头指示高程图中所对应的位置。
此时可以再次保存该图,就是带有高程图的卫星图了。
高程图显示最低海拔、平均海拔、最高海拔,距离及误差等信息。
基于OsgEarth绘制线状矢量数据的模板体技术
基于OsgEarth绘制线状矢量数据的模板体技术杨俊杰【摘要】This paper introduces a method of stencil volume of rendering linear vector data in OsgEarth, based on OSG and terrain which construted by DEM, Martin Schneider's method of vector data rendering idea; it has advantages such as real-time, efficiency and accuracy. Then author generalizes the structure below the visual of scene. Lastly, it was demonstrated being practicable, but still has some is its orginal hierarchical defects.%结合Martin Schneider矢量数据渲染算法,基于OSG开源平台及DEM构建的地形,分析了OsgEarth中绘制线状矢量数据的模板体技术和该技术所隐藏的场景层次结构.通过实践证明了该技术的可行性,表明其算法具有实时性、高效性和精确性等优点,探讨了该技术所存在的难点问题.【期刊名称】《韶关学院学报》【年(卷),期】2012(033)008【总页数】4页(P17-20)【关键词】模板体;OsgEarth;线状矢量数据;包围体【作者】杨俊杰【作者单位】韶关学院旅游与地理学院,广东韶关512005【正文语种】中文【中图分类】P208.2三维可视化系统已经成为当前的技术宠儿.由于传统二维矢量数据模型是GIS中一种重要的数据模型和数据源,因此,三维可视化系统对于传统数据模型的兼容成为一种急切的需求.同时矢量数据在虚拟场景的分析和处理中有着重要的应用.尤其是随着计算科学技术的进步,三维地理信息系统、数字地球及虚拟地理学等学科的发展要求地理空间矢量数据与可视化的地形完美匹配,包括矢量数据与地形表面相适应,以确保绘制精细和高效的三维场景图(包括地形、地物要素等),Martin Schneider等人提出了一种虚拟场景矢量数据的高效及精确渲染的方法,该算法具有实时性,精确性、高效性等优点.OsgEarth是用C++开发的一款基于OSG开源图形平台的地形渲染工具,其内部包含一种模板体技术,用于矢量数据在地形上面的精细绘制,该技术就是基于Martin Schneider提出的虚拟场景矢量数据的高效精确渲染算法并加以改进而实现的.笔者在上述理论和技术的基础上实现了大范围场景及数据的实时精细显示,并对绘制线状矢量数据模板体技术进行分析.当前矢量数据在地形上面的绘制主要有两种实现方式,分别是基于纹理的技术和基于几何体技术[1].Martin Schneider所提出的虚拟场景矢量数据的高效及精确渲染算法是一种基于矢量数据创建几何体的算法,基于屏幕空间且具有像素级的精度(每个像素都是精确的),不会出现基于纹理方法所产生的模型绘制走样失真的现象.另外,该算法不会受到地形几何数据的制约(独立于其下面的地形几何数据),它的执行效率和整体的数据集(除去矢量数据自身,其实指的就是地形数据)复杂度无关,而仅仅与矢量数据自身复杂度有关.该算法中的技术实现过程包含三部分:由矢量数据构建多面体,渲染多面体到模板缓存用来创建掩膜,然后应用掩膜到场景.OsgEarth是基于OSG 开发的一款开源地形生成系统,从网络数据源获取数据(亦可从本地读取数据),实时优化、构建及显示地形模型,用以开发地理空间应用程序[2].图1给出两幅笔者以OsgEarth构建的地形模型的显示效果图,图1中的右图是基于左图中的DEM数据创建的三维地形模型.OsgEarth中加入了要素模板驱动,该驱动是以矢量数据渲染理论和技术为基础而编写的.它是一种模型驱动,而非影像或高程驱动.在实现过程中,需加入OGR等要素驱动才能得以实现矢量数据在地形上的绘制.在配置该驱动时候,需要设置feature、style、class、extursion_distance等选项,其中feature为必须设置的元素,用于将要渲染的要素信息,包括名称、要素驱动及数据源等子元素,其它为可选设置元素.本文以线状矢量数据为例,面状矢量数据与线状矢量数据的模板体绘制算法有些不同之处.点状矢量数据不存在矢量数据在地形上的渲染问题,直接将点状矢量数据绘制或覆盖在地形数据之上即可.3.1 准备工作在构建模板体之前,需要进行一些准备工作,为模板体的构建及绘制提供必要的准备.首先,设置视景器(viewer),为显示设置实例分配足够的模板位(stencil bits).其次,获取线状矢量数据对象,为线状矢量数据创建数据副本,用于模板体的构建操作;将线状矢量数据放入缓冲区,将数据转换到当前地图的空间参考系统中,以此方式获取线状矢量数据顶点;对线状矢量数据进行重采样,设置模板体的“突出”距离,即给定疏密度的阈值,根据疏密度的阈值大小来设置采样滤波对象扰动阈值.由于我们的场景是一个球体,线段上的采样点需要符合球体的曲率.设置缓冲值可以有效的去除共线点,使用采样点构造可用的细分线段.3.2 构建模板体构建模板体需要挤压线状矢量要素的几何体,同时在挤压的两个方向上构建轮廓,由此来建立模板体.首先,对几何体的数据进行偏移设置并计算该几何体中环的数量,该偏移操作是针对要素的几何体而进行的,在进行偏移计算前,需将几何体的向量值转换为世界坐标系中的向量,偏移计算后,将该计算值转换为局部坐标系,然后更新几何体数据值.由于经采样后的几何体内可能存在共面的线段,会打乱构建模板体的逻辑,因此,需要遍历几何体,移除该几何体共面的线段.经过上述的计算后,采样后的几何体已经满足创建模板体的要求.根据模板体的高度参数,分别得到模板体顶面、底面及模板体轮廓的三维向量数组.由于模板体轮廓是闭合的,将轮廓几何体的三维向量数组的后两组数据值赋以前两组数据相同的值,这样就可以满足闭合的要求.综上所述,建立模板体的过程,即创建模板体轮廓体、顶面和底面三部分的过程,将各部分的三维向量数组分别赋以轮廓体几何体、顶面几何体和底面几何体.3.3 模板体的显示为了得到场景中数据最优的显示效果(见图2),通常需要对模板体的类型(如线宽度、颜色、名称及光照等)进行设置.模板体属于OSG体系结构中的几何体类型,该类型的显示需遵守OSG中的场景组织结构,即结合包围体层次进行场景图形的管理.这里的“包围体”指的是将一组物体完全封闭在一个简单的空间形体中,从而提高各种检测的运算速度.采用包围体层次的场景图形通常采用树状结构来保存信息.一棵场景树包括一个根节点、多级内部的枝节节点,以及多个末端的叶子节点.根节点和枝节节点负责构建树的层次,以及完成某些特定的功能,叶子节点则保存了某一个或多个可绘制对象的信息.这种场景图包围体层次树不仅可以正确地表达场景图形的信息组成,还可以加速场景对象的裁剪、相交测试、碰撞检测等一系列操作,是应用最广泛的空间数据组织结构之一[3].为了便于表达和理解,本例中的场景包围体层次树[4]结构图(如图3)对模板体节点的层次结构进行了简化,如将某些节点信息进行整合为某一子节点进行表达,或父节点与子节点存在数据类型一致的情况而存在,又或某个节点在数据类型上本质上并不是一个节点类型,而为了展现某种特性,也将其用图示表达为一个节点.图中模板体节点作为整个层次树的根节点,实际在OsgEarth实现矢量数据在地形上的显示时,并不是真正的根节点,而是作为一个枝节节点而存在的.该示例仅将此部分场景层次树作为整体来表示,因此将该节点比作为根节点.图中枝节节点为模板体组节点、模板体类型组节点及多个模板体几何节点.轮廓体几何体、顶面几何体、底面几何体、线符号节点、颜色节点及渲染属性节点等作为场景树的叶子节点存在,它们的内部包含了多个可绘制物体的信息及相应属性、元素信息等.本文对OsgEarth中线状矢量数据绘制的模板体技术进行了详细的解析,并在基于DEM构建的地形基础上进行显示.其理论依据为Martin Schneider矢量数据渲染算法,基于OSG开源平台开发的模板驱动技术.Martin Schneider提出该矢量数据渲染算法具有实时性、高效性及精确性等优点,然而,当矢量数据的存储量及复杂度线性增加时,OsgEarth中源于Martin Schneider提出的矢量数据渲染算法的模板体技术在实际应用过程中,对计算机硬件性能的要求不断提高,该问题将成为今后工作中急需解决的一个难点.【相关文献】[1] Martin,Reinhard.Efficient and accurate rendering of vector data on virtual landscapes [J].Journal of WSCG,2004:59-65.[2] Gwaldron.Introduction of OsgEarth[EB/OL].[2012-02-06]..[3]王锐,钱学雷.OpenSceneGraph三维渲染引擎设计与实践[M].北京:清华大学出版社,2009.[4]杨俊杰,臧淑英,姜美芳.虚拟现实中的物理引擎ODE与虚拟引擎OSG结合探讨[J].测绘与空间地理信息,2010,33(1):66-68.。
gis绘制道路双线在线里标注
gis绘制道路双线在线里标注制作电子地图时,经常要给地图中的道路添加标注,也就是地图制图中常说的沿线标注。
地图中的沿线标注要兼顾合理与美观两方面,既要花时间和心思去设计,又要充分利用制图软件的相关功能,才能使理想与现实完美结合。
本文将从沿线标注的合理设计以及SuperMap软件支持两方面,介绍道路沿线标注的实践,使您的地图沿线标注有据可依。
为了使地图中道路及道路沿线标注更趋于完美,在准备道路数据的时候就得做好充分准备。
1、地图中的双线道路,在小比例尺下,显示上双线就会合并为单线,单在标注的时候双线道路还是单独标注,所以在经过一些避让处理后,有时标注将于设计有一点偏差,所以为了更加完美的沿线标注效果,建议对双线道路提取中心线,在小比例尺下,显示该单线及单线标注。
2、道路的标注进行合理的分类,有的道路标注为“G101”这种编号式的标注,有的为“三环路”这种标注;由于沿线标注将基于数据的某个字段进行统一标注,所以道路的不同种信息要存储在独立的字段里,或者根据您的标注需要进行分类存储,最好不要混淆在一个字段内。
如何制作上述这种标注风格,只需对道路数据制作“统一风格标签专题”,在专题图设置窗口中,确认“高级”选项卡中的“沿线标注”已经勾选。
选择标注字段,这里选择道路名称字段。
从上面的最初的沿线标注来看,沿线标注的文字方向,文字与道路的相对位置都是不合理的。
这里也是一些人不知所措的地方,下面就为您解决这个问题。
在“风格”选项卡,选择对齐方式为“中心点”,这样,沿线注就与道路线对齐了。
在“高级”选项卡,沿线显示方向为“从上到下,从左到右设置”,这样,沿线标注就符合道路名称的阅读习惯了,设置后的结果。
沿线标注相对于道路的位置已经调整好了,下面可以调整文字的显示风格,包括字体、字号、以及轮廓等其他风格。
maps地形线首曲线使用指南与注意事项
maps地形线首曲线使用指南与注意事项哎呀呀,朋友们!说到maps 地形线的首曲线,这可真是个重要的家伙呀!要想把它用得得心应手,那这份使用指南和注意事项您可得瞧好了!
首先呀,首曲线的标识您得清楚明白。
就像在迷雾中找到灯塔一样,准确识别它才能迈出正确的第一步哟!您瞧,如果稀里糊涂地弄错了,那可不就像在黑暗中迷路了嘛!
嘿,使用首曲线的时候,一定要结合实际地形去理解。
可不能孤立地看待它,这可不是玩拼图可以随便拼凑呀!要综合各种因素,就如同烹饪一道美味佳肴,各种调料得搭配得当才行。
哇塞,还有一点至关重要!那就是在绘制和解读首曲线时,精度的把控千万不能马虎。
稍微有点偏差,那结果可能就大相径庭啦!这就好比盖房子打地基,基础不稳怎么能行呢?
您想想看,要是在使用首曲线时不遵循规范,那不就像开车不遵守交通规则一样,会出大乱子的呀!所以,一定要严格按照相关标准来操作哟!
哎呀,别总是想当然地去解读首曲线的含义呀,要深入思考、仔细琢磨。
就像解一道复杂的数学题,可不能敷衍了事呀!
首曲线的使用可不是闹着玩的。
这可不是小孩子过家家,随便玩玩就行的。
您能随意对待重要的工作任务吗?当然不能呀,那对待首曲线也是一样的道理呀!
嘿呀,要是发现对首曲线的理解或者使用有错误,千万别犹豫呀,
赶紧纠正。
这就跟发现试卷上的错题一样,难道还留着不管吗?
听好了哦,使用首曲线要用心,就像对待珍贵的艺术品。
给它足够的重视和准确的运用,您能做到吗?
总之啊,maps 地形线首曲线的使用指南和注意事项一定要牢记哦,别等出了问题才后悔。
要好好对待这个重要的工具呀!。
教你用google地图画等高线
教你用google地图画等高线(20张)首先,你的电脑要安装了sketchup8.0和Rhino5.0,然后打开sketchup
view>toolbars>google,这时候你的界面里多了google earth的工具栏,点击add location
那么就允许我以我爱的家乡青岛为例子来做个示范哈.
在地图上找到要转化地形的区域select region 选择图幅大小
然后你的sketchup里就有了一个平面的地图
点击add location旁边的toggle terrain,出现立体图了,有木有!然后选择块,右键unlock
进到组里面,将模型全选改个材质呗...随便你们..
另存为我“大青岛”!
打开Rhino>文件>导入>选择需要的格式和文件
看到地形了有木有.
选择导入的地形,选择嵌面,我们需要重建一下曲面参数的话随便大家了,可以看下预览,合适就行
OK生成后,把导入的物体删除掉选择等距断面线
选择要被等距截断的物体
然后需要确定一个区域,比如我是从0,0,0点到模型的最高点,可以仔细看下左下角视图确定的线段
然后输入距离,这里我做的是5m的等高线,确定
OK,生成了等高线,这里要注意,电脑不好的童鞋一定不要设的高差太小,这样很容易崩溃。
删掉面,只剩下线了,这样可以导出DWG文件在CAD里画平面啦!OK 全部OVER 谢谢大家。
maps地形线首曲线使用指南与注意事项
maps地形线首曲线使用指南与注意事项哎呀呀,朋友们!说到maps 地形线的首曲线,这使用指南和注意事项可太关键啦!
你瞧瞧,首曲线就像是地图世界里的神秘密码,要是不搞清楚怎么用,那可就抓瞎啦!首先,使用的时候可得仔细,就像对待珍贵的宝石一样。
你得明白它代表的地形起伏和高程变化,这可不是随便看看就能懂的哟!
嘿,注意啦!千万别在解读首曲线的时候粗心大意,这可不像在公园里散步那么轻松。
一旦弄错了,那得出的地形信息可就全错啦,后果不堪设想!比如说,在绘制地图或者进行地形分析时,要是对首曲线的间距和形态理解有误,那不就像在黑暗中迷路一样?
哇塞,当你真正掌握了首曲线的使用方法,那可真是打开了地理世界的神奇大门!但要记住,不能盲目依赖首曲线,还得结合其他地形线一起分析,这就好比团队合作,缺一不可呀!
哎呀,使用首曲线的时候,要保持严谨的态度。
这可不是闹着玩的,就像做科学实验一样,一丝一毫的差错都不能有。
总之啊,maps 地形线首曲线的使用指南和注意事项一定要牢记心间,别等出了问题才后悔。
要好好运用这些知识,才能在地理探索的道路上走得稳稳当当呀!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mapNode->getMap()->toWorldPoint( GeoPoint(mapSRS,endline), endWorld );
// set the colors as before, plus using the above
osg::ref_ptr<osg::Vec4Array> colors = new osg::Vec4Array;
colors->push_back(osg::Vec4(1.0f,1.0f,0.0f,1.0f));
// makes 1 line segments.
osg::Vec3d startWorld;
osg::Vec3d endWorld;
osg::ref_ptr<osg::Vec3dArray> vertices = new osg::Vec3dArray(2);
// since we know up front,
linesGeom->addPrimitiveSet(new osg:rawArrays(osg:rimitiveSet:INES,0,2));
// add the points geometry to the geode.
geode->addDrawable(linesGeom);
}
void OSGEarthEngine::createLine(osg::Vec3d startline, osg::Vec3d endline)
{
const SpatialReference* mapSRS = mapNode->getMapSRS();
// create Geometry object to store all the vertices and lines primitive.
linesGeom->setColorArray(colors);
linesGeom->setColorBinding(osg::Geometry::BIND_OVERALL);
// set the normal in the same way color.
mRoot->addChild(geode);
//测试画线
osg::Vec3d startline(-155.150257, 63.390041, 220230);
osg::Vec3d endline(-165.150257, 63.390041, 0);
createLine(startline, endline);
线的画法和osg里头一样,可参看osggeometry.cpp,但是点的坐标需要经过转换,实践证明是可行的,应该也可以用到其它几何体上。新手上路,欢迎大牛们拍砖。
这部分放在main()或者InitSceneGraph( void )中
osg::ref_ptr<osg::Geode> geode = new osg::Geode();
osg::ref_ptr<osg::Vec3Array> normals = new osg::Vec3Array;
normals->push_back(osg::Vec3(0.0f,-1.0f,0.0f));
linesGeom->setNormalArray(normals);
linesGeom->setNormalBinding(osg::Geometry::BIND_OVERALL);
// This time we simply use primitive, and hardwire the numbபைடு நூலகம்r of coords to use
(*vertices)[0] = startWorld;
(*vertices)[1] = endWorld;
// pass the created vertex array to the points geometry object.
linesGeom->setVertexArray(vertices);
osg::ref_ptr<osg::Geometry> linesGeom = new osg::Geometry();
// this time we'll preallocate the vertex array to the size we
// need and then simple set them as array elements, 2 points