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

        ?

        SVG格式地理元素分層研究

        2014-06-16 15:51:54杜慶峰彭治平
        新媒體研究 2014年9期
        關(guān)鍵詞:土質(zhì)水系圖層

        杜慶峰+彭治平

        摘 要 提出了在SVG圖形文件上直接進行地理元素分層的思路,對SVG格式地圖分層進行了初步設(shè)計,提出了分層算法。經(jīng)驗證,算法是有效的。

        關(guān)鍵詞 SVG;GIS;地圖分層

        中圖分類號:TP3 文獻標識碼:A 文章編號:1671-7597(2014)09-0050-02

        Abctract: I propose an idea to classifygeologicalelements into layers on SVG/XML format maps, preliminarilydesign the way to classify, the algorithm. The application verification shows that the algorithm is effective.

        Key words: SVG; GIS; Geologicalelement layer

        我們認為地圖是由許多圖形元素疊加組成的,每一類的圖形元素都各具特點。將一些具有一定特征的圖形元素劃分在一起,就構(gòu)成了“層”的概念。常見的地圖圖層有:河流層、道路層、綠地層、河流層、建筑層、行政區(qū)規(guī)劃層等。圖層控制的意義就在于,通過控制地圖上元素可見性,在不同的縮放效果下,僅顯示所需的地理元素,使地圖顯得詳略得當。例如在一般WebGIS的地圖中,不同的放大比例下,所顯示的行政區(qū)劃級別會有所不同。在不同的縮放比例下,顯示不同的視圖,對不同的地理元素進行篩選顯示,可以使用戶能有更好的體驗。

        在GIS中,SVG作為一種圖像的表現(xiàn)手段越來越多被使用,但還并不普及;基于SVG信息存儲和共享交互則更是有待更多研究。圖像分層和地理元素查詢等功能上,國內(nèi)有大量研究成果。但國內(nèi)大多數(shù)研究和解決辦法仍是基于柵格等模型,SVG本身幾乎只被用于圖像表現(xiàn)。事實上SVG因其具有的優(yōu)勢,將其使用在GIS中更低的層級上是值得研究和考慮的。

        本文結(jié)合國家地理元素分層標準以及SVG本身的特點,在SVG本身這一更低的層級上對地圖分層,并驗證了分層效果。

        1元素的介紹

        在SVG的樹狀結(jié)構(gòu)中,元素的作用是,將一批特征類似的圖像元素集中到一起。這恰好便于對SVG地圖中的圖層進行管理。元素不是圖形元素,而是類似于一個容器。任意的圖形元素都可以放在同一個元素下,從而成為一組;同時可以通過在元素內(nèi)的ID屬性來標識圖層。元素的語法定義如下:

        style-attribute=”style-attribute”

        transform=”transformation commands”>

        <!-- groups content here -->

        元素本身不是圖形元素,也不會顯示出來,其樣式屬性會傳遞給它所有的直接子元素。SVG中每個元素都遵守CSS2的樣式繼承規(guī)則,即子元素的樣式繼承父元素的樣式,但在子元素中定義的樣式優(yōu)先級更高。此外,元素支持嵌套使用,即可以對一個組里的元素按照不同的特征在進行分組細分。

        元素作為圖層的分隔容器,元素的內(nèi)置ID值作為圖層的指示牌是在SVG中達到分層目的的基本方式。

        2 圖層分類規(guī)則及算法

        依據(jù)《基礎(chǔ)地理信息要素分類與代碼》中定義,地理元素可以分為定位基礎(chǔ)、水系、居民地及設(shè)施、交通、管線、境界與政區(qū)、地貌和植被等八大類,每個大類下各包含多個小類。例如定位基礎(chǔ)大類包含測量控制點和數(shù)學基礎(chǔ)兩小類;水系大類包含河流、溝渠、湖泊、水庫、海洋要素、其他水系要素、水利及附屬設(shè)施八小類等。

        由于名稱長短不一,為了方便查找和匹配,使用二進制代碼來代替復雜的英文字符名稱就方便的多。根據(jù)圖層的層級和個數(shù),我們采用八位二進制代碼來標識圖層,前四位(0000XXXX)標識一級圖層,后四位(XXXX0000)標識二級圖層。依據(jù)如此編碼,地圖中最多可包含十六種圖層大類,每個圖層大類下最多可包含十六種圖層小類,也就是說整個地圖最多可有二百五十六種圖層小類,完全可以滿足圖層分類的擴展需求。就以第二個大類水系及其以下的七個二級圖層為例,前四位編碼為0001,七個二級圖層的后四位編碼為0000至0110。具體表現(xiàn)如下:

        水系圖層

        河流圖層

        ……

        水利及附屬設(shè)施圖層

        ……

        SVG的本質(zhì)是XML,SVG和XML一樣是一種典型的層次樹狀結(jié)構(gòu),這種結(jié)構(gòu)的文檔,定位其某一個部分是比較容易的,因此控制也較容易。在SVG中,通過設(shè)置元素的Visibility屬性可以實現(xiàn)對于元素的顯示或隱藏。Visibility屬性有兩個值可供選擇:默認值visible代表顯示,而hidden代表隱藏。在SVG中,元素遵守CSS2的樣式繼承規(guī)則。因此,一般情況下,通過設(shè)置指定圖層根節(jié)點元素的Visibility屬性就可實現(xiàn)整個圖層的顯示或隱藏。但是,這種方法并不一定能保證整個圖層行動一致,因為在子元素中定義的樣式優(yōu)先級高于父元素,圖層中已經(jīng)預先定義了Visibility屬性的子元素將不受圖層根節(jié)點元素的Visibility屬性的控制。

        我們可以對這種特殊情況進行特殊處理,除了設(shè)置圖層根節(jié)點元素的Visibility屬性,再處理圖層中的所有事先定義了Visibility屬性的節(jié)點。針對兩種不同的情況,方法如下:

        Visibility=”visible”

        對于這種情況,需要在關(guān)閉圖層的時候,使Visibility屬性失效。而在打開圖層的時候,使visibility屬性值變回”visible”。

        Visibility=”hidden”

        對于這種情況,正常情況下是不顯示該元素的,故無論包含該元素的圖層是隱藏還是顯示狀態(tài),該元素均不顯示。

        整個地圖分層的偽代碼如下所示:

        1

        2

        3

        4

        5

        6

        7

        8

        9

        10

        11

        12

        13

        14

        15

        16

        17

        18

        19 ProcedureLayer(layer name)

        INPUTlayer name: String

        Begin

        var TargetLayer = find_node_by_name(layer name)

        ifTargetLayer.Visibility=”visible”then

        TargetLayer. Visibility=”hidden”

        traverse TargetLayer in level-order sequence

        let M be the current unit

        IfM.hasAttribute(“Visibility”) and M.Visibility = “visible” then

        M.removeAttribute(“Visibility”)

        highlight_node(M)

        endif

        end-traverse

        endif

        else

        TargetLayer. Visibility=“visible”

        unhighlight_nodes_under_layer(TargetLayer)

        endif

        End

        3 分層算法的驗證測試

        地圖分層算法其基本思想是:利用SVG中的組元素進行分層,在已經(jīng)用元素分好層的SVG地圖中,通過修改節(jié)點的Visibility屬性值實現(xiàn)地圖的分層顯示。初步實現(xiàn)后,需要對通常情況的分層進行測試,然后對本文提出的特殊情況(元素下包含預先定義過visibility屬性的節(jié)點)進行測試。

        通過以上分析,我們準備了兩組數(shù)據(jù),分別為Rects組、Circles組和Texts組,每組中包含三個對應(yīng)的SVG元素。我們在Circles組和Texts組中,預先設(shè)定了元素的Visibility

        圖1 分層驗證測試文件的顯示

        屬性。通過Rects組可以對通常情況進行測試,通過Circles組可以對特殊情況進行測試。通過Texts組對這兩種情況進行綜合測試。

        通過以上分析,我們準備也測試數(shù)據(jù),包含水系(包含河流)、交通(包含城市道路和鄉(xiāng)村交道路)、植被與土質(zhì)(包含城市綠地)三大圖層。且對城市道路中的第一條道路沒有預設(shè)“visibility”值,而第四條道路的visibility=”hidden” ,除此之外的所有圖形元素都預設(shè)visibility=”visible” 。

        首先,需要將測試的SVG文件導入到Web瀏覽器中進行顯示。該測試文件在瀏覽器中顯示如圖1所示。圖中共有三個圖層,包括水系層、植被和土質(zhì)層以及交通層。由于城市道路層的第四個元素的Visibility屬性為hidden,所以在這里沒有顯示該元素。圖形上方的復選框用于操作圖層的開關(guān)。

        然后,通過點擊水系復選框來隱藏水系層,測試結(jié)果如圖2所示。與圖1比較后,可以看出,水系層消失了。

        圖2 隱藏水系層的結(jié)果

        接著,通過點擊復選框水系來顯示水系層,點擊植被與土質(zhì)來隱藏植被和土質(zhì)層,測試結(jié)果如圖3所示。從圖中可以看出,原先的河流又出現(xiàn)了,而植被和土質(zhì)層的綠地則均被隱藏了。

        圖3 隱藏植被和土質(zhì)層的結(jié)果

        4 結(jié)論

        通過以上測試結(jié)果可以看出,本文提出的分層顯示算法是可行的。對于普通情況,只要修改組元素的visibility屬性便能達到隱藏和顯示圖層的效果。對于預定義visibility屬性的特殊情況,也可通過遍歷修改子元素的visibility屬性進行顯示與隱藏圖層。

        參考文獻

        [1]Sun Teng-Da, Wang Jin-Feng,2007,A Traffic Cellular Automata Model Based on Road Network Grids and Its Spatial & Temporal Resolution's Influences on Simulation, Simulation Modeling Practice and Theory,DOI: 10.1016/j.simpat.

        [2]Steven J.Vaughan-Nichols.Will Vector Graphics Finally Make It on the Web7.IEEEComputer,2001,34(12):22-24.

        [3]http://www.w3school.com.cn/svg/.

        [4]唐學波.基于SVG的時空GIS文件系統(tǒng)增量更新存儲機制研究[D].上海:同濟大學,2009.

        [5]Liang JZ. Using SVG Technique to Organize and Display Data of Embedded GIS, 2009 5TH INTERNATIONAL CONFERENCE ON WIRELESS COMMUNICATIONS, NETWORKING AND MOBILE COMPUTING, VOLS: 1-8, p: 5375-5377,2009.

        [6]鄔倫,劉瑜,張晶,等.地理信息系統(tǒng)—原理、方法和應(yīng)用[M].科學出版社,2008.

        Visibility=”visible”

        對于這種情況,需要在關(guān)閉圖層的時候,使Visibility屬性失效。而在打開圖層的時候,使visibility屬性值變回”visible”。

        Visibility=”hidden”

        對于這種情況,正常情況下是不顯示該元素的,故無論包含該元素的圖層是隱藏還是顯示狀態(tài),該元素均不顯示。

        整個地圖分層的偽代碼如下所示:

        1

        2

        3

        4

        5

        6

        7

        8

        9

        10

        11

        12

        13

        14

        15

        16

        17

        18

        19 ProcedureLayer(layer name)

        INPUTlayer name: String

        Begin

        var TargetLayer = find_node_by_name(layer name)

        ifTargetLayer.Visibility=”visible”then

        TargetLayer. Visibility=”hidden”

        traverse TargetLayer in level-order sequence

        let M be the current unit

        IfM.hasAttribute(“Visibility”) and M.Visibility = “visible” then

        M.removeAttribute(“Visibility”)

        highlight_node(M)

        endif

        end-traverse

        endif

        else

        TargetLayer. Visibility=“visible”

        unhighlight_nodes_under_layer(TargetLayer)

        endif

        End

        3 分層算法的驗證測試

        地圖分層算法其基本思想是:利用SVG中的組元素進行分層,在已經(jīng)用元素分好層的SVG地圖中,通過修改節(jié)點的Visibility屬性值實現(xiàn)地圖的分層顯示。初步實現(xiàn)后,需要對通常情況的分層進行測試,然后對本文提出的特殊情況(元素下包含預先定義過visibility屬性的節(jié)點)進行測試。

        通過以上分析,我們準備了兩組數(shù)據(jù),分別為Rects組、Circles組和Texts組,每組中包含三個對應(yīng)的SVG元素。我們在Circles組和Texts組中,預先設(shè)定了元素的Visibility

        圖1 分層驗證測試文件的顯示

        屬性。通過Rects組可以對通常情況進行測試,通過Circles組可以對特殊情況進行測試。通過Texts組對這兩種情況進行綜合測試。

        通過以上分析,我們準備也測試數(shù)據(jù),包含水系(包含河流)、交通(包含城市道路和鄉(xiāng)村交道路)、植被與土質(zhì)(包含城市綠地)三大圖層。且對城市道路中的第一條道路沒有預設(shè)“visibility”值,而第四條道路的visibility=”hidden” ,除此之外的所有圖形元素都預設(shè)visibility=”visible” 。

        首先,需要將測試的SVG文件導入到Web瀏覽器中進行顯示。該測試文件在瀏覽器中顯示如圖1所示。圖中共有三個圖層,包括水系層、植被和土質(zhì)層以及交通層。由于城市道路層的第四個元素的Visibility屬性為hidden,所以在這里沒有顯示該元素。圖形上方的復選框用于操作圖層的開關(guān)。

        然后,通過點擊水系復選框來隱藏水系層,測試結(jié)果如圖2所示。與圖1比較后,可以看出,水系層消失了。

        圖2 隱藏水系層的結(jié)果

        接著,通過點擊復選框水系來顯示水系層,點擊植被與土質(zhì)來隱藏植被和土質(zhì)層,測試結(jié)果如圖3所示。從圖中可以看出,原先的河流又出現(xiàn)了,而植被和土質(zhì)層的綠地則均被隱藏了。

        圖3 隱藏植被和土質(zhì)層的結(jié)果

        4 結(jié)論

        通過以上測試結(jié)果可以看出,本文提出的分層顯示算法是可行的。對于普通情況,只要修改組元素的visibility屬性便能達到隱藏和顯示圖層的效果。對于預定義visibility屬性的特殊情況,也可通過遍歷修改子元素的visibility屬性進行顯示與隱藏圖層。

        參考文獻

        [1]Sun Teng-Da, Wang Jin-Feng,2007,A Traffic Cellular Automata Model Based on Road Network Grids and Its Spatial & Temporal Resolution's Influences on Simulation, Simulation Modeling Practice and Theory,DOI: 10.1016/j.simpat.

        [2]Steven J.Vaughan-Nichols.Will Vector Graphics Finally Make It on the Web7.IEEEComputer,2001,34(12):22-24.

        [3]http://www.w3school.com.cn/svg/.

        [4]唐學波.基于SVG的時空GIS文件系統(tǒng)增量更新存儲機制研究[D].上海:同濟大學,2009.

        [5]Liang JZ. Using SVG Technique to Organize and Display Data of Embedded GIS, 2009 5TH INTERNATIONAL CONFERENCE ON WIRELESS COMMUNICATIONS, NETWORKING AND MOBILE COMPUTING, VOLS: 1-8, p: 5375-5377,2009.

        [6]鄔倫,劉瑜,張晶,等.地理信息系統(tǒng)—原理、方法和應(yīng)用[M].科學出版社,2008.

        Visibility=”visible”

        對于這種情況,需要在關(guān)閉圖層的時候,使Visibility屬性失效。而在打開圖層的時候,使visibility屬性值變回”visible”。

        Visibility=”hidden”

        對于這種情況,正常情況下是不顯示該元素的,故無論包含該元素的圖層是隱藏還是顯示狀態(tài),該元素均不顯示。

        整個地圖分層的偽代碼如下所示:

        1

        2

        3

        4

        5

        6

        7

        8

        9

        10

        11

        12

        13

        14

        15

        16

        17

        18

        19 ProcedureLayer(layer name)

        INPUTlayer name: String

        Begin

        var TargetLayer = find_node_by_name(layer name)

        ifTargetLayer.Visibility=”visible”then

        TargetLayer. Visibility=”hidden”

        traverse TargetLayer in level-order sequence

        let M be the current unit

        IfM.hasAttribute(“Visibility”) and M.Visibility = “visible” then

        M.removeAttribute(“Visibility”)

        highlight_node(M)

        endif

        end-traverse

        endif

        else

        TargetLayer. Visibility=“visible”

        unhighlight_nodes_under_layer(TargetLayer)

        endif

        End

        3 分層算法的驗證測試

        地圖分層算法其基本思想是:利用SVG中的組元素進行分層,在已經(jīng)用元素分好層的SVG地圖中,通過修改節(jié)點的Visibility屬性值實現(xiàn)地圖的分層顯示。初步實現(xiàn)后,需要對通常情況的分層進行測試,然后對本文提出的特殊情況(元素下包含預先定義過visibility屬性的節(jié)點)進行測試。

        通過以上分析,我們準備了兩組數(shù)據(jù),分別為Rects組、Circles組和Texts組,每組中包含三個對應(yīng)的SVG元素。我們在Circles組和Texts組中,預先設(shè)定了元素的Visibility

        圖1 分層驗證測試文件的顯示

        屬性。通過Rects組可以對通常情況進行測試,通過Circles組可以對特殊情況進行測試。通過Texts組對這兩種情況進行綜合測試。

        通過以上分析,我們準備也測試數(shù)據(jù),包含水系(包含河流)、交通(包含城市道路和鄉(xiāng)村交道路)、植被與土質(zhì)(包含城市綠地)三大圖層。且對城市道路中的第一條道路沒有預設(shè)“visibility”值,而第四條道路的visibility=”hidden” ,除此之外的所有圖形元素都預設(shè)visibility=”visible” 。

        首先,需要將測試的SVG文件導入到Web瀏覽器中進行顯示。該測試文件在瀏覽器中顯示如圖1所示。圖中共有三個圖層,包括水系層、植被和土質(zhì)層以及交通層。由于城市道路層的第四個元素的Visibility屬性為hidden,所以在這里沒有顯示該元素。圖形上方的復選框用于操作圖層的開關(guān)。

        然后,通過點擊水系復選框來隱藏水系層,測試結(jié)果如圖2所示。與圖1比較后,可以看出,水系層消失了。

        圖2 隱藏水系層的結(jié)果

        接著,通過點擊復選框水系來顯示水系層,點擊植被與土質(zhì)來隱藏植被和土質(zhì)層,測試結(jié)果如圖3所示。從圖中可以看出,原先的河流又出現(xiàn)了,而植被和土質(zhì)層的綠地則均被隱藏了。

        圖3 隱藏植被和土質(zhì)層的結(jié)果

        4 結(jié)論

        通過以上測試結(jié)果可以看出,本文提出的分層顯示算法是可行的。對于普通情況,只要修改組元素的visibility屬性便能達到隱藏和顯示圖層的效果。對于預定義visibility屬性的特殊情況,也可通過遍歷修改子元素的visibility屬性進行顯示與隱藏圖層。

        參考文獻

        [1]Sun Teng-Da, Wang Jin-Feng,2007,A Traffic Cellular Automata Model Based on Road Network Grids and Its Spatial & Temporal Resolution's Influences on Simulation, Simulation Modeling Practice and Theory,DOI: 10.1016/j.simpat.

        [2]Steven J.Vaughan-Nichols.Will Vector Graphics Finally Make It on the Web7.IEEEComputer,2001,34(12):22-24.

        [3]http://www.w3school.com.cn/svg/.

        [4]唐學波.基于SVG的時空GIS文件系統(tǒng)增量更新存儲機制研究[D].上海:同濟大學,2009.

        [5]Liang JZ. Using SVG Technique to Organize and Display Data of Embedded GIS, 2009 5TH INTERNATIONAL CONFERENCE ON WIRELESS COMMUNICATIONS, NETWORKING AND MOBILE COMPUTING, VOLS: 1-8, p: 5375-5377,2009.

        [6]鄔倫,劉瑜,張晶,等.地理信息系統(tǒng)—原理、方法和應(yīng)用[M].科學出版社,2008.

        猜你喜歡
        土質(zhì)水系圖層
        鄱陽湖水系之潦河
        環(huán)水系旅游方案打造探析——以臨沂市開發(fā)區(qū)水系為例
        高含鐵大比重土質(zhì)對泥漿配比的影響
        水系魔法之止水術(shù)
        巧用混合圖層 制作抽象動感森林
        凍融循環(huán)作用下土質(zhì)河堤的穩(wěn)定性分析
        土質(zhì)文物鹽害中硫酸鈉的研究——從微觀到宏觀
        圖層法在地理區(qū)域圖讀圖中的應(yīng)用
        地理教學(2015年18期)2016-01-06 12:00:38
        環(huán)境友好的CLEAN THROUGH水系洗滌劑
        溯源侵蝕作用下昔格達地層土質(zhì)邊坡的穩(wěn)定性
        中文字幕无线码一区二区| 欧洲熟妇色xxxx欧美老妇多毛 | 性色av无码一区二区三区人妻| 国产精品亚洲综合色区韩国| 久久国产欧美日韩高清专区| 亚洲国产精品成人av| 亚洲中文字幕第15页| 国产一级二级三级在线观看视频| 日本高清视频永久网站www| 午夜男女爽爽爽在线视频| 97se亚洲国产综合自在线图片| 亚洲日韩AV无码美腿丝袜 | 亚洲A∨日韩Av最新在线| 日韩在线不卡一区三区av| 国产乱妇无码大片在线观看| 国产一区二区不卡老阿姨| 国产亚洲视频在线观看播放| 国产老熟女伦老熟妇露脸| 一本色道久久88亚洲精品综合 | 天堂中文官网在线| 18无码粉嫩小泬无套在线观看| 日本一区二区三区啪啪| 日韩精品视频高清在线| 亚欧色一区w666天堂| 国产小毛片| 亚洲人妻av综合久久| 免费国产线观看免费观看| 精品无码一区二区三区亚洲桃色| 亚洲中出视频| 国产精品一区二区久久久av| 成人免费xxxxx在线观看| 99视频这里有精品| 亚洲男女视频一区二区| 无码人妻久久一区二区三区免费丨| 自慰无码一区二区三区| 亚洲AV永久无码精品一区二国| 亚洲乱码中文字幕一线区| 国产精品亚洲综合色区| 久久网视频中文字幕综合| 国产一区二区三区涩涩涩 | 欧美一级三级在线观看|