1、地理資訊系統(GIS)簡介
什麼是地理資訊系統
地理資訊系統(Geographic Information System 或 Geo-Information system,GIS)有時又稱為“地學資訊系統”。它是一種特定的十分重要的空間資訊系統。它是在計算機硬、軟體系統支援下,對整個或部分地球表層(包括大氣層)空間中的有關地理分布資料進行采集、存儲、管理、運算、分析、顯示和描述的技術系統。 可以簡單點說,地理資訊系統就是用地圖資訊描述資料的系統,他也不但是系統軟體,可以說他是一門學科。因為他覆寫的範圍非常廣、應用的範圍也非常廣。
什麼是地理資訊系統二次開發
為了滿足不同領域的使用者地理資訊系統的需要,“地理資訊系統二次開發”是采用可視化語言,利用地理資訊系統應用平台開發元件,重新組合功能應用,實作使用者需求。例如:ArcGIS、百度地圖API等等。例如:從地理資訊系統基本操作、空間查詢、空間分析、專題圖制作以及三維場景浏覽與分析等方面功能的實作,由淺入深地進行了地理資訊系統程式開發,地理資訊系統二次開發又分為C/S和B/S兩種開發模式,根據應用開發又分為,企業級應用開發和大衆級應用開發。
地理資訊系統二次開發C/S
C/S開發,與我們的傳統C/S開發概念一樣,是桌面級應用開發,在地理資訊系統C/S開發中,優點突出,比如:進行大量地理資訊資料處理、編輯。缺點就是不能一次部署,共享應用。
地理資訊系統二次開發B/S
B/S開發與C/S開發正好相反,使用浏覽器進行使用操作,對大資料處理能力有限,但可以實作一次部署,共享應用。雖然近幾年B/S方面大資料方面應用開發,有了很大進步,但還是很難滿足需要。更适合應用與資料的浏覽、檢視、統計分析。
GIS企業級應用開發
GIS系統企業級應用開發,主要是使用專用的地理資訊系統應用平台,進行二次開發,來實作地理資訊的編輯、修改、規劃、分析、各種算法應用。國内代表:SupMap、MapGIS、NewMap,國外代表:ArcGIS、MapInfo。
地理資訊系統應用(企業級)
企業級地理資訊系統應用,目前最流行的是,應用與智慧地球、智慧中國、智慧城市的應用中,使用與城市建設的各個領域。目前我們地理資訊系統研發人員急缺,如:GIS畢業的學生缺少研發經驗,有研發的人員缺少GIS經驗。
GIS大衆級應用開發
大衆級應用開發,注意是實作一下大衆化的搜尋、查詢、資訊檢視、定位等功能,不具備強大的分析、處理、規劃功能。國内代表:百度地圖、騰訊地圖、高德地圖,國外代表:Google地圖。
目前最流行的地理資訊系統應用(大衆級)
LBS 位置資訊,主要應用于手機、電腦的地理位置分析。
LBS是基于位置的服務,它是通過電信移動營運商的無線電通訊網絡(如GSM網、CDMA網)或外部定位方式(如GPS)擷取移動終端使用者的位置資訊(地理坐标,或大地坐标),在地理資訊系統平台的支援下,為使用者提供相應服務的一種增值業務。
GIS系統特點
- 地理定位;
- 具有采集、管理、分析和輸出多種地理空間資訊的能力;
- 系統以分析模型驅動,具有極強的空間綜合分析和動态預測能力,并能産生高層次的地理資訊;
- 以地理研究和地理決策為目的,是一個人機互動式的空間決策支援系統。
怎樣學好地理資訊系統研發
- 熟悉地理系統相關知識
- 學習一種GIS系統開發平台,國内推薦 Supmap,國外推薦 ArcGIS
- 大衆級别開發,國内推薦百度地圖,國外推薦Google地圖
- 使用平台開發實戰
2、ArcGIS簡介
什麼是ArcGIS
ArcGIS是美國Esri公司研發的建構于工業标準之上的無縫擴充的GIS産品家族。它整合了資料庫、軟體工程、人工智能、網絡技術、雲計算等主流的IT技術,宗旨在為使用者提供一套完整的、開放的企業級GIS解決方案。
ArcGIS主要二次開發産品
- ArcGIS Engine:基于桌面
- ArcGIS Server:基于服務端
- ArcGIS API:基于用戶端
什麼是ArcObjects
- ArcObjects是ArcGIS底層的開發元件庫。
- ArcObjects包含了大量的可程式設計元件,為開發者內建了全面的GIS功能。
- ArcObjects(簡稱AO)是ESRI公司ArcGIS 家族中基于Microsoft COM技術所建構的一系列COM元件集。
ArcGIS産品發展史
- 1981年10月到1982年6月的9個月裡,Esri開發出了ARC/INFO 1.0。
- 1986年,PC ARC/INFO的出現是Esri軟體發展史上的又一個裡程碑,它是為基于PC的GIS工作站設計的。
- 1992年,Esri推出了ArcView軟體,它使人們用更少的投資就可以獲得一套簡單易用的桌面制圖工具。
- 1999年,釋出 ArcInfo 8,同時也推出了ArcIMS,這是當時第一個隻要運用簡單的浏覽器界面,就可以将本地資料和Internet網上的資料結合起來的GIS軟體。
- 2004年4月,Esri推出了新一代9版本ArcGIS軟體,為建構完善的GIS系統,提供了一套完整的軟體産品。
- 2010年,Esri推出ArcGIS 10。這是全球首款支援雲架構的GIS平台,在WEB2.0時代實作了GIS由共享向協同的飛躍;同時ArcGIS 10具備了真正的3D模組化、編輯和分析能力,并實作了由三維空間向四維時空的飛躍;真正的遙感與GIS一體化讓RS+GIS價值凸顯。
- 目前最高版本ArcGIS 10.8。
ArcGIS主要API
Web端:
- ArcGIS for silverlight
- ArcGIS for flex
- ArcGIS for javascript
手機端
- ArcGIS for android
- ArcGIS for ios
- ArcGIS for windows phone
ArcGIS for JavaScript
ArcGIS for JavaScript(JavaScript API)是 ESRI 根據 JavaScript 技術實作的調用ArcGIS Server REST API接口的一組腳本。通過 ArcGIS for JavaScript 可以将ArcGIS Server提供的地圖資源嵌入到Web應用中。ArcGIS for JavaScript API是基于Dojo架構的,使用了大量的Dojo技術,是以要想熟練掌握API用法,先要對javascript Dojo架構有個深入的了解。
3、GIS 相關技術
Web開發技術
Web開發技術總共有6個階段:
-
第一階段:靜态内容階段
Web由大量HTML文檔組成。
-
第二階段:CGI程式階段
Web伺服器增加了一些程式設計API,通過這些API編寫的應用程式,可以向用戶端提供一些動态變化的内容。Web伺服器與應用程式之間的通訊通過CGI協定完成。
-
第三階段:腳本語言階段
伺服器端出現了ASP/PHP/JSP/等支出Session的腳本技術,浏覽器出現了java Applet/javascript等技術。
-
第四階段:瘦用戶端階段
伺服器出現了獨立于Web伺服器的應用伺服器,同僚出現了Web MVC開發模式,基于這些架構的應用,通常都是瘦用戶端應用,因為他們是在伺服器生産全部的動态内容。
-
第五階段:RIA應用階段
出現了多種RIA技術(富網際網路應用)技術。如:DHTML+AJAX,flex,Silverlight等。
-
第六階段:HTML5
HTML5 + 各種 JavaScript 架構。
Web服務技術
1998年開始發展XML技術,随後蓬勃發展的Web服務技術正式基于XML技術。Web服務技術主要目标是在現有的各種異構平台基礎上構築一個通用的與平台無關、語言無關的技術層,各種不同平台之上的應用依靠這種技術層來實施彼此的聯通和內建。将Web服務用于GIS,實作了基于Web服務體系的GIS跨越。
WebGIS技術
WebGIS技術是基于Web的GIS技術,WebGIS1.0是基于早期網絡環境提出的,WebGIS2.0主要是Web服務、REST與Ajax等技術,ArcGIS API For JavaScript正是一套建構WebGIS2.0應用的API。
4、WebGIS基礎——基于OGC的WEB服務
什麼是OGC
- OGC一個是由多個企業、大學、政府部門組成的非盈利組織,最初目的是想提供一套綜合的開放性接口規範,以便開發商可以根據這些規範來編寫互操作元件,以滿足GIS互操作的要求,後來就成為一個專門發展OpenGIS規範的機構,以制定和推進開放的空間資料互操作規範為目标。
- 對于Web服務在空間資訊領域的應用,OGC表現了極大的關注。2001年3月,OGC發出技術請求,啟動了OWS标準的開發程序。
- 在OGC制定的規範中,從規範的名稱中也可以看出向Web服務的發展趨勢,從原先用Server,後來用Service,這實際上展現了從傳統的WebGIS向Web服務觀念的轉變。
OWS服務體系
在OWS服務體系中,主要的部分包括:
- 地理資料服務(DateSercice)—提供對空間資料的服務,主要有WFS(Web FeatureService,矢量資料服務),WCS(WebCoverage Service,栅格資料服務)。地理資料服務傳回的結果通常是帶有空間參照系的資料。
- 地理描述服務(PortrayalService)—提供對空間資料的描述,主要有WMS(Web Map Service,地圖服務),其中地圖可以由多個圖層組合起來,每個地圖可以用SLD(Styled Layer Descriptor)來對地圖進行描述。地圖服務的傳回結果通常是矢量圖形或栅格圖形。
- 過程處理服務(ProcessingService)—提供地理資料的查找、索引等服務,主要有Geocoder(地學編碼範圍)、 Gazetteer(地名索引服務)、 Coordinate Transfer Service (坐标轉換服務等)。
- 釋出注冊服務(Registry)—提供各種服務的注冊服務,以便于服務的發現。其中包括資料類型、資料執行個體、服務類型、服務執行個體的注冊服務。注冊服務提供了各個注冊項的登記服務、更新及查找服務。
- 用戶端應用(ClientApplication)—及用戶端的基本應用,如地圖的顯示、地圖浏覽以及其他一些增值服務。
OWS常用服務類型
注冊服務
注冊服務提供了一個分類、注冊、描述、搜尋、維護和通路WEB資源資訊的公共機制。注冊中有不同的角色,如:資料類型目錄(地理特征、覆寫、傳感器等類型)、線上資料執行個體目錄(資料集、資料倉庫、符号庫等)、服務類型目錄(WFS,WCS,WMS等)、線上服務執行個體目錄。
處理服務
處理服務提供對地理空間資料進行操作和增值服務,典型的處理服務包括:坐标轉換服務(CTS)、地理編碼服務、地名詞典服務。
描述服務
提供對地理空間資訊進行可視化的能力,如:WMS,CPS。
資料服務
資料服務提供對資料集和資料倉庫的通路,如:WFS,WCS,SCS,IAS。
編碼服務
所有OpenGIS架構的編碼規範采用XML Schema來定義,如:GML,XIMA,SLD,LOF 等。
OpenGIS
OpenGIS(Open Geodata Interoperation Specification,OGIS,開放的地理資料互操作規範)由美國OGC(OpenGIS協會,Open Geospatial Consortium)提出。
服務的請求方式
服務的請求方式有兩種,分别是Get和Post。
5、WebGIS基礎——ArcGIS Server
什麼是ArcGIS Server
- ArcGIS Server 是一個基于Web的企業級GIS解決方案,它從ArcGIS 9.0版本開始加入Esri産品家族。
- ArcGIS Server為建立和管理基于伺服器的GIS應用提供了一個高效的架構平台。他充分利用了ArcGIS的核心元件庫ArcObjects,并基于工業标準提供Web GIS服務。ArcGIS Server将兩項功能強大的技術——GIS和網絡技術結合在一起,GIS擅長與空間相關的分析和處理,網絡技術則提供全球互聯、促進資訊共享。
ArcGIS Server的優勢和特點
- 集中式管理代來低成本。
- 瘦用戶端也可以享受到進階GIS服務。
- 使WebGIS具備了靈魂的資料編輯和進階GIS分析功能。
- 支援大量并發,具有負載均衡能力。
- 可以根據工業标準很好的與其他企業系統整合,進行協調工作,為企業經營管理提供支援。
- ArcGIS Server的出現使我們可以利用主流網絡技術定制适合自身需要的網絡GIS解決方案,具有更大的可伸縮性來滿足多樣化的企業需求。
ArcGIS Server站點的架構

ArcGIS Server站點組成
ArcGIS Server 釋出的服務類型
ArcGIS Server有多種不同的服務,包括地圖服務、要素服務、影像服務等。
地圖服務
- 切片地圖:為快速顯示地圖,預先将地圖切成一定規格的圖檔。
- 動态地圖:根據每個請求動态的繪制地圖。
- KML:生成Google Earth等支援的KML格式資料。
- OGC傳回遵循OGC相關标準的地圖資料(包含:WCS/WFS/ WMS/ WMTS)。
要素服務
OGC 傳回地圖或圖層中矢量要素的空間幾何位置與資訊屬性資訊,有應用程式的用戶端而不是伺服器負責繪制要素,OGC使用者傳回遵循OGC相關标準的資料(包含:WCS/WFS/WFS-T/WMS/WMTS)。
地理處理服務
OGC 将地理處理功能釋出為WEB服務,如:WEB列印等。隻有ArcMap成功執行的功能才能釋出。
影像服務
提供栅格和影像服務。
網絡分析服務
提供交通網絡分析,例如:查找最近設施。
幾何服務
将幾何計算功能釋出為服務。
Globe服務
将ArcGlobe文檔釋出為WEB服務。
Web REST 服務的URL
http://伺服器名:端口/arcgis/rest/services
使用ArcGIS Server Rest服務的過程
- 建構請求 URL
- 送出請求到 ArcGIS Server
- 接受 ArcGIS Server 響應
- 解析和使用響應
支援輸出的格式
- Html
- Json
- Image
- Help
- Lyr
- Nmf
- jsapi
6、WebGIS基礎——ArcGIS API for JavaScript
ArcGIS API for JavaScript 簡介
ArcGIS API for JavaScript(JavaScript API)是基于浏覽器的 API,用于開發高性能、易于使用的地圖應用。API 允許您很容易地在web頁面中嵌入地圖。JavaScript API由 Esri ArcGIS online 托管,并且免費使用。
下載下傳位址:https://developers.arcgis.com/javascript/jsapi/argument_aliases.html
學習位址:https://developers.arcgis.com/javascript/jsapi/argument_aliases.html
ArcGIS API for JavaScript 功能
- Esri 提供的Javascript API除了ArcGIS API for JavaScript外,還有分别針對其他服務的擴充API,如:微軟 Bing 地圖擴充 API,Google 地圖擴充 API。
- 以自己的資料與伺服器上的資料組合顯示地圖。
- 在ArcGIS Online基礎地圖上疊加自己的資料。
- 在GIS資料中查找要素或者屬性。
- 在服務上執行GIS模型并顯示結果。
ArcGIS API for JavaScript 包含内容
- 地圖顯示
- 地圖繪制
- 地圖任務
- 使用Dojo與其他類庫進行擴充
ArcGIS API for JavaScript 常用API庫
- esri:ArcGIS 常用API包
- esri/arcgis:元件擴充包
- esri/dijit:界面庫包
- esri/dijit/analysis:分析包
- esri/dijit/editing:地圖編輯包
- esri/dijit/util:其他内容
- esri/geometry:幾何分析包
- esri/layers:圖層包
- esri/plugins:插件包
- esri/process:程序包
- esri/renderers:渲染包
- esri/styles:樣式包
- esri/symbols:符号包
- esri/tasks:任務包
- esri/toolbars:工具包
ArcGIS API for JavaScript 與 dojo
ArcGIS API for JavaScript建構在 dojo 之上,進而充分利用 dojo 來屏蔽各種浏覽器的差異。
Dojo 是一個 JavaScript 實作的開源 DHTML 工具包。
開發環境
- 開發工具:Visual Studio 2013
- 資料庫:Oracle 11G
- Arcgis 10.1
- Arcgis API for JavaScript 3.9