儘管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文件向 s...
SVG之文件結構
第五章涉及知識點有點多,要慢慢消化一會兒。svg的樣式之間的關係像極了html和css之間的關係,但還是有細微的差別。前一篇說到的svg的樣式主要就是strock和fill的相關屬性。這些屬性可以用四種不同方式被作用到svg元素上,比css作用到html元素多一種。比如stroke red 要作用到...
svg自己記得文件
位圖 canvas 由乙個個畫素構成,放大會失真,容納顏色多 向量圖 svg 由數學向量,放大不會失真,容納顏色比位圖少 給父元素設定 transform style preserve 3d perspective 800px.倆個結合用使得3d效果愈發明顯 座標和多邊形一樣也可以通過逗號或者空格來...