首页 » 技术分享 » iMobile中灵活运用图层,你知多少

iMobile中灵活运用图层,你知多少

 

**作者:xinxin

      在GIS项目中我们经常用到地图和场景,而不管是在二维还是在三维中,对象都是在二维图层或者三维图层中绘制和渲染出来的。不同的图层功能和特性都不一样,灵活运用图层不仅能快速做出功能还能提高性能,下面就SuperMap iMobile for Android中灵活运用图层做一个分享:
####一、 二维图层
在SuperMap iMobile for Android中二维图层可以分为:普通图层(Layer)、跟踪图层(TrackingLayer)、动态图层(DynamicView)和屏幕图层(ScreenLayer)。
1、 普通图层
指各种数据集加载到地图中对应的图层和由各种数据集生成的专题图图层等。
(1)使用场景
在图层上显示的对象需要保存在数据集中和制作各个图层的专题图,在普通图层中可以添加矢量数据、影像数据和栅格数据,在线数据加载到地图窗口上是以影像数据显示的。
(2)风格设置
1) 统一风格设置可以用layer. setAdditionalSetting(LayerSetting layerSetting),其中LayerSetting分矢量图层设置类(LayerSettingVector)、影像图层设置类(LayerSettingImage)和栅格图层设置类(LayerSettingGrid);
2) 对矢量图层中的每个对象设置不同风格可以用单值专题图,单值专题图类ThemeUnique,具体方法是map.getLayers. add(Dataset dataset, Theme theme, boolean addToHead),其中单值的标识是通过表达式字段确定的;
3) 对矢量图层可以分段专题图分段设置对象的风格,分段专题图类ThemeRange,该图层添加到地图中的方法和2)类似,需要通过对每段子项中设置风格;另外栅格图层可以通过ThemeGridRange创建分段专题图。
2、 跟踪图层
每个地图显示时都有一个跟踪图层,存在于地图各图层的最顶层,且是一个空白的透明图层,只要地图显示该图层就存在,不可删除也不可改变其位置。
(1) 使用场景
主要临时存放和显示几何对象,不将添加的几何对象存储在记录集中,如量算时画的线或面的显示和轨迹回放的显示;在跟踪图层上添加对象可用trackingLayer. add(Geometry geometry, java.lang.String tag)。
(2) 风格设置
在往跟踪图层上添加geometry时,通过geostyle设置geometry的风格。
3、 动态图层
是一个动态层控件,是直接添加到地图显示控件容器类MapView中的。
(1) 使用场景
与跟踪图层显示类似,在动态层上只临时显示几何对象,不存储到记录集中;在MapView中可以添加多个DynamicView,而每个动态层中可以添加点、线、面和文本动态对象,动态层上添加对象的方法dynamicview.addElement (DynamicElement element);动态层上添加的对象还可以进行动画效果,目前支持四种动画效果(AlphaAnimator, RotateAnimator, TranslateAnimator, ZoomAnimator);
(2) 风格设置
可以通过DynamicStyle设置添加的动态对象DynamicElement设置风格,可以用本地图片设置动态对象风格。
4、 屏幕图层
每个地图窗口只有一个屏幕图层,默认不显示,需要在OpenGL模式下使用,屏幕图层对象坐标需要设置屏幕坐标系,屏幕图层添加对象的方法:ScreenLayer.add(Geometry geometry,java.lang.String tag);
小结:跟踪图层和动态层与普通图层最大的却别是它们只是用来临时显示几何对象,不用存储在记录集中,在显示的效率上要快于普通图层;而动态层相比跟踪图层可以进行的对象的动画效果。
####二、 三维图层
场景中包含普通图层(Layer3D)、地形图层(TerrainLayer)和跟踪图层(TrackingLayer3D)。
1、 普通图层
根据加载的数据不同可以分多钟图层类型(Layer3DType),目前支持的有影像文件图层(IMAGEFILE)、KML图层(KML)、BingMaps影像图层(l3dBingMaps)、OSGB格式文件图层(OSGBFILE)、矢量文件图层(VECTORFILE)和WMTS图层(WMTS),下面就将几种常用的三维普通图层:
1) 影像文件图层:主要存放影像数据的图层,在iDesktop对场景中的影像数据切缓存类型选影像,在移动端打开该场景缓存获取的图层就是IMAGEFILE类型;
2) OSGB图层:又叫三维切片缓存图层(Layer3DOSGBFile),OSGB缓存为一种数据存储格式,它具有数据可见范围更大、加载效率高、层级切换平滑及占用内存和CPU更低的优势。倾斜摄影模型、BIM、管线、精模数据、矢量缓存数据均可以采用此种格式存储。osgb模型可以用面区域来压平,并将面对象中某个属性赋给面区域压盖下的模型对象;
3) WMTS图层:可以将iServer发布的wmts服务加载在WMTS图层上显示,具体方法是Layer3D.add();
2、 地形图层
iDesktop中切Android设备爱场景缓存时地形类型要选Tin类型,在地形图层集合中还可以添加在线的三维地形图层TerrainLayers.add(java.lang.String url, java.lang.String name);
3、 跟踪图层
和二维图层类似,在每个场景显示时都有一个跟踪图层,也是一个空白的透明的图层;在三维的跟踪图层上不仅可以添加二维对象,还支持三维点、线、面和模型对象的支持,添加的具体方法:TrackingLayer3D.add(Geometry geometry,java.lang.String tag)。

转载自原文链接, 如需删除请联系管理员。

原文链接:iMobile中灵活运用图层,你知多少,转载请注明来源!

0