1. 程式人生 > >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)。