android gis 框架,三、ArcGis For Android:图层(Layers)
1、選擇什么類型的圖層
2、地圖圖層
3、操作層圖層
4、臨時的圖形
在ArcGis中,圖層是用來在地圖中顯示地理數據的。一般來說圖層的數據只會來自單獨的數據源,比如只來自map service URL或者只來自geodatabase數據庫中的表。圖層使用關聯的渲染器將數據渲染成可視化符號,圖層還可以為labels 和popups定義屬性,以便于更方便展示數據。圖層的數據和它的渲染方法是高度解耦的,所以開發人員可以能夠使用各種方式來展示數據。圖層的概念就如圖層的名字一樣,它在地圖中是分層的,即一層一層地堆疊著的,并且圖層的繪制是從底層到頂部繪制的。作為我們開發人員,我們可以控制圖層在地圖中的繪制順序,并且設置該圖層是否可見。在許多Map App中也提供的這種功能,它們允許用戶自己打開或者關閉圖層,讓用戶自己設置圖層的顯示順序。
簡而言之,圖層可以讓地理數據變得可視化,以便于我們可以探索,分析,查詢和編輯地理數據。ArcGis SDK為我們提供了廣泛的圖層類型,用來訪問各種不同的地理數據源,圖層的性能取決于數據的特性以及在app中如何訪問和顯示數據。
接下來我們主要描述圖層的類型,概述了圖層的特性,并且將詳細地說明我們通常如何使用圖層。圖層對象的獲取有兩種方法,第一種:我們可以通過現有的地圖來獲取圖層的引用。第二種:我們可以創建或者添加新的圖層來構建新地圖。
選擇圖層類型
圖層可以訪問各種地理數據源,這些數據源本質上是靜態的,我們需要根據地理數據源來選擇我們的圖層,使用圖層訪問和顯示數據,以及實現我們特定的性能標準。
數據源
1、在線數據源。由GIS服務器提供Web服務,例如ArcGIS Server服務。
來自ArcGIS Server的地圖服務分為兩大類:tiled(平鋪) 和dynamic(動態)。Tiled服務是基于圖層的平鋪方案提供預生成(緩存)圖塊。Tiled可以提供柵格圖像和矢量圖像。獲取到數據后,layer會在客戶端組裝這些數據塊。你可以使用tiled layer訪問tiled地圖服務。Dynamic地圖服務,該服務是在客戶端請求時,即時創建地圖圖像。你可以使用map image layer訪問Dynamic 地圖服務。
Feature(功能)服務可以讓我們訪問地圖里面的各個功能。比如我們在ArcGIS Server上有一個features services,ArcGIS Online和Portal for ArcGIS會從一個layer的可見范圍返回一個features 的set集合,或者屬性和空間查詢。所以,你可以使用feature layer訪問這種服務。
你還可以訪問mobile map packages 、tile packages、本地數據、還有網絡數據。本地的數據跟在線數據一樣,也擁有不同的layer類型,來訪問數據。
筆記:
臨時生成的地理數據(例如,查詢的結果或GPS的位置)通常在圖形疊加中在短期的基礎上顯示
Layer 類
Layer的體系結構,斜體的類名是抽象的。
Common layer properties(公共的layer屬性):
所有圖層類都從Layer類繼承公共屬性,Layer實現了Loadable接口。Loadable是用來異步加載Layer資源的接口。Layer也實現了LayerContent接口。關于Layer類和它的接口的一些公共屬性,如下所示:
1、獲取Layer的名稱,使用getName方法。
2、查看Layer的具體說明,使用getDescription方法。
3、獲取Layer的完整范圍,使用getFullExtent方法。
4、獲取Layer使用的空間參考,使用getSpatialReference方法。
5、隱藏或者顯示Layer,使用setVisible方法。
6、控制圖層的透明度,使用setOpacity方法,和opacity屬性。
7、更改可見的Layer的縮放范圍閾值,使用setMinScale和setMaxScale。
image-based數據源的Layer,可能允許在Layer(繼承ImageAdjustmentLayer)運動的過程中調整圖像亮度,對比度,和gamma度,但是底層的數據是不會更改的。
所有的Layer類不僅可以用來作為basemap,也可以用來作為操作Layer。接下來我們具體討論BaseMap和操作Layer,但是,我們也不是說要絕對準守這些規則,我們需要選擇什么類,我們應該基于對每種類型的功能和性能特性的理解。
Basemap layers
一個basemap會提供豐富的語境背景,以幫助用戶定向地圖。basemap提供了一個可視化框架,使用這個框架,我們可以覆蓋操作層、進行分析、可視化地理信息。
Basemap數據一般來自:
1、ArcGIS Online提供了一些即用型底圖,例如街道,地形,帶標簽的圖像等。
2、你組織自己的focused basemaps。
3、將你自己的Layer混合在一個
如果你創建了自己的BaseMaps,你需要考慮的是:
1、如果數據頻繁更改或如果數據在具有不同預測的地圖中使用,則可能適合將數據作為動態(非緩存)地圖服務發布,你可以使用ArcGIS map image layer訪問這種數據。
2、如果底圖數據相對靜態,那么將其作為平鋪(緩存)地圖服務發布可能更合適。你可以使用ArcGIS tiled layer訪問這種數據。
3、如果你的用戶不能連接網絡,那么建議使用離線的basemaps,比如:tile package、local tile緩存、mobile map package。
4、通過使用矢量平鋪層,可以減少數據存儲空間并且提高繪制性能
tiled layers作為basemap layers在線和離線的區別:
在線的tiled layers:
API類:ArcGISTiledLayer, ArcGISVectorTiledLayer——Tiled地圖服務是連接的緩存地圖服務(ArcGIS服務),緩存地圖服務會在一個tiling scheme里面提供地圖塊的預定義比例。tiling scheme是可以通過服務來設置的。
未完待續。。。。。
總結
以上是生活随笔為你收集整理的android gis 框架,三、ArcGis For Android:图层(Layers)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸿蒙系统小卡片,升级鸿蒙101版本,UI
- 下一篇: android 强制全屏,[Androi