亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于地圖制圖腳本的交互式圖例動態(tài)生成方法

        2014-04-18 03:20:46蔡苑彬陳宏盛
        地理空間信息 2014年5期
        關鍵詞:選擇器圖例腳本

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

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

        基于地圖制圖腳本的交互式圖例動態(tài)生成方法

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

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

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

        腳本制圖;圖例;自動圖例;移動互聯(lián)網;互聯(lián)網GIS

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

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

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

        1 研究現(xiàn)狀

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

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

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

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

        1.2 腳本化制圖

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

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

        隨著腳本制圖技術的發(fā)展,出現(xiàn)了若干基于腳本制圖的系統(tǒng),如采用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]表示;聲明語句為“l(fā)ine-color=#ff0000”,表示顏色為紅色的線樣式。

        # highway {

        [ class=1] {

        line-color = #ff0000;

        }

        }

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

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

        3 圖例生成方法

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

        3.1 腳本的解析

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

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

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

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

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

        3.2 圖例單元的篩選

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

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

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

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

        3.3 圖例單元的生成

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

        struct legendItem {

        img symbol;

        string note;

        int type;

        }

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

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

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

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

        圖 1 符號圖像生成流程圖

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

        3.4 圖例的html表達

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

        1)生成圖例單元的html。根據(jù)圖例的設計方案編寫圖例單元的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 方法實現(xiàn)與驗證

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

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

        圖2 不同尺度下的圖例

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

        5 結 語

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

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

        [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 的統(tǒng)計電子地圖發(fā)布系統(tǒng)設計[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)。

        猜你喜歡
        選擇器圖例腳本
        圖線、箭頭的含義和圖例
        靶通道選擇器研究與優(yōu)化設計
        酒駕
        安奇奇與小cool 龍(第二回)
        數(shù)據(jù)庫系統(tǒng)shell腳本應用
        電子測試(2018年14期)2018-09-26 06:04:24
        找拼圖
        犬狗的畫法(六)
        老年教育(2018年6期)2018-07-06 08:03:18
        如何讓學生巧用圖例解決數(shù)學問題
        快樂假期
        中學生(2017年19期)2017-09-03 10:39:07
        四選一數(shù)據(jù)選擇器74LS153級聯(lián)方法分析與研究
        電腦與電信(2017年6期)2017-08-08 02:04:22
        caoporen国产91在线| 91精品国产在热久久| 大奶白浆视频在线观看| 摸进她的内裤里疯狂揉她动图视频 | 久久精品国产亚洲精品| 青青草视频网站免费观看| 黄网站a毛片免费观看久久| 亚洲中文字幕精品久久a| 亚洲av无码一区东京热久久| 亚洲日本va中文字幕| 欧美人与动zozo| av网站影片在线观看| 日韩一二三四区在线观看| 老女老肥熟女一区二区| 日本亚洲欧美色视频在线播放| 天天做天天躁天天躁| 国产呦系列呦交| 中文字幕高清视频婷婷| 新婚人妻不戴套国产精品| 久久久久国产一区二区| 久久av高潮av喷水av无码| 日本熟女人妻一区二区三区| 国产不卡在线观看视频| 岛国av无码免费无禁网站| 国内a∨免费播放| 尤物yw午夜国产精品视频 | 偷拍激情视频一区二区| 亚洲福利二区三区四区 | 国产精品久久久久9999赢消| 亚洲av有码在线天堂| 国产青青草视频在线播放| 日本视频一区二区三区观看| 亚洲午夜久久久久久久久电影网 | 少妇被按摩出高潮了一区二区| 奇米影视7777久久精品| 国产95在线 | 欧美| 久久精品综合国产二区| 亚洲女同系列在线观看| 99久热在线精品视频观看| 亚洲国产高清在线一区二区三区| aⅴ色综合久久天堂av色综合|