首頁 > Uncategorized > 地理資訊系統伺服器端之自由軟體簡介

地理資訊系統伺服器端之自由軟體簡介

2012年11月2日 發表評論 閱讀評論

本文轉載截錄自中央研究院計算中心通訊電子報2012年第22期,作者GIS組彭逸帆,全文可至這裡觀看。

前言

近年來由於資訊科技的演進,連帶使得地理資訊系統的應用也較以往更為廣泛;而對於空間資料(Spatial Data)的產製也已從早期必須經由專家學者處理才能發佈,到現在一般民眾只需要簡單的工具,甚至是透過行動裝置就有可能產生這些具有地理資訊的資料。

然而空間資料的建立僅是提供服務最基本的一環,若需要將這些原始的資料轉變成可以提供他人使用的服務,則需要額外的設定。因此,本文將依照如下圖1的分類,分別從使用者端、應用服務(Application Services)到提供服務的部份(Service Provider)一一作介紹。

圖1、服務軟體分類圖

以目前市面上的商業軟體而言,如果要建立地理資訊的服務,已出現相當多種的解決方案,在此不再贅述。本文主要探討的是如何透過自由軟體(Open Source)以發佈相關服務,期望透過本文的介紹,讓有心想要建立服務提供他人使用的資料管理者可以參考。

服務說明及介紹

一、使用者端部份:

在建立地理資訊相關的資料時,往往都會需要使用編輯軟體以針對資料的空間資訊、屬性資料進行處理。一般常聽到的軟體除了使用商業體的解決方案(譬如透過ESRI的ArcMAP、…等工具)外,在Open Source的部份也有相當出色的軟體可以使用,譬如Quantum GIS(簡稱QGIS)[1]就是其中一項代表;且目前在國內也有許多教育機構、非營利機構在推動GIS教學時就是使用QGIS。

QGIS不僅提供基本的圖資編輯功能,對於相關標準(Open Geospatial Consortium,OGC)[2]的支援也相當成熟。圖2即是QGIS的操作界面。

圖2、QGIS操作界面

二、應用服務部份:

以一般的資訊系統為例,即便後端擁有強大的伺服器主機與系統,透過該系統可以處理相當龐大的資料,不過資料畢竟是要給人操作,如何建立具有友善的使用者界面也是必須注重的一環。回到地理資訊系統,即便我們擁有高效能的地理資訊服務與強大的計算能力,仍需要有一個好的操作界面,如此才能讓使用者可以輕易的操作與應用相關服務。此處以OpenLayers[3]作說明,介紹該軟體在「伺服器端」與「使用者端」所扮演的角色。

  • OpenLayers

在地理資訊系統中,除了有後端可以處理圖資的圖台外,在靠近使用者這端亦需要有一個適合的界面可以提供GIS基本的操作(譬如:放大、縮小、平移、套疊圖層、…等功能)。

若是使用一般的商業軟體,該軟體大多都會有發佈圖資的功能選項,提供程式發開人員使用,開發人員透過該功能就可以產生基本的操作界面。以ArcGIS Server為例,該公司就提供Flex、Silverlight等工具的SDK讓開發人員使用。不過這類由商業軟體公司所開發的工具往往與該公司的產品或服務有高度的整合,因此若要使用該工具進行不同目標的開發,往往都會遇到不少的限制。

而在自由軟體中,軟體的設計大多是依循標準,因此,若是符合標準的服務,則大多可以透過自由軟體進行程式開發;而且使用這類軟體的好處是因為開放原始碼,所以使用者如果覺得有部份功能不符期待,甚至是可以自行修改以符合自身的需求。而與前述所提前端的界面較為人所熟悉的大概就OpenLayers。OpenLayers是透過JavaScript所開發的一種工具,該工具可以支援的圖資相當多元,包含由ArcGIS Server所發佈的資料(ArcGIS Cache)、服務(ArcGIS REST、ArcIMS、…),對於其他線上地圖的服務如Google的Google Map,微軟的Bing Map、…等都有支援,其應用的示意圖如圖3[4]所示:

圖3、OpenLayers應用示意圖

因此,對於只是單純要開發地理資訊系統界面的人來說,OpenLayers是相當不錯的開發工具。

三、服務提供部份:

在地理資訊系統中,若要提供使用者可以存取地理資訊的服務,勢必需要先透過軟體建立起對應的服務,才能夠讓使用者使用,其中包含了GIS服務的圖台建立、資料庫軟體、…等工作,底下針對地理資訊系統在伺服器端常使用的Open Source軟體作介紹:

  •  GeoServer[5]

在地理資訊系統中,若需要將具有空間屬性的資料展示在網際網路中,必須先使用適當的軟體才能夠發揮效用,透過該項服務客戶端使用者(Client Side)才能存取伺服器端(Server Side)的服務。以常見的商業軟體為例,其地圖服務功能就是類似ESRI中ArcIMS、ArcGIS Server之類的軟體。對應到自由軟體,其實是有幾套不同的軟體可以提供類似的服務,不過此處以GeoServer為例(如圖4[6]所示)作介紹。

圖4、GeoServer 架構圖

GeoServer是一套由Java開發的自由軟體,它可以被用來讓使用者分享及編輯具有空間資訊的資料。雖然它是一套由社群所維護的軟體,不過對於一般商業軟體所具有的功能,它大多都也提供類似的服務。值得一提的是,由於它是自由軟體,所以對於標準的交換格式它也都支援。在GIS領域中,由開放地理空間協會(Open Geospatial Consortium)所訂定的網路地圖服務(Web Map Service, WMS)、網路圖徵服務(Web Feature Service, WFS)、網路網格資料服務(Web Coverage Service, WCS)、KML、…等資料交換規範,GeoServer都支援。

  •  GeoWebCache[7]

在地理資訊系統中,為了讓整體系統的實用性更高,往往都會搭配套疊豐富的影像資料,包含地圖、衛星影像、航空照片影像、…等等網格式資料。然而,若資料量龐大到需要耗費時間才能透過網路傳遞完畢,可以想見整體的系統效能也將大幅降低。為了解決載入大量圖資的問題,類似圖磚(Map Tile)的技術相繼被提出[8]。

圖磚的概念可以透過圖5[9]說明,也就是將影像資料先依據一的的比例尺、命名規則、儲存目錄結構、…等事先定義好的規範進行處理,當需要檢視特定區域的資料時,僅需取出該範圍的幾將影像拼接在一起即可。如此一來,不僅可以省去即時處理龐大影像所虛耗費的系統資源外,因為圖資皆是處理好的圖磚,取用時僅需透過網頁伺服器提供服務即可。

圖5、圖磚示意圖

產生圖磚的機制有相當多種,其中包含商業軟體的解決方案(譬如ESRI ArcGIS Server產生Cache的方式),或者使用者可以依據相關規範自行撰寫程式產生切圖資料;不過在自由軟體中也有提供類似服務的軟體GeoWebCache。

使用GeoWebCache的好處是,在操作地理資訊系統的情境時,有很大比例的使用者多是在套疊不同來源的圖層資料;若這些重複被使用的資料可以先處理好(即類似圖磚的機制),將可以降低伺服器端的負載。圖6即是在GIS中一種的使用情境。

圖6、GeoWebCache應用示意圖

  •  PostGIS[10]

針對大量資料進行處理時,往往會透過資料庫系統(DBMS)管理,以增進其運作效率,因此,資料庫系統的使用在整體系統運作中是非常常見的一環。這些軟體包含商業軟體的解決方案,譬如Oracle、Microsoft SQL Server、…等,或者是自由軟體的MySQL Server、…等。

同樣的情況也發生在地理資訊系統上。若有相當多的資料需要放置於地理資訊系統上,如果想要增強系統效能,則必須透過資料庫系統管理龐大的資料。 然而地理資訊的資料與一般資料最大的差異,也就是在於地理資訊的資料大多具有「空間屬性」,因此,被選擇作為處理空間資料的資料庫就必須具備這項能力。

近幾年來,Oracle已經針對這個部份進行開發,因而有了Oracle Spatial的產生;而微軟在新版本的SQL Server也添加了處理空間屬性的功能。在自由軟體部份,PostgreSQL本身即是一項相當不錯的資料庫系統,再搭配PostGIS之後,即具備處理空間資訊的能力。

舉例來說,在前述圖2中透過QGIS所載入的台灣地區行政區界,其屬性內容(譬如行政區界名、面積大小、…等)都可以使用一般資料庫的格式轉換到資料庫系統中,但是對於空間幾何的部份(點、線、面)的部份,一般資料庫就沒有辦法處理;而PostGIS正好就是可以處理這個部份的資料,如圖7所示,在PostGIS的資料庫中會有一欄是針對空間屬性的資料進行紀錄。

圖7、台灣行政區界PostGIS資料庫內容

小結

由於資訊技術的發展,地理資訊系統不僅在商業軟體已有長足的進步,在自由軟體的部份也不遑多讓。本文僅是針對GIS在自由軟體的發展作一簡單的概述,同時針對建立、發佈地理資訊服務所需的軟體作說明,期望透過簡單的介紹,讓有心想要提供地理資訊服務的系統管理者,在不使用商業軟體的解決方案下,也可以提供具有高效能品質的地理資訊服務。

參考文獻

1. QGIS,http://www.qgis.org
2. Open Geospatial Consortium,http://www.opengeospatial.org
3. OpenLayers,http://openlayers.org
4. OpenLayers應用示意圖,https://wiki.ncsa.illinois.edu/display/MM/Architecture
5. GeoServer,http://geoserver.org
6. GeoServer 架構圖,http://opengeo.org/publications/opengeo-architecture
7. GeoWebCache,http://geowebcache.org
8. 彭逸帆、白璧玲。2012。WebGIS 圖磚之分析與應用。2012台灣地理資訊學會年會暨學術研討會,台中。
9. 圖磚示意圖,http://www.cubewerx.com/products/wmts
10. PostGIS,http://postgis.refractions.net

Categories: Uncategorized Tags:
  1. 目前尚無任何的評論。
  1. 目前尚無任何 trackbacks 和 pingbacks。
您必須 登入 後才能發表評論。