FDO 數據訪問技術
長久以來,由于地理空間信息行業的固有特點,在這一領域中存在著多種不同的文件或數據庫格式。當用戶使用了某個公司的數據存儲格式之后,常常就被迫使用同一個公司的軟件,以訪問他們自己的數據。如果希望使用其它公司的軟件,就往往要耗費大量的精力把數據從一種格式轉換成另一種格式,或者設法去讀寫這些專有格式。在這個過程中,可能導致的問題包括:
◆ 數據丟失:例如一種格式中記錄的數據可能無法或很難轉移到另一種格式中;
◆ 精度損失:例如把數據從一個雙精度的格式中轉移到單精度甚至整型的格式中;
◆ 數據冗余:同一份數據要創建多種格式的拷貝;
◆ 過時信息:當一個版本的數據更新后,未能及時更新其它格式的版本,導致項目成員使用過時的數據而導致不必要的錯誤;
◆浪費成本:大量的時間和金錢耗費于毫無生產性的工作。
在FDO技術的幫助下,針對每種現有的數據存儲格式,只要編寫一段程序,將原有的數據存儲“翻譯”到FDO API,就可以提供給使用FDO的應用程序訪問。這個“翻譯”程序就稱為FDO Provider。只要安裝了FDO Provider,應用程序就可以通過調用FDO接口來直接訪問相應的數據存儲,而不再需要進行格式轉換。因此,開發人員可以將更多的精力集中于應用程序邏輯,而不是處理各種數據格式。
Autodesk不僅制訂了FDO API的標準,還開發了一系列的FDO Provider提供給用戶。目前已包括:
◆ 文件型數據源:SDF、SHP;
◆ 數據庫型數據源:ArcSDE、Oracle*、MS SQL Server*、MySQL、ODBC;
◆ Web數據源:符合OGC規范的WMS/WFS(只讀);
◆ 光柵數據源:多種常見的二維光柵格式和DEM格式*(只讀)。
為了推廣FDO技術的應用,Autodesk與OSGeo合作,將FDO作為一個開放的標準發布(http://fdo.osgeo.org/),并將已有的FDO Provider作為免費的開源產品貢獻給社區(列表中帶*號的除外)。
在OSGeo的推動下,FDO正在成為訪問地理空間數據格式的統一的標準,并且已經由開源社區的開發人員(而非Autodesk)提供了更豐富的FDO Provider,包括OSGeo FDO Provider for PostGIS和OSGeo FDO Provider for GDAL/OGR。這些Provider程序都基于標準的FDO接口,因此應用程序可以輕松的使用它們來擴展其支持的格式。
另外,由于FDO Provider本身并不必須是開源的,因此對于原先私有數據格式的所有者,即使在不公開該格式的情況下,也可以通過發布FDO Provider使得其它開發人員和應用軟件可以訪問該格式中存儲的數據。借助FDO Provider,應用軟件還可以訪問遵循OGC(Open Geospatial Consortium)標準的WMS/WFS(網絡地圖/要素服務)站點,從而獲取基于Web的公開的地圖數據資源。
有了FDO,企業就不再局限于某一數據格式的軟件供應商,而是可以自由的選擇功能更強大、價格更低廉的軟件來訪問其自身的數據資源,從而可以降低成本,提高生產力。
SDF空間數據格式
Autodesk不僅推出了FDO技術以訪問現有的地理空間數據格式,還開發了新的開放的空間數據格式SDF(Spatial Data Format)。SDF格式是基于開源數據庫格式sqlite(http://www.sqlite.org/),并且針對大型GIS數據集的存儲進行了優化。
SDF是一種易于使用的文件型空間數據格式,它能夠在一個文件中以表格的方式存儲多種地理要素,包括多種幾何類型(點、線、多邊形和圓弧)以及關聯的屬性信息。與SHP相比,它更為小巧便攜,使用雙精度存儲,支持真正的圓弧對象,并且支持海量數據存儲(可存放超過100GB的數據),性能優越。
而與Oracle等真正的數據庫系統相比,它的成本更低廉,更易于復制和傳送,因此更適合于個人或小型系統使用。使用FDO技術,還能夠輕松的將SDF轉換成其它格式,因此當企業規模發生變化,需求從小型系統進化到大型數據庫系統時,可以很方便的將SDF的數據遷移進入Oracle這樣的數據庫。
DWF圖形技術
DWF(Design Web Format)圖形格式是一種專為網絡應用而設計的矢量圖形格式,可將其稱為“網絡時代的電子圖紙”。DWF與AutoCAD DWG看起來相似,但也有很大的不同。
首先,DWF是高度壓縮的格式,體積小巧,因此更便于網絡傳輸;其次,DWF是專為圖形瀏覽、審閱和打印而設計的,它忠實的再現了原始圖形,但卻不可進行更改(只能添加批注),因此能夠保證數據的安全可靠性;最后,DWF是一種智能的圖形格式,它不僅支持圖層控制、電子量測、三維模型和多頁圖紙集,更重要的是它還包含了對象的屬性數據。
例如,在一個DWF的地圖文件中,審核人員不僅可以選中一個地塊,用電子方式測量它的面積,還可以查看其中包含的地塊屬性,例如產權所有者、綠化率和建筑密度。當發現錯誤時,可以在圖上添加電子批注,然后將DWF文件發回給制圖人員修改。因此,在基于網絡的圖形瀏覽和審批流程中,DWF是最佳的數據格式。
DWF對于Web應用也有非常重要的意義。我們不僅可以在安裝了DWF Viewer插件的Internet Explorer軟件中直接瀏覽DWF文件,更重要的是,由于DWF是一種流媒體格式,這意味著可以在文件下載的過程中逐步顯示其中的內容,而不是等到整個文件下載完成之后才顯示其全部內容。因此,基于DWF技術的Web應用能提供更好的用戶體驗。
MapGuide Open Source
MapGuide Open Source是Autodesk開源的地理空間信息技術的集大成者。它綜合利用了多種開源技術,提供了一個先進的WebGIS平臺,用于集成多種數據源,建立一個基于Web的地理空間信息應用系統,將地理空間數據發布到Internet/Intranet進行共享。并且,由于MapGuide Open Source是專門針對WebGIS應用開發的,因此非常容易學習和使用,性能也更為出色。
MapGuide Open Source是由Autodesk獨立開發的全新產品,并于2005年11月發布。盡管其名稱與以前的Autodesk MapGuide 6.5相似,但是新的MapGuide是完全重新開發的,使用了與以前截然不同的技術,因此實際上是兩個完全不同的產品。新的MapGuide包含兩個版本:開源版本MapGuide Open Source和商業版本Autodesk MapGuide Enterprise 2007。
這兩個版本的內核完全相同,絕大多數功能也一樣,但商業版本提供了更多的高級功能(例如用于Oracle和SQL Server的FDO Provider),并且可以獲得Autodesk公司提供的技術支持和服務。
與以前的Autodesk MapGuide 6.5相比,MapGuide Open Source(也同樣適用于商業版本)使用了最新的流行技術,因此更加卓越。其主要的新特性如下:
◆ HTML(AJAX)和DWF兩種瀏覽方式
MapGuide Open Source可集成服務器端的多種數據源,并通過HTML方式或DWF方式發送到客戶端。這兩種方式提供了幾乎完全相同的界面和功能,包括動態的圖形縮放和平移、圖層控制、選中要素并查看屬性數據、浮動提示、圖上測量和緩沖區分析等。
在HTML方式中,服務器端的地理空間數據被轉換成光柵圖像發送到瀏覽器,使用AJAX(Asynchronous JavaScript and XML)技術進行用戶交互,而無需在客戶端安裝任何插件。而在DWF方式中,發送到客戶端的是DWF格式的矢量數據,使用瀏覽器內嵌的DWF Viewer進行查看,因此能夠提供更快的用戶響應速度、更好的縮放和打印性能,另外還可以將DWF文件保存到本地以備脫機瀏覽。
◆使用FDO數據訪問技術
MapGuide Open Source使用FDO作為數據訪問的接口,因此它能夠無縫直接讀取多種地理空間數據格式,包括SDF、SHP、ArcSDE等。另外,在Autodesk MapGuide Enterprise這一商業產品中還提供了對Oracle和SQL Server的支持。作為一款經過OGC認證的產品,MapGuide Open Source還支持通過WMS/WFS集成和發布Web地圖數據。
◆ 更強大的圖形平臺
MapGuide Open Source還具有更強大的圖形顯示性能,包括支持真彩色、TrueType字體、地圖符號庫、透明填充和智能的文字標注功能。另外,它還提供了更方便的用戶交互界面。很多在以前的MapGuide 6.5中需要通過開發人員編程實現的常用功能,現在都可直接從MapGuide產品中獲取。
◆ 空間應用服務器
由于MapGuide Open Source是在服務器端進行空間數據的訪問、查詢和分析,因此這就賦予它一種強大的特性,作為一個空間應用服務器,以“機器到機器”的方式與其它應用系統進行交互。
簡單來講,當另一個應用軟件(不限于Web瀏覽器)按照事先約定的方式向MapGuide Open Source服務器發送一個請求時,MapGuide Open Source接受這個請求,執行其操作(例如查詢某個指定區域內的地理空間數據),然后將操作的結果以事先約定的格式發送給該應用軟件,然后該軟件就可以按照其自身的需求對返回的信息進行處理。
將MapGuide作為空間應用服務器的一個最新例子,是加拿大的Nanaimo市使用它與Google Earth進行集成。該網站(http://earth.nanaimo.ca/)可以將市政府的MapGuide服務器中的空間數據輸出為kml格式(Google Earth的文件格式)。于是,當用戶在Google Earth客戶端中打開一個包含MapGuide服務器地址的kml文件時,Google Earth客戶端就向該MapGuide服務器進行查詢。
而MapGuide服務器接收請求后,就查詢該地區的空間數據并生成kml格式返回給Google Earth客戶端。然后,Google Earth客戶端就可以顯示來自MapGuide的空間數據并疊加到它自身的衛星影像上。
因此,MapGuide不僅僅是一個Web地圖平臺,更是一個基于Web的空間數據引擎。使用MapGuide,可以很容易的為其它應用系統提供空間查詢和分析功能,或是將分布于多個系統中的空間數據集成到一個客戶端上進行瀏覽。
MapGuide Open Source(以及Autodesk MapGuide Enterprise)提供了如此之多的強大功能,因此能夠用于架設企業級的地理空間信息應用系統。
另外,Autodesk還提供了與之配套的開發工具Autodesk MapGuide Studio,用于收集和整理地圖數據、創建地圖顯示樣式,以及集成用.net、Java或PHP開發的應用程序邏輯,并在發布之前對整個系統進行預覽。Autodesk MapGuide Studio是一個獨立的商業軟件,但Autodesk也提供了可下載的免費試用版本,并且可向開發商合作伙伴提供用于開發的許可。
此外,MapGuide Open Source還能夠與桌面軟件Autodesk Map 3D 2007協同使用,以簡化地圖創建到發布的流程。Autodesk Map 3D 2007是基于AutoCAD的地圖制作與編輯軟件(商業產品),它也同樣使用FDO數據訪問技術,因此能夠直接訪問多種地理空間數據格式,使用AutoCAD工具進行編輯,并創建地圖顯示樣式和制作專題地圖。使用Map 3D制作的地圖可以直接輸出到MapGuide Open Source服務器上進行發布,并且保持在Map 3D中做好的顯示樣式。
采用LGPL授權
與開源軟件中流行的GPL授權不同,Autodesk在MapGuide Open Source以及大部分FDO Provider中使用的是LGPL授權。與GPL相比,LGPL授權是一種更為寬松的授權。
如果您在自己開發的軟件產品中包含了基于LGPL授權的產品(例如在MapGuide Open Source的基礎上開發的應用系統),LGPL并不要求開放您新增的這些代碼(與之相反,GPL授權要求開放您新增的所有代碼)。您所開發的新軟件可以是開放的或者私有的,可以是免費的或者收費的,沒有任何限制;但如果修改了其中原產品的部分代碼,那么您必須明確的指出修改的部分,并公布修改后的代碼。因此,與采用GPL授權的開源軟件(例如MapServer)相比,MapGuide Open Source更加適合于商業應用。
事實上,Autodesk MapGuide Enterprise 2007就是基于MapGuide Open Source的一個商業產品,它包含MapGuide Open Source的所有功能。
為了讓更多用戶從MapGuide Open Source受益,Autodesk將此軟件捐獻給OSGeo基金會。用戶可從OSGeo網站下載和使用該產品及其源代碼。
這意味著MapGuide Open Source不再屬于Autodesk所有,而是屬于以OSGeo為代表的全體開源社區。但同時也需注意,Autodesk不對MapGuide Open Source的用戶提供技術支持和任何保障,這些用戶需通過開源社區獲取支持。Autodesk僅對Autodesk MapGuide Enterprise的用戶提供支持和服務。
結語
通過本文的介紹,我們簡要的瀏覽了Autodesk在地理空間信息領域的一系列開源技術和產品。使用來自Autodesk的開源技術,能夠與其它開源軟件或商業軟件集成,建立起完善的基于Web的地理空間信息應用系統,從而為最廣泛的用戶共享地理信息,同時幫助企業降低成本,提高生產力。Autodesk將與OSGeo協作,不斷的為地理空間信息的開源事業做出貢獻。
圖1 FDO數據訪問技術
圖2 MapGuide Open Source 站點架構