儘管
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效果愈發明顯 座標和多邊形一樣也可以通過逗號或者空格來...