1琉兜、選擇什么類型的圖層
2、地圖圖層
3梧疲、操作層圖層
4胁澳、臨時(shí)的圖形
在ArcGis中,圖層是用來在地圖中顯示地理數(shù)據(jù)的。一般來說圖層的數(shù)據(jù)只會(huì)來自單獨(dú)的數(shù)據(jù)源,比如只來自map service URL或者只來自geodatabase數(shù)據(jù)庫中的表讳嘱。圖層使用關(guān)聯(lián)的渲染器將數(shù)據(jù)渲染成可視化符號(hào),圖層還可以為labels 和popups定義屬性拔恰,以便于更方便展示數(shù)據(jù)财岔。圖層的數(shù)據(jù)和它的渲染方法是高度解耦的风皿,所以開發(fā)人員可以能夠使用各種方式來展示數(shù)據(jù)。圖層的概念就如圖層的名字一樣匠璧,它在地圖中是分層的桐款,即一層一層地堆疊著的,并且圖層的繪制是從底層到頂部繪制的夷恍。作為我們開發(fā)人員魔眨,我們可以控制圖層在地圖中的繪制順序,并且設(shè)置該圖層是否可見酿雪。在許多Map App中也提供的這種功能遏暴,它們?cè)试S用戶自己打開或者關(guān)閉圖層,讓用戶自己設(shè)置圖層的顯示順序执虹。
簡而言之拓挥,圖層可以讓地理數(shù)據(jù)變得可視化,以便于我們可以探索袋励,分析侥啤,查詢和編輯地理數(shù)據(jù)。ArcGis SDK為我們提供了廣泛的圖層類型茬故,用來訪問各種不同的地理數(shù)據(jù)源盖灸,圖層的性能取決于數(shù)據(jù)的特性以及在app中如何訪問和顯示數(shù)據(jù)。
接下來我們主要描述圖層的類型磺芭,概述了圖層的特性赁炎,并且將詳細(xì)地說明我們通常如何使用圖層。圖層對(duì)象的獲取有兩種方法钾腺,第一種:我們可以通過現(xiàn)有的地圖來獲取圖層的引用徙垫。第二種:我們可以創(chuàng)建或者添加新的圖層來構(gòu)建新地圖。
選擇圖層類型
圖層可以訪問各種地理數(shù)據(jù)源放棒,這些數(shù)據(jù)源本質(zhì)上是靜態(tài)的姻报,我們需要根據(jù)地理數(shù)據(jù)源來選擇我們的圖層,使用圖層訪問和顯示數(shù)據(jù)间螟,以及實(shí)現(xiàn)我們特定的性能標(biāo)準(zhǔn)吴旋。
數(shù)據(jù)源
1、在線數(shù)據(jù)源厢破。由GIS服務(wù)器提供Web服務(wù)荣瑟,例如ArcGIS Server服務(wù)。
來自ArcGIS Server的地圖服務(wù)分為兩大類:tiled(平鋪) 和dynamic(動(dòng)態(tài))摩泪。Tiled服務(wù)是基于圖層的平鋪方案提供預(yù)生成(緩存)圖塊笆焰。Tiled可以提供柵格圖像和矢量圖像。獲取到數(shù)據(jù)后加勤,layer會(huì)在客戶端組裝這些數(shù)據(jù)塊仙辟。你可以使用tiled layer訪問tiled地圖服務(wù)同波。Dynamic地圖服務(wù),該服務(wù)是在客戶端請(qǐng)求時(shí)叠国,即時(shí)創(chuàng)建地圖圖像未檩。你可以使用map image layer訪問Dynamic 地圖服務(wù)。
Feature(功能)服務(wù)可以讓我們?cè)L問地圖里面的各個(gè)功能粟焊。比如我們?cè)贏rcGIS Server上有一個(gè)features services冤狡,ArcGIS Online和Portal for ArcGIS會(huì)從一個(gè)layer的可見范圍返回一個(gè)features 的set集合,或者屬性和空間查詢项棠。所以悲雳,你可以使用feature layer訪問這種服務(wù)。
你還可以訪問mobile map packages 香追、tile packages合瓢、本地?cái)?shù)據(jù)、還有網(wǎng)絡(luò)數(shù)據(jù)透典。本地的數(shù)據(jù)跟在線數(shù)據(jù)一樣晴楔,也擁有不同的layer類型,來訪問數(shù)據(jù)峭咒。
筆記:
臨時(shí)生成的地理數(shù)據(jù)(例如税弃,查詢的結(jié)果或GPS的位置)通常在圖形疊加中在短期的基礎(chǔ)上顯示
Layer 類
Layer的體系結(jié)構(gòu),斜體的類名是抽象的凑队。
Common layer properties(公共的layer屬性):
所有圖層類都從Layer類繼承公共屬性则果,Layer實(shí)現(xiàn)了Loadable接口。Loadable是用來異步加載Layer資源的接口漩氨。Layer也實(shí)現(xiàn)了LayerContent接口西壮。關(guān)于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數(shù)據(jù)源的Layer祈噪,可能允許在Layer(繼承ImageAdjustmentLayer)運(yùn)動(dòng)的過程中調(diào)整圖像亮度,對(duì)比度尚辑,和gamma度辑鲤,但是底層的數(shù)據(jù)是不會(huì)更改的。
所有的Layer類不僅可以用來作為basemap杠茬,也可以用來作為操作Layer月褥。接下來我們具體討論BaseMap和操作Layer,但是澈蝙,我們也不是說要絕對(duì)準(zhǔn)守這些規(guī)則吓坚,我們需要選擇什么類,我們應(yīng)該基于對(duì)每種類型的功能和性能特性的理解灯荧。
Basemap layers
一個(gè)basemap會(huì)提供豐富的語境背景礁击,以幫助用戶定向地圖。basemap提供了一個(gè)可視化框架逗载,使用這個(gè)框架哆窿,我們可以覆蓋操作層、進(jìn)行分析厉斟、可視化地理信息挚躯。
Basemap數(shù)據(jù)一般來自:
1、ArcGIS Online提供了一些即用型底圖擦秽,例如街道码荔,地形,帶標(biāo)簽的圖像等感挥。
2缩搅、你組織自己的focused basemaps。
3触幼、將你自己的Layer混合在一個(gè)
如果你創(chuàng)建了自己的BaseMaps硼瓣,你需要考慮的是:
1、如果數(shù)據(jù)頻繁更改或如果數(shù)據(jù)在具有不同預(yù)測(cè)的地圖中使用置谦,則可能適合將數(shù)據(jù)作為動(dòng)態(tài)(非緩存)地圖服務(wù)發(fā)布堂鲤,你可以使用ArcGIS map image layer訪問這種數(shù)據(jù)亿傅。
2、如果底圖數(shù)據(jù)相對(duì)靜態(tài)瘟栖,那么將其作為平鋪(緩存)地圖服務(wù)發(fā)布可能更合適葵擎。你可以使用ArcGIS tiled layer訪問這種數(shù)據(jù)。
3慢宗、如果你的用戶不能連接網(wǎng)絡(luò)坪蚁,那么建議使用離線的basemaps,比如:tile package镜沽、local tile緩存敏晤、mobile map package。
4缅茉、通過使用矢量平鋪層嘴脾,可以減少數(shù)據(jù)存儲(chǔ)空間并且提高繪制性能
tiled layers作為basemap layers在線和離線的區(qū)別:
在線的tiled layers:
API類:ArcGISTiledLayer, ArcGISVectorTiledLayer——Tiled地圖服務(wù)是連接的緩存地圖服務(wù)(ArcGIS服務(wù)),緩存地圖服務(wù)會(huì)在一個(gè)tiling scheme里面提供地圖塊的預(yù)定義比例蔬墩。tiling scheme是可以通過服務(wù)來設(shè)置的译打。
未完待續(xù)。拇颅。奏司。。樟插。