亚洲免费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)定性
        亚洲精品无码久久久久去q| 久久精品综合国产二区| 精品国产一区二区三区久久狼 | av深夜福利在线| 美腿丝袜美腿国产在线| 亚洲天堂av一区二区三区不卡| 国产欧美综合一区二区三区| 久久99精品久久久久久9蜜桃| 久久精品无码中文字幕| 九一成人AV无码一区二区三区| 综合图区亚洲偷自拍熟女| 国产精品国产三级久久| 亚洲av日韩av永久无码下载| 热re99久久精品国产99热| 精品国品一二三产品区别在线观看| 久久99精品国产麻豆宅宅| 国产日产精品久久久久久| 国产亚洲av手机在线观看| 国产91精品一区二区麻豆亚洲| 一个人看的www片免费高清视频| 亚洲色精品aⅴ一区区三区| 在线观看亚洲AV日韩A∨| 日本一区二区久久精品亚洲中文无 | 国产成人美涵人妖视频在线观看 | 国产98在线 | 日韩| 日韩国产成人精品视频| 国产精品国产三级在线专区| 成人久久久精品乱码一区二区三区| 18禁黄污吃奶免费看网站| 久久亚洲中文字幕无码| 久久无码高潮喷水抽搐| 人妻少妇偷人精品一区二区| 亚洲精品成人无限看| 成人区人妻精品一熟女| 不卡无毒免费毛片视频观看| 日本国产精品高清在线| 成人午夜高潮a∨猛片| 亚洲aⅴ天堂av天堂无码麻豆| 69av视频在线| 日本一区二区三区综合视频| 摸丰满大乳奶水www免费|