OpenLayers專案分析(五) 資料解析以GML為例
先來了解一下GML:
GML (Geography Markup Language)即地理標識語言,它由OGC(開放式地理資訊系統協會)於1999年提出,目前版本是3.0。GML是XML在地理空間資訊領域的應用。利用GML可以儲存和釋出各種特徵的地理資訊,並控制地理資訊在Web瀏覽器中的顯示。地理空間網際網路絡作為全球資訊基礎架構的一部分,已成為Internet上技術追蹤的熱點。許多公司和相關研究機構通過Web將眾多的地理資訊源整合在一起,向用戶提供各種層次的應用服務,同時支援本地資料的開發和管理。GML可以在地理空間Web領域完成了同樣的任務。GML技術的出現是地理空間資料管理方法的一次飛躍。
介紹一篇文章:GML3.0的WebGlS研究。
我們從總體上來把握一下OpenLayers對於GML資料的解析,首先通過呼叫得到GML文字資料,然後通過Formate.GML類的read方法來解析這個文字,解析得到Geometry物件,然後Geometry物件用相應的渲染器畫出來。其實解析得到還是那些基本的Point呀、LineString呀之類的Geometry物件,就是我們在地圖上看到的那些內容。
下面看其實現過程:
//read()函式讀取資料,獲取特徵列
[程式碼]js程式碼:
01 |
read: function (data)
{ |
02 |
if ( typeof data
== "string" )
{ |
03 |
data
= OpenLayers.Format.XML.prototype.read.apply( this ,
[data]); |
04 |
} |
05 |
var featureNodes
= this .getElementsByTagNameNS (data.documentElement, this .gmlns, this .featureName); |
06 |
var features
= []; |
07 |
for ( var i=0;
i<featureNodes.length; i++) { |
08 |
var feature
= this .parseFeature(featureNodes[i]); |
09 |
if (feature)
{ |
10 |
features.push(feature); |
11 |
} |