999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于地圖制圖腳本的交互式圖例動態生成方法

2014-04-18 03:20:46蔡苑彬陳宏盛
地理空間信息 2014年5期
關鍵詞:符號

蔡苑彬,劉 露,陳 犖,熊 偉,陳宏盛

(1.國防科技大學 電子科學與工程學院 信息工程系, 湖南 長沙410073)

基于地圖制圖腳本的交互式圖例動態生成方法

蔡苑彬1,劉 露1,陳 犖1,熊 偉1,陳宏盛1

(1.國防科技大學 電子科學與工程學院 信息工程系, 湖南 長沙410073)

現有圖例生成方法依靠人工編輯生成靜態圖例,無法根據地圖視口內容的變化而動態改變,給圖層豐富、樣式復雜的地圖交互帶來了不便。針對上述問題,提出一種基于地圖制圖腳本的交互式動態圖例生成方法,通過解析腳本,篩選內容、生成圖例等步驟,根據地圖視口內容自動生成圖例。

腳本制圖;圖例;自動圖例;移動互聯網;互聯網GIS

互聯網GIS中圖層信息量不斷增加,內容動態性不斷增強,相對于傳統的靜態地圖而言,如何動態生成互聯網地圖的圖例成為一個重要問題。

OpenStreetMap開放了全球的街道數據,降低了大眾制圖的門檻;MapBox采用腳本化的地圖制圖模式,探索出網頁制圖的最佳方式。隨之,腳本化地圖制圖模式在移動互聯網時代逐漸興起,成為互聯網GIS富有前景的技術之一。但是,目前主要的移動互聯網GIS中,已有的圖例存在動態性不足的問題。ArcGIS Online的圖例是靜態的,它無法根據地圖視口內容的變化而變化;MapBox的圖例依賴人工編輯代碼,無法自動生成;OpenStreetMap制作的圖例具有很好的動態特性,但是沒有提供生成圖例的接口。

針對上述問題,提出了一種基于地圖制圖腳本的交互式動態圖例生成方法,并通過在某交互式Web地理信息系統中的應用實例來驗證方法的可行性。

1 研究現狀

1.1 電子地圖中的圖例生成方法

在傳統的GIS軟件中(如ArcGIS),系統通過簡單的人機交互后,可以自動生成地圖圖例。但是,生成的圖例更多是為傳統紙質地圖服務的,無法根據地圖視口不斷變化而動態地改變自身內容。

OpenStreetMap為它的標準地圖數據制作了動態圖例——隨著地圖視口尺度的縮放,圖例內容會相應地改變。但它并沒有提供圖例生成的接口,用戶無法為自己的地圖生成圖例。

總之,傳統的圖例生成方法不能同時解決兩種情況下的問題:①地圖內容不斷變化的情況,即地圖中的圖層有可能動態增刪,圖例也應該產生相應變化;②地圖視口不斷變化,圖例應該根據視口中的地圖內容動態變化。

1.2 腳本化制圖

腳本化制圖是指采用腳本描述語言來定義地圖中各要素的制圖樣式,并通過腳本解釋引擎軟件將腳本描述轉化為實際的制圖命令。Open Geospatial Consortium(OGC)在2000年制定了Web Map Service(WMS)標準[1,2],其中Styled Layer Descriptor(SLD)制定了描述地圖樣式的標準。在該標準中,地圖被定義為由樣式化圖層按照一定的次序疊加形成的對象。一個樣式化的圖層則是由一個圖層以及描述該圖層繪制樣式的信息組成。按照這種定義,一個地圖可以表示為 :其中,Layer為一個圖層;Style為圖層的樣式。

Mapnik(開源的地圖繪制引擎)的作者Michal Migurski,受SLD思想的啟發,提出將地圖的繪制信息表述為(Layer,Style)元組的集合,并用XML編碼表示。地圖繪制引擎通過讀取xml文件進行地圖繪制。但用xml文件描述地圖樣式仍然過于復雜,不利于用戶編寫。最后,Michal Migurski借鑒CSS的語法,編制了制圖腳本語言CartoCSS,進一步簡化了地圖樣式的描述。

隨著腳本制圖技術的發展,出現了若干基于腳本制圖的系統,如采用Geo-graphic Style Sheets腳本的Cartagem[3]和使用MapCSS腳本的OpenStreetMap。

2 地圖制圖腳本語法建模

地圖制圖腳本有2種基本組成要素——選擇器和聲明語句。其中,選擇器定義地圖制圖操作的主體對象,例如地圖、圖層、帶過濾條件的對象集等;聲明語句定義該主體對象的具體制圖樣式。語法結構可以用下面的代碼描述。

Selector {

Declaration;

Selector {

Declaration;

}

}

其中,Selector為選擇器,Declaration為聲明語句。

以CartoCSS制圖腳本為例,以下是一個將“highway”線圖層中class為1的線對象繪制為紅色的腳本示例。其中,選擇器有兩個:一為highway圖層,用#highway表示,二為屬性class為1的線對象,用[class=1]表示;聲明語句為“line-color=#ff0000”,表示顏色為紅色的線樣式。

# highway {

[ class=1] {

line-color = #ff0000;

}

}

通過總結分析,制圖腳本的語法特征可以用下面的式子來建模:

其中,Style表示一個繪制樣式——描述對象的某種繪制屬性。StyleSet(樣式集)定義為一個選擇器及其內部所有聲明語句組成的集合。聲明語句可以是一個樣式,也可以是一個樣式集。

3 圖例生成方法

方法的總體思路是為每個地圖符號生成一個圖例單元,再將所有的圖例單元組成最后的圖例。圖例單元是一個地圖符號的注解,它由一個地圖符號以及描述該符號的文字組成。具體由下面四個步驟實現。

3.1 腳本的解析

從腳本的第一個樣式集開始,把它的選擇器及其內部的非樣式集的聲明語句歸到一起,形成元組:

它代表一個制圖對象以及制圖對象的制圖樣式。它在語義上表示一個地圖符號,包含了生成一個圖例單元所需的信息。因此,解析腳本的目的就是從腳本中提取所有這樣的元組。

對于樣式集里面的選擇器,它表示的制圖對象是其所有父選擇器與自身的交集,因此為:

其中n為父選擇器個數。用式(4)替代式(3)中的Selector,可以得到:

顯然,式(3)是n=1時式(4)的一種特殊情況,可以一并表示為式(4)。為了方便表達,我們把式(4)定義的元組稱為 “基本樣式集”。

3.2 圖例單元的篩選

經過§3.1得到的基本樣式集包含了整幅地圖的圖例單元。但是,從交互友好性的角度出發,最好只顯示與當前地圖內容相匹配的圖例單元。為此,需要將不屬于當前地圖視口的圖例單元篩選掉。文章提出以下3種圖例單元的篩選方法。

1)利用地圖視口的縮放尺度篩選。在基本樣式集中,選擇器可以是帶有尺度篩選條件的制圖對象,其尺度篩選條件表示為[min,max]。min為圖例單元生效的最小尺度;max為最大尺度,滿足0≤min<max<∞。如果當前尺度cur滿足(max-cur)*(min-cur)<0,則保留。

2)利用地圖視口范圍篩選。為了減少計算復雜度,這里以圖層為單元進行篩選。如果一個圖層與當前地圖視口沒有交集,則隸屬于該圖層的圖例單元都不予保留,否則全部保留。

3)利用樣式類型篩選。遍歷基本樣式集中的樣式,如果其中包含有非空間數據的樣式(沒有圖例單元與之對應),就篩選掉該基本樣式集,否則保留。

3.3 圖例單元的生成

圖例單元由一個地圖符號以及描述該符號的文字組成。因此,它可以表示為下面的數據結構:

struct legendItem {

img symbol;

string note;

int type;

}

其中symbol是符號的圖像;note是說明符號含義的文字;type表示圖例單元的類型,0表示圖例單元的符號是圖層的默認符號,1表示其他情況。type字段用于排版,它可以根據排版需求設定更多的類型。

這一步要為§3.2篩選出來的基本樣式集生成圖例單元結構(legendItem),也即生成地圖符號(symbol)、符號注解(note)和類型(type)3個字段。

矢量數據有點線面3種類型,分別需要“點、線、面”3個模板來繪制其符號;柵格數據的圖例只包含色彩信息,可以用面模板繪制。因此,繪制地圖符號,需要點線面三個模板(其中點模板為只包含一個點的矢量數據)。

生成地圖符號圖像的過程為:從基本樣式的選擇器中獲取它所在的圖層。然后根據圖層的數據類型,將對應的數據模板以及樣式交給制圖引擎,由制圖引擎繪制符號圖像。過程如圖1所示。

圖 1 符號圖像生成流程圖

生成符號注解和類型的過程為:遍歷基本樣式集的所有選擇器。如果其中包含帶屬性過濾條件的對象,說明圖例單元描述的是圖層中符合某種屬性特征的空間對象,其符號注解表示為所有屬性過濾條件的交,類型標記為1;否則,說明圖例單元描述的是圖層的默認符號,其符號注解用圖層名表示,類型標記為0。

3.4 圖例的html表達

這一步先生成每個圖例單元的html,再將它們合并到一個html中,形成最終成果。

1)生成圖例單元的html。根據圖例的設計方案編寫圖例單元的html模板,用特殊的符號標定symbol和note的位置。再用圖例單元中對應的字段替代標定的符號,生成圖例單元的html。舉例如下:

template[0] =”<div> <img src= ((symbol))> ((note))</div>”

template[1]=”  <div> <img src= ((symbol))> ((note))</div>”

如果圖例單元的class為i,選擇template[i]作為模板。先將圖例單元的symbol圖像轉為base64字符串,并取代模板中的“((symbol))”;再用圖例單元的note字符串替換模板中的“((note))”。

2)合并圖例單元html。利用類似的方法,先設計圖例的html模板,然后將圖例單元的html添加到標記的位置,生成最終的html。

4 方法實現與驗證

本文方法是根據高性能地理計算平臺HiGIS[4]的需求提出來的。HiGIS提供了腳本地圖制圖的環境,用戶通過編寫CartoCSS腳本來設定地圖樣式。實驗程序以后臺服務的形式集成到HiGIS中,并向前端提供http接口。對于一幅制作好的地圖,實驗程序可以根據前端發送的地圖視口范圍和縮放尺度等信息生成地圖圖例,并返回給前端繪制。下面通過兩個例子來說明方法的可行性。

圖2的兩幅圖是在HiIGIS平臺上利用OSM數據制作的中國街道地圖的截圖。兩幅圖分別對應于Tile Web Service (TMS)劃分的第11、12層。從圖a到圖b,地圖進行了放大操作。二級公路由原來的黃色變成了灰色,更低級的道路被繪制出來。同時,左側的圖例也發生相應變化,說明本方法能夠根據地圖視口的縮放尺度來篩選圖例內容。

圖2 不同尺度下的圖例

圖3的兩幅圖同為中國街道地圖第14層的截圖。從圖a到圖b,地圖進行了平移操作。在圖a中,地圖視口內沒有土地利用圖層的內容,所以圖例中也沒有該圖層的內容。在圖b中,地圖視口內出現了土地利用圖層的內容,所以圖例中也包含了該圖層符號的注解(紅色虛框標出)。這說明本方法可以根據地圖視口的范圍來篩選圖例內容。

5 結 語

本文方法既可以在瀏覽地圖時實時生成圖例,也可以在制圖中自動快速生成圖例。由于方法具有快速和自動的優勢,可以用于應急成圖[5]和自動成圖[6]中的圖例生成。

本文方法并沒有將圖例的友好交互潛能挖掘完全,比如地圖數據與圖例符號之間的聯動,通過圖例改變地圖樣式,隨鼠標事件改變圖例狀態等。這些交互特性在傳統的GIS軟件中較容易實現,但是在基于腳本制圖的技術背景下,實現這些友好交互特性頗具挑戰性,值得進一步探討。

[1] ISO 19128.Geographic information - Web map server interface[S].

[2] Gahegan M, Smart W, Masoud-Ansari S,etal. A Semantic Web Map Mediation Service: Interactive Redesign and Sharing of Map Legends[C]. 1st ACM SIGSPATIAL International Workshop on Spatial Semantics and Ontologies,2011

[3] Boulos M N, Warren J, Gong J, etal.Web GIS in Practice VIII: HTML5 and the Canvas Element for Interactive Online Mapping[J/OL]. International Journal of Health Geographics

[4] Liu L, Yang A, Chen L,etal. HiGIS -When GIS Meets HPC[C].12th International Conference on GeoComputation,Wuhan,2013

[5] 和海霞,楊思全,黃河,等. 應急遙感快速制圖技術研究[J].國土資源遙感,2012(3):159-164

[6] 劉光孟,汪云甲,劉萬增,等. 地圖制圖模板自適應生成技術研究[EB/OL]. http://www.paper.edu.cn,2014-01-01

[7] 霍 佳,王英杰,王映輝,等. 基于Web 的統計電子地圖發布系統設計[J].計算機工程,2009,35(4): 258-260

圖3 不同視口范圍下的圖例

P208

B

1672-4623(2014)05-0154-04

10.3969/j.issn.1672-4623.2014.05.057

蔡苑彬,碩士,研究方向為地圖制圖學。

2014-03-14。

項目來源:國家863計劃資助項目(2011AA120305,2011AA120306)。

猜你喜歡
符號
學符號,比多少
幼兒園(2021年6期)2021-07-28 07:42:14
“+”“-”符號的由來
變符號
倍圖的全符號點控制數
圖的有效符號邊控制數
pqr階Cayley圖的符號星控制數
主站蜘蛛池模板: 久久美女精品| 久久黄色视频影| 久久窝窝国产精品午夜看片| 亚洲精品无码成人片在线观看| 五月天在线网站| 五月激情婷婷综合| 99re视频在线| 性喷潮久久久久久久久| 制服丝袜在线视频香蕉| 凹凸国产熟女精品视频| 免费A级毛片无码免费视频| 欧美成在线视频| 久久久久久午夜精品| 欧洲高清无码在线| 亚洲欧美在线综合图区| 91青青草视频| 国产成人无码综合亚洲日韩不卡| 好吊妞欧美视频免费| 五月天久久婷婷| 亚洲成人在线免费| 在线视频一区二区三区不卡| 高清色本在线www| 亚洲美女操| 欧美一级99在线观看国产| 午夜影院a级片| 69视频国产| 成人精品午夜福利在线播放| 丰满的少妇人妻无码区| 亚洲免费三区| 中文字幕第1页在线播| 久久国产免费观看| 色哟哟国产精品| 日韩成人午夜| 九九九九热精品视频| 久久国产香蕉| 伊人久久综在合线亚洲2019| 国产精品hd在线播放| 免费人成黄页在线观看国产| 国产99久久亚洲综合精品西瓜tv| 久久中文电影| 精品超清无码视频在线观看| 国产91丝袜在线播放动漫 | 在线国产资源| 欧美笫一页| 91精品人妻互换| 国产色伊人| 激情视频综合网| 久久男人资源站| 免费女人18毛片a级毛片视频| 一级片一区| 午夜色综合| 国产乱人乱偷精品视频a人人澡| 色播五月婷婷| 久久香蕉国产线| 国产在线专区| 精品国产黑色丝袜高跟鞋| 色偷偷综合网| 9久久伊人精品综合| 国产综合色在线视频播放线视| 色天天综合久久久久综合片| 欧美19综合中文字幕| 国产特级毛片aaaaaa| 992tv国产人成在线观看| 欧美在线伊人| 欧美亚洲日韩不卡在线在线观看| 久久国产亚洲偷自| 亚洲精品人成网线在线| 国产va在线观看免费| 人妻少妇久久久久久97人妻| 天天色天天操综合网| 国产在线一二三区| 免费激情网址| 少妇精品在线| 亚洲国产AV无码综合原创| 国产精品网址你懂的| 成人综合在线观看| 欧美综合区自拍亚洲综合天堂| 久久不卡国产精品无码| 97一区二区在线播放| 91精品国产自产在线老师啪l| 国产成人精品亚洲日本对白优播| 欧美午夜在线播放|