轉自:http://blog.csdn.net/cdl2008sky/article/details/7266680
gis的三大應用
第一類是政府應用,“電子政務”
是當今政府加強資訊化建設的新方向,是指在現代計算機、網絡通信等技術支撐下,政府機構日常辦公、資訊收集與釋出、公共管理等事務在數字化、網絡化的環境下進行的國家行政管理形式。gis已成為很多政府決策部門工作必備的支撐系統之一,在國家水利、電力、林牧業、地礦、交通、資源環境保護等機構己發揮重要作用。
第二類是企業應用,随着資訊時代的到來,企業的組織、營運、管理也逐漸向資訊化方向發展,gis通過提供可視化地理空間資訊服務結合企業管理資訊系統,為企業的業務規劃、物流等領域提供輔助決策。
第三類是大衆應用,webgis的産生為大衆提供了擷取地理空間資訊服務的平台,通過開放的、操作簡單的webgis服務,滿足大衆對地理資訊的需求,如:友善人們出行的谷歌、百度地圖服務。
gis三大組成部分
(1)數字化的資料
數字化的資料是資訊在計算機中的表現形式,是指要使用計算機軟硬體進行圖形化顯示和空間分析操作的地理空間資訊。gis中的資料不同于其他資訊系統的資料,它具有空間特性,gis資料分為空間資料和非空間資料兩類.比如gis中的一條資料經度和緯度資料表示該事物的空間位置,屬于空間資料,名字和日期資料表示該事物的屬性,屬于非空間資料,gis将空間資料和非空間資料進行結合進行分析、處理。
gis功能
基本功能應包括:資料輸入、資料編輯、資料存儲、資料操作、資料分析、資料顯示和輸出
(1)資料輸入:也稱資料采集
人工數字化輸入
遠端遙感的衛星圖像和gps
(2)資料編輯:随着地圖要素的數字化操作,使用者需要完成将所有的空間要素關聯到其對應的屬性資料,清理并改正在資料轉換過程中産生的錯誤.
(3)資料存儲:當資料經過數字化、編輯後,數字化的地圖資料需要存儲在磁盤或其他儲存設備上,存儲使用的資料模型最常用的包括:栅格格式和矢量格式。兩種格式都将原有圖資料簡化為一種容易存儲的通用格式。
(4)資料操作:當資料在系統中存儲後,使用者就可以對資料進行一系列的操作,gis操作通常以一個工具包的形式提供給使用者,工具包中包括基本的資料操作和分析功能,如:資料檢索、面積周長測量、坐标轉換、投影變換、圖幅接邊等。
(5)
資料分析:gls的核心在于其強大的分析能力,如對距離某一事故地點一定範圍内各種空間要素的搜尋,并對相關的資訊進行統計分析,為事故處理提供所需要的資訊。遙感技術、全球定位技術與地理資訊系統合稱為“3s”技術
opengis(open
geodata interoperation
specification,ogis-開放的地理資料互操作規範)
是由美國ogc(opengis協會,opengis
consortium)提出,主要架構和類庫
幾何基礎類庫
代表:
jts(java), geos(c++),
shapely(python)
這類幾何基礎類庫主要實作的是opengis的simple feature
access标準,簡單地說他們就是對幾何類型(geometry)進行了一定程度的封裝。以jts為例,它按照opengis對于geometry的描述實作了基于java的接口和繼承關系,制作好了可以使用的類似point、linestring這樣的類。另外這些類庫還普遍實作了opengis的de-9im空間位置關系判斷和一些常用的計算幾何方法(如緩沖(buffer))此類軟體是所有gis類庫的基礎,正如幾何是gis的基礎之一一樣。
資料源實作
代表:postgis(postgresql),mysql
spatial
資料源的實作主要是開源資料庫的空間擴充。資料庫的空間擴充不僅僅在資料表中支援幾何類型的存儲,
而且更提供了sql級别的集合關系判斷,例如,可以直接利用sql查詢在某個多邊形内的點。
postgis是加拿大refractions公司支援的開源項目,它為開源資料庫postgresql提供了空間支援。postgis安裝後,postgresql中出現一個模版資料庫,建立空間資料庫時隻需以postgis為模版即可。postgis在sql級别上實作了基本的空間運算功能。另外絕大多數開源gis軟體(即使是不嚴格遵守opengis标準的)都支援postgis資料表的直接載入,讀寫等功能。毋庸置疑,postgis是opengis資料源最佳實作。
目的是促進采用新的技術和商業方式來提高地理資訊處理的互操作性(interoperability),
它緻力于消除地理資訊應用(如地理資訊系統,遙感,土地資訊系統,自動制圖/設施管理(am/fm)系統)
之間以及地理應用與其它資訊技術應用之間的藩籬,建立一個無“邊界”的、分布的、基于構件的地理資料互操作環境
中間件
代表:geotools(java)
中間件在系統中扮演連接配接資料和服務的角色。geotools承擔了從各種資料源(如postgis,gml,shapefile,wfs)讀取資料并将資料标準化的工作。feature接口就定義在geotools中,不同資料源的資料讀出後被統一成包含一個geometry成員(定義在jts中)的feature接口的實作。這樣,進一步的操作隻需面向feature即可,
省去了高層軟體對于不同資料源的解讀過程。另外,geotools還是opengis标準的全面實作,其中包括filter、坐标轉換、gml。
geotools和jts還有geoapi到底是什麼關系?
jts是加拿大的 vivid solutions
做的一套開放源碼的 java
api。它提供了一套空間資料操作的核心算法。為在相容ogc标準的空間對象模型中進行基礎的幾何操作提供2d空間謂詞api。
geoapi為opengis規範提供一組java接口。
geotools是一個開源的java
gis工具包,可利用它來開發符合标準的地理資訊系統。
geotools提供了ogc(open geospatial
consortium)規範的一個實作來作為他們的開發。
簡單而言:geotools的目标是緻力于開發一個符合規範的gis工具包,既然是工具包,那麼就要有很多工具用來對付建構一個完整的地理資訊系統時會碰到的問題,常見的問題比如:投影的轉換,基準面的設定,空間資料對象的渲染和樣式,各種資料源的支援,各種gis檔案格式支援,空間資料過濾與搜尋。。。。等等的問題。
在開發這些工具的時候,恰好在處理空間資料圖形關系的時候,有一個非常好的解決方案,那就是jts,jts解決了對象與對象之間拓撲關系的判定和計算,并提供很多有用的算法來解決對象的面積,長度。。。等等等的問題。這樣而言,jts就相當于geotools中的一個子子產品。但因為這個子產品本身不是geotools工程的,是以在javadoc中找不到jts的api,需要到jts官網上面另外下載下傳。至于geoapi則是geotools符合标準的模闆。它制定了地理資訊系統中所有的資料類型應該是什麼,投影轉換的方式有哪幾種諸如此類的規範。這樣相容geoapi接口的geotools才是一個符合規範的地理資訊系統工具包。
wms/wfs伺服器
web map service(wms)根據使用者的請求傳回相應的地圖(包括png,gif,jepg 等栅格資料或者svg,web cgm 矢量資料)
。
geoserver(java),mapserver(php)
地圖伺服器扮演向網絡中的用戶端提供地圖服務的角色。這類地圖伺服器可以接收統一規範的wms和wfs請求(request),傳回多種格式的資料。這個過程有wms/wfs規範的嚴格規定,是以,對用戶端來說其地圖伺服器的實作究竟是什麼并不會造成太大影響。
geoserver
是 opengis web 伺服器規範的 j2ee 實作的社群開源項目,利用 geoserver
可以友善的釋出地圖資料,允許使用者對特征資料進行更新、删除、插入操作,通過 geoserver
可以比較容易的在使用者之間迅速共享空間地理資訊。
geoserver相容 wms 和 wfs 特性;支援 postgis 、 shapefile 、
arcsde 、 oracle 、 vpf 、 mysql 、 mapinfo ;支援上百種投影;能夠将網絡地圖輸出為 jpeg 、 gif 、 png 、
svg 、 kml 等格式;能夠運作在任何基于 j2ee/servlet 容器之上;嵌入 mapbuilder 支援 ajax
的地圖用戶端openlayers;
用戶端
代表:openlayers/mapbuilder(javascript),udig(java),qgis(c++)
用戶端分為浏覽器和桌面用戶端程式兩種。以openlayers為代表的b/s系統用戶端現在已經非常強大,它可以封裝wms請求,在浏覽器上實作地圖的切片載入功能。另外拖動、縮放都功能也非常完善,可以實作跨浏覽器操作。最近的openlayers版本還支援了矢量編輯功能,可以通過wfs-t送出。而傳統的桌面用戶端程式功能則更加強大,支援多種包括wms和wfs在内的資料源,另外編輯功能、操作性也要比浏覽器中的強大。
資料格式
esri的shapefile格式
是gis矢量檔案格式的事實标準,通常由.shp, .shx, .prj, .dbf等檔案組成。
opengis的實作軟體普遍支援shapefile的讀寫。shapefile在geoserver中可以直接作為資料源,但是這種方式并不被推薦,原因很簡單,基于檔案的資料源可能造成性能不佳和資料丢失。shape格式檔案最少包含3個檔案,他們的字尾是:.shp,
.dbf, .shx。.shp存儲地理形狀和位置資訊,.dbf存儲屬性資訊,.shx是索引檔案。
mapinfo 的.mif/.mid格式
.mif的檔案,它主要用來儲存空間對象的幾何資料;擴充名為.mid的檔案,它主要用來儲存與幾何資料相對應的屬性資料;
gml
gml是opengis的标準規範之一,它基于xml描述地理資料。于shapefile相比,xml更容易讀寫,易于在網絡中以各種形式傳播。
同時,xml還具有可讀性,人可以了解和辨識。geotools實作了gmldatastore,是以在geoserver中gml也可以直接作為資料源(需要下載下傳gml擴充)。
同時,gml的資料源為資料源動态化提供了實作的思路和可能性。
地理應用伺服器
mapinfo mapxtreme
mapobject autodesk
map
guide
arcims
super map
arcgis server
mapxtreme是mapinfo公司開發的基于internet/
intranet的應用伺服器,它具有強大的地圖化功能,包括繪制專題地圖、緩沖區分析、地圖編輯、地圖目标查找、地圖顯示、圖層控制、空間選擇、地理編碼、擴充地圖庫和示例資料等。管理者隻要在web伺服器上對mapxtreme進行程式設計和管理,使用者就能夠通過web浏覽器通路到地圖資訊。
工作方式
mapxtreme的工作方式總體來說是瘦用戶端的工作方式,用戶端看到的地圖是服務端根據使用者請求動态生成的某種格式的圖檔。mapxtreme采用的是b/s模式三層架構用戶端首先向web伺服器送出http請求,遞交form表單,web伺服器收到該請求後,把地圖操作請求送出給地圖應用服務,地圖應用服務在内部調用mapxserver響應使用者的操作請求,進行相應的空間分析和處理後,産生新的地圖圖檔,傳回給web伺服器,web伺服器再把該圖檔嵌入到html頁面中并傳回到用戶端的浏覽器上