GML文件到SVG文件的轉換

2021-04-02 21:31:03 字數 1633 閱讀 9012

儘管

gml適用於地理資訊交換和共享,但它並不是為影象顯示而設計的,所以

gml文件是無法以影象的形式顯示給使用者的。要將地理時空資訊發布出去,就要將

gml文件轉換為合適的影象格式檔案。此資料發布元件採用

svg作為系統的地理資訊發布格式,因此需要將

gml文件轉換為

svg文件。

gml文件向

svg文件轉換,是通過將編寫好的樣式表(

xsl)和

gml原始檔,傳遞給

xslt

處理器進行執行實現的。使用者查詢是變化的,相應的

gml文件也是變化的,則

gml文件向

svg文件轉化時所用的樣式表也是變化的,所以樣式表應該動態生成。因此,在中介器上有乙個元資料資料庫,每乙個元資料對應乙個樣式表,如元資料

linestring

對應乙個名為

linestring.xsl

的樣式表。當

gml文件向

svg轉化時,先對

gml文件進行遍歷,將出現的元資料所對應的樣式表整合,生成乙個新的樣式表,根據這個樣式表將

gml文件轉化為

svg影象,再將

svg影象返回給使用者。

建立樣式表,最主要的問題就是如何定義模板。根據源文件的結構,在樣式表中尋找匹配的模板片斷,進行相應的轉換。

下面是xsl

樣式表檔案中如何將點元素進行轉換的**片斷。

這裡首先定義了

pointwidth

,將其定義為5。

gml中有

point

元素,而在

svg中沒有

point

元素,所以在這裡我們用

5個象素的

circle

來代替point

。可以看到,程式首先找到

point

節點,將其座標x和

y值讀入變數x0和

y0中;然後輸出乙個上下文節點元素

circle

,並設定其屬性

cx的值為變數

x0的值,設定其屬性

cy的值為變數

y0的值,設定其屬性

r的值為

pointwidth

的值。通過此段

xsl片斷,就可以將

gml規範中的

point

轉換為svg

規範文件中的

circle

。其它的類似。

gml元素到

svg元素的對應關係如下表所示:

gml元素

svg元素

point

circle

multipoint

grouped circles

linestring

polyline

multilinestring

grouped polylines

polygon

path

multipolygon

grouped paths 表

gml元素轉換到

svg元素的對應關係

這裡只是乙個最簡單的說明轉換過程的例子,如何將

gml文件完善的轉換為

svg文件,需要考慮的問題還非常的多。

GML文件到SVG文件的轉換

儘管gml適用於地理資訊交換和共享,但它並不是為影象顯示而設計的,所以gml文件是無法以影象的形式顯示給使用者的。要將地理時空資訊發布出去,就要將gml文件轉換為合適的影象格式檔案。此資料發布元件採用svg作為系統的地理資訊發布格式,因此需要將gml文件轉換為svg文件。gml文件向svg文件轉換,...

SVG之文件結構

第五章涉及知識點有點多,要慢慢消化一會兒。svg的樣式之間的關係像極了html和css之間的關係,但還是有細微的差別。前一篇說到的svg的樣式主要就是strock和fill的相關屬性。這些屬性可以用四種不同方式被作用到svg元素上,比css作用到html元素多一種。比如stroke red 要作用到...

svg自己記得文件

位圖 canvas 由乙個個畫素構成,放大會失真,容納顏色多 向量圖 svg 由數學向量,放大不會失真,容納顏色比位圖少 給父元素設定 transform style preserve 3d perspective 800px.倆個結合用使得3d效果愈發明顯 座標和多邊形一樣也可以通過逗號或者空格來...