• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

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

      (1.國(guó)防科技大學(xué) 電子科學(xué)與工程學(xué)院 信息工程系, 湖南 長(zhǎng)沙410073)

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

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

      (1.國(guó)防科技大學(xué) 電子科學(xué)與工程學(xué)院 信息工程系, 湖南 長(zhǎng)沙410073)

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

      腳本制圖;圖例;自動(dòng)圖例;移動(dòng)互聯(lián)網(wǎng);互聯(lián)網(wǎng)GIS

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

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

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

      1 研究現(xiàn)狀

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

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

      OpenStreetMap為它的標(biāo)準(zhǔn)地圖數(shù)據(jù)制作了動(dòng)態(tài)圖例——隨著地圖視口尺度的縮放,圖例內(nèi)容會(huì)相應(yīng)地改變。但它并沒(méi)有提供圖例生成的接口,用戶無(wú)法為自己的地圖生成圖例。

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

      1.2 腳本化制圖

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

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

      隨著腳本制圖技術(shù)的發(fā)展,出現(xiàn)了若干基于腳本制圖的系統(tǒng),如采用Geo-graphic Style Sheets腳本的Cartagem[3]和使用MapCSS腳本的OpenStreetMap。

      2 地圖制圖腳本語(yǔ)法建模

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

      Selector {

      Declaration;

      Selector {

      Declaration;

      }

      }

      其中,Selector為選擇器,Declaration為聲明語(yǔ)句。

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

      # highway {

      [ class=1] {

      line-color = #ff0000;

      }

      }

      通過(guò)總結(jié)分析,制圖腳本的語(yǔ)法特征可以用下面的式子來(lái)建模:

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

      3 圖例生成方法

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

      3.1 腳本的解析

      從腳本的第一個(gè)樣式集開(kāi)始,把它的選擇器及其內(nèi)部的非樣式集的聲明語(yǔ)句歸到一起,形成元組:

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

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

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

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

      3.2 圖例單元的篩選

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

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

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

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

      3.3 圖例單元的生成

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

      struct legendItem {

      img symbol;

      string note;

      int type;

      }

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

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

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

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

      圖 1 符號(hào)圖像生成流程圖

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

      3.4 圖例的html表達(dá)

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

      1)生成圖例單元的html。根據(jù)圖例的設(shè)計(jì)方案編寫圖例單元的html模板,用特殊的符號(hào)標(biāo)定symbol和note的位置。再用圖例單元中對(duì)應(yīng)的字段替代標(biāo)定的符號(hào),生成圖例單元的html。舉例如下:

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

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

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

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

      4 方法實(shí)現(xiàn)與驗(yàn)證

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

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

      圖2 不同尺度下的圖例

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

      5 結(jié) 語(yǔ)

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

      本文方法并沒(méi)有將圖例的友好交互潛能挖掘完全,比如地圖數(shù)據(jù)與圖例符號(hào)之間的聯(lián)動(dòng),通過(guò)圖例改變地圖樣式,隨鼠標(biāo)事件改變圖例狀態(tài)等。這些交互特性在傳統(tǒng)的GIS軟件中較容易實(shí)現(xiàn),但是在基于腳本制圖的技術(shù)背景下,實(shí)現(xiàn)這些友好交互特性頗具挑戰(zhàn)性,值得進(jì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] 和海霞,楊思全,黃河,等. 應(yīng)急遙感快速制圖技術(shù)研究[J].國(guó)土資源遙感,2012(3):159-164

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

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

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

      P208

      B

      1672-4623(2014)05-0154-04

      10.3969/j.issn.1672-4623.2014.05.057

      蔡苑彬,碩士,研究方向?yàn)榈貓D制圖學(xué)。

      2014-03-14。

      項(xiàng)目來(lái)源:國(guó)家863計(jì)劃資助項(xiàng)目(2011AA120305,2011AA120306)。

      猜你喜歡
      選擇器圖例腳本
      圖線、箭頭的含義和圖例
      靶通道選擇器研究與優(yōu)化設(shè)計(jì)
      酒駕
      安奇奇與小cool 龍(第二回)
      數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
      找拼圖
      犬狗的畫法(六)
      老年教育(2018年6期)2018-07-06 08:03:18
      如何讓學(xué)生巧用圖例解決數(shù)學(xué)問(wèn)題
      快樂(lè)假期
      四選一數(shù)據(jù)選擇器74LS153級(jí)聯(lián)方法分析與研究
      電腦與電信(2017年6期)2017-08-08 02:04:22
      城步| 安泽县| 余庆县| 永丰县| 阳江市| 尚义县| 米泉市| 冷水江市| 大连市| 金阳县| 从江县| 全椒县| 新野县| 内乡县| 裕民县| 石渠县| 县级市| 巩留县| 昔阳县| 个旧市| 青川县| 宝清县| 普兰店市| 余姚市| 安多县| 赫章县| 镇康县| 青河县| 开封市| 同心县| 广宁县| 白朗县| 鲁山县| 德保县| 十堰市| 淳安县| 新乐市| 关岭| 托克托县| 宽城| 江都市|