本書以循序漸進的方式,通過講解OGC製定的相關開放Web服務規範,介紹Web GIS的原理;詳解瞭一整套利用開源軟件與開放數據開發Web GIS的方案,包括空間數據庫存儲軟件PostGIS、數據處理客戶端軟件QGIS、服務器端軟件GeoServer,以及瀏覽器頁麵端開發JavaScript API庫OpenLayers , 並通過實踐的方式,逐步介紹這些開源軟件的應用,以及如何利用OpenLayers在互聯網上共享地理信息、開發Web GIS 2.0應用;最後,還介紹瞭OpenStreetMap等開放數據的下載與使用方法。
本書主要讀者對象為地理信息係統專業的本科生與碩士研究生、政府、企業相關部門的GIS研究與開發人員,另外還適閤作為各種GIS培訓班的學習教材與參考書。
互聯網與GIS 結閤而形成的Web GIS是GIS軟件發展的必然趨勢。本書以循序漸進的方式,通過講解OGC製定的相關開放Web服務規範,介紹瞭Web GIS的原理;詳解瞭一整套利用開源軟件與開放數據開發Web GIS的方案,包括空間數據庫存儲軟件PostGIS、數據處理客戶端軟件QGIS、服務器端軟件GeoServer,以及瀏覽器頁麵端開發JavaScript API庫OpenLayers,並通過實踐的方式,一步一步地介紹這些開源軟件的應用,以及如何利用OpenLayers在互聯網上共享地理信息、開發Web GIS2.0應用;最後,本書還介紹瞭OpenStreetMap等開放數據的下載與使用方法。
本書主要讀者對象為地理信息係統專業的本科生與碩士研究生,也適用於政府、企業相關部門的GIS研究與開發人員,還適閤作為各種GIS培訓班的學習教材與參考書。
第1章 Web GIS概述 1
1.1 GIS的發展 2
1.2 Web GIS及其發展 3
1.2.1 傳統Web GIS的不足 3
1.2.2 從Web站點發展為Web服務 4
1.2.3 從SOAP發展為REST 5
1.2.4 從三層架構發展為多層架構 6
1.2.5 從Web GIS 1.0到2.0 7
1.3 Web服務 8
1.3.1 Web服務的重要性 8
1.3.2 REST及REST風格的Web服務 11
1.3.3 查看在綫的Web服務 13
1.3.4 OGC的Web服務規範 15
1.4 自由及開源軟件、開放規範與開放數據 16
1.4.1 自由及開源GIS軟件 17
1.4.2 開放規範的使用 17
1.4.3 開放數據的作用 18
1.5 實踐1:QGIS的安裝與基本使用 19
1.6 習題 22
第2章 Web服務與Web GIS的設計 23
2.1 Web GIS的係統架構 24
2.2 Web地圖的組成 26
2.2.1 基礎底圖 27
2.2.2 專題圖層 28
2.2.3 交互小組件 29
2.3 實踐2:GeoServer的安裝與初步使用 29
2.4 習題 33
第3章 空間數據的存儲與處理 34
3.1 空間數據常用的開放格式 35
3.1.1 基於文件的數據 35
3.1.2 基於空間數據庫的數據 38
3.2 Web GIS中的數據層 39
3.2.1 服務器的選擇 39
3.2.2 文件與數據庫方式的選擇 40
3.2.3 開放數據格式與專有格式的選擇 40
3.3 處理空間數據的開源工具 40
3.3.1 QGIS 41
3.3.2 GDAL與OGR工具 42
3.4 實踐3:使用QGIS裁剪與投影變換矢量數據 43
3.4.1 使用QGIS裁剪數據並轉換投影 43
3.4.2 使用OGR命令行工具裁剪與投影變換數據 45
3.4.3 在批處理中運行OGR功能 47
3.4.4 數據整閤 48
3.5 實踐4:使用QGIS處理柵格數據 48
3.6 實踐5:PostGIS的安裝與初步使用 52
3.6.1 安裝PostGIS 52
3.6.2 創建空間數據庫 53
3.6.3 導入空間數據 54
3.7 習題 57
第4章 使用WMS在服務器端繪製與查詢地圖 58
4.1 動態繪製地圖服務 59
4.1.1 動態繪製地圖的優點 59
4.1.2 動態繪製地圖的缺點 59
4.1.3 動態繪製地圖的相關服務器軟件 60
4.2 WMS規範基礎 60
4.2.1 使用GetCapabilities操作請求服務元數據 61
4.2.2 使用GetMap操作請求地圖 64
4.2.3 使用GetFeatureInfo操作請求地圖要素信息 65
4.3 WMS的樣式與符號 67
4.3.1 使用GetStyles操作請求樣式 67
4.3.2 使用GetLegendGraphic操作請求圖例 68
4.4 實踐6:使用GeoServer發布WMS服務 69
4.4.1 使用默認樣式發布一個圖層 69
4.4.2 使用樣式化圖層描述符 72
4.4.3 在QGIS中訪問WMS 77
4.5 實踐7:高級符號與圖層組 78
4.5.1 使用QGIS創建樣式化圖層描述符 78
4.5.2 將多圖層發布為WMS服務 80
4.6 習題 82
第5章 切片地圖 83
5.1 為什麼使用切片地圖 84
5.2 何時使用地圖切片 86
5.2.1 是否有滿足需求的切片地圖 86
5.2.2 投影 87
5.2.3 比例尺 88
5.3 創建與提供切片地圖服務的策略 89
5.3.1 創建切片地圖的策略 90
5.3.2 使用開源軟件創建切片 90
5.4 實踐8:使用GeoWebCache創建切片 91
5.5 實踐9:使用TileMill創建切片 93
5.5.1 使用TileMill設計地圖 93
5.5.2 輸齣與提取地圖切片 99
5.5.3 發布與測試切片 102
5.6 習題 104
第6章 使用Web地圖API訪問地圖服務 105
6.1 Web地圖API 106
6.1.1 Web地圖API的選擇 106
6.1.2 主要FOSS類型的Web地圖API 107
6.1.3 主要的商業Web地圖API 108
6.2 使用Web地圖API的基本步驟 110
6.2.1 引用JavaScript與樣式文件 110
6.2.2 地圖div與對象 111
6.2.3 Layer對象 111
6.2.4 圖層樣式化機製 112
6.2.5 事件與交互元素 113
6.3 查看OpenLayers實例 115
6.3.1 切片地圖實例 115
6.3.2 WMS實例 116
6.3.3 查詢實例 116
6.4 實踐10:使用OpenLayers實現在切片地圖上疊加WMS 119
6.4.1 發布專題數據WMS服務 120
6.4.2 準備開發環境 121
6.4.3 頁麵設計與代碼編寫 122
6.5 習題 127
第7章 在客戶端繪製矢量數據 128
7.1 在客戶端繪製矢量數據的優勢與挑戰 129
7.1.1 客戶端繪製矢量數據的優勢 129
7.1.2 客戶端繪製矢量數據的挑戰 130
7.1.3 客戶端如何繪製矢量數據 130
7.1.4 從服務器獲取數據的方法 130
7.2 使用KML矢量數據 131
7.2.1 KML簡介 131
7.2.2 在OpenLayers中使用KML 132
7.3 使用GeoJSON 133
7.3.1 GeoJSON簡介 133
7.3.2 在OpenLayers中使用GeoJSON 134
7.4 在OpenLayers中符號化矢量圖層 135
7.5 實踐11:在OpenLayers使用GeoJSON圖層 137
7.6 實踐12:訪問用戶KML數據 142
7.6.1 頁麵設計 142
7.6.2 功能實現 143
7.7 習題 148
第8章 主流JavaScript框架的使用與專題製圖 149
8.1 主流JavaScript框架 150
8.1.1 jQuery 150
8.1.2 Mootools 151
8.1.3 Ext JS 151
8.1.4 Dojo 152
8.2 OpenLayers的控件 154
8.3 基於屬性值符號化圖層 156
8.3.1 在OpenLayers中讀取屬性值 157
8.3.2 獨立值專題圖 158
8.3.3 等級符號專題圖 159
8.3.4 範圍專題圖 160
8.3.5 根據屬性限製要素的顯示 163
8.4 實踐13:使用OpenLayers與Dojo進行專題製圖 165
8.4.1 頁麵布局 165
8.4.2 代碼設計 168
8.5 習題 174
第9章 Web要素服務 176
9.1 WFS 177
9.1.1 WFS請求與響應的格式 177
9.1.2 WFS服務器與客戶端 179
9.2 事務性WFS與基於Web的數據編輯 180
9.3 實踐14:基於Web的空間數據編輯功能實現 181
9.3.1 發布服務 181
9.3.2 基於Web編輯功能開發 182
9.4 習題 190
第10章 WCS及多維數據 191
10.1 WCS及其操作 192
10.1.1 GetCapabilities操作 192
10.1.2 DescribeCoverage操作 193
10.1.3 GetCoverage操作 194
10.2 多維數據與圖像鑲嵌插件 195
10.2.1 多維數據 195
10.2.2 圖像鑲嵌插件 198
10.3 實踐15:多維數據WCS的發布 198
10.3.1 發布時間序列柵格數據 198
10.3.2 發布時間序列與高程序列柵格數據 204
10.4 實踐16:在OpenLayers中訪問WCS 207
10.4.1 頁麵設計 207
10.4.2 代碼設計 208
10.5 習題 211
第11章 Web處理服務 212
11.1 GeoServer中的WPS 213
11.1.1 WPS擴展的安裝 213
11.1.2 GeoServer中WPS包含的類型 214
11.2 WPS的操作 215
11.2.1 GetCapabilities操作 215
11.2.2 DescribeProcess操作 216
11.2.3 Execute操作 217
11.3 實踐17:使用WPS創建等高綫地圖 219
11.3.1 創建靜態等高綫地圖 219
11.3.2 動態創建等高綫 223
11.4 實踐18:在OpenLayers中使用WPS 229
11.4.1 頁麵設計 230
11.4.2 代碼實現 230
11.5 習題 233
第12章 開放數據獲取與地圖混搭應用 236
12.1 開放數據的方式 237
12.1.1 開放數據許可 237
12.1.2 商業軟件與開放數據 238
12.2 VGI與眾包項目 239
12.2.1 VGI 239
12.2.2 眾包 240
12.3 OpenStreetMap及其開放數據的應用 240
12.3.1 OpenStreetMap數據模式 241
12.3.2 OpenStreetMap的使用 243
12.4 地圖混搭應用 245
12.4.1 混搭應用的概念 245
12.4.2 網絡資源 245
12.5 實踐19:從OpenStreetMap獲取源數據 249
12.5.1 使用QGIS下載數據 250
12.5.2 使用OpenStreetMap查詢API下載數據 253
12.6 實踐20:城市天氣預報係統開發 256
12.6.1 服務準備與頁麵設計 256
12.6.2 代碼實現 256
12.7 習題 261
前 言
計算機科學技術的飛速發展為GIS(地理信息係統)提供瞭先進的工具和手段,使GIS得到瞭快速發展,應用日益廣泛。進入21世紀後,互聯網技術的普及更使GIS的發展發生瞭質的變化,互聯網已成為GIS新的操作平颱。互聯網與GIS的結閤即Web GIS,改變瞭地理信息的獲取、傳輸、發布、共享和應用的方式。在互聯網發布地理信息,為用戶提供空間數據瀏覽、查詢、專題圖製作與空間分析功能,從而實現地理信息的操作與共享,已經成為GIS發展的必然趨勢。
Web GIS概念的首次提齣是在1994年,指在互聯網上部署GIS,旨在解決冗餘數據、昂貴數據的整閤以及分布處理能力,將利用新的技術、市場和決策係統來開啓我們的世界。Web GIS是一個分散式的地理信息網絡服務,可讓地理信息通過OGC標準和W3C的界麵互相溝通存取,憑藉良好的互操作性達到以往需要龐大數據量纔能實現的功能,使用者可以隨意使用在Web GIS裏的地理空間數據。Web GIS可讓各個符閤國際標準的地理信息數據庫之間通過API方式溝通,從而保證數據不再局限於單一數據庫中,可形成網格數據庫。Web GIS是人類社會團體、組織和民眾協同閤作所建立的信息架構,擺脫以往GIS隻適用於專業人士的狀況,真正地讓使用者搜索生活中的各種信息。
早期的Web GIS雖然擁有技術上的先進性,但是推廣至一般用戶較為睏難,然而由於近幾年Web 2.0 Mapping係統的發展,齣現瞭嶄新的應用,讓以往需要大量數據纔能實現的Web應用,現在隻需要使用Web 2.0網站提供的API即可實現。Google、Yahoo!、Microsoft等公司紛紛推齣屬於自己的地圖API,大大降低瞭以往開發電子地圖的門檻,讓許多以Google Map、Bing Map等電子地圖為顯示底圖的應用網站如雨後春筍般地發展。例如,有顯示性侵害犯罪的MapSexOffenders.com、反映芝加哥犯罪的www.chicagocrime.org;結閤照片與影像的Flickr與Panoramio;讓使用者創造屬於自己的地圖,並讓Google Map和其他網頁結閤的My Map+;也有提供愛好旅遊的使用者通過係統機製和blog分享旅遊經驗,期望建立旅遊社群的MyTripBook;提供飛機航班及時信息的fboweb.com;結閤天氣信息的Weather Underground;租房信息的housingmaps.com。這些應用都顯示瞭目前電子地圖正受到大傢的重視,相信未來Web GIS 2.0會更加蓬勃發展。
構建Web GIS 2.0應用是一個係統工程,包含數據加工處理、數據存儲管理、地圖製作、地圖服務發布、專題數據發布、空間分析功能發布以及係統開發。在該過程中,需要使用多個軟件與工具。這些軟件與工具既有商業的,同樣也有免費與開源的。利用開源軟件構建Web GIS 2.0應用就是本書介紹的主要內容。
第1章在簡單迴顧GIS發展曆程之後,著重介紹Web GIS的發展以及Web服務的重要性,同時還將介紹自由及開源軟件以及在使用過程中存在的優缺點。最後將介紹客戶端開源軟件QGIS的安裝與基本使用。
第2章介紹Web GIS的係統架構與Web地圖的構成。此外,還介紹用於創建地理Web服務的開源軟件GeoServer的安裝與基本應用,包括GeoServer的Web管理頁麵及圖層預覽等。
第3章介紹瞭在自由及開源軟件領域存儲與處理空間數據的多種選擇,列齣瞭空間數據常見的開放格式,各種數據存儲結構和格式的優點。最後以實踐的方式介紹瞭如何使用QGIS與GDAL來處理GIS數據,以及如何在PostGIS中創建空間數據庫並導入空間數據。
第4章著重介紹瞭開放地理空間聯盟製定的WMS規範。雖然WMS並沒有使用最新的技術,卻是一個被廣泛使用的規範,是Web GIS的基礎。此外,還介紹瞭如何結閤QGIS與GeoServer發布帶高級符號的WMS服務。
第5章介紹瞭地圖切片的利弊,以及創建與維護地圖緩存的策略。最後通過兩個實踐演示如何在實際工作中創建地圖切片。
第6章介紹瞭當前主流的Web地圖API,並著重介紹瞭OpenLayers的基本使用方法。
第7章介紹瞭在客戶端負責繪製矢量數據的方式與方法。這是當前Web GIS的專題圖層普遍采用的方式,將所有復雜的符號係統和地圖繪製功能轉移到客戶端,使服務器隻需要提供原始的矢量數據和屬性數據。這意味著地圖引擎可以更有效地響應,從而增強交互性以及提升性能。
第8章介紹瞭引入主流JavaScript框架,例如Dojo、jQuery等,以便增強Web地圖的用戶體驗。此外,還介紹瞭如何通過專題製圖,以更豐富的形式展現空間信息。
第9章介紹瞭WFS及其服務的發布、訪問與應用,並介紹瞭如何通過該服務實現基於Web的空間數據編輯。
第10章介紹瞭WCS服務規範及其在多維數據中的應用,以及如何利用GeoServer將帶有時間與高程信息的多維數據發布為WCS服務。
第11章介紹瞭WPS及其服務的發布、訪問與應用,並介紹瞭如何通過WPS服務實現基於Web的等高綫生成以及空間數據的處理。
第12章介紹瞭“開放數據”的不同含義,並介紹瞭開放數據OpenStreetMap及其多種數據下載方法。此外,還介紹瞭混搭應用及其開發方法。
本書源代碼的下載地址為:http://pan.baidu.com/s/1pKSLvVP。如果下載有問題,請電子郵件聯係booksaga@126.com,郵件主題為“求Web GIS原理與應用開發源代碼”。
本書除瞭封麵署名作者之外,參與本書編寫的人員還有劉增良、韓光瞬、唐大仕、劉小東、賀小飛、李珍貴、陳艷玲、楊海、唐伯旺、黃澤清、李鳳英、仇詩良和戴海燕等。
由於編者水平、經驗有限,書中肯定存在一些疏漏和錯誤,希望能得到廣大讀者的批評和指正。
編 者
2016年6月
這套書的語言風格極其樸實,沒有華麗辭藻的堆砌,也沒有故弄玄虛的術語,字裏行間流淌的是作者數十年一綫開發經驗的沉澱。我最喜歡的是作者在講解一些關鍵概念時,常常會引用一些生動的生活化案例,或者類比一些讀者更容易理解的事物。比如,在解釋“空間數據模型”時,作者並沒有直接拋齣一堆專業名詞,而是用“就像為城市中的每一棟建築、每一條街道都建立一個檔案,裏麵記錄著它的位置、大小、用途等信息”來比喻,瞬間就將抽象的概念具象化瞭。這種“潤物細無聲”的教學方式,讓我在閱讀過程中感覺非常輕鬆,仿佛有一位經驗豐富的前輩在耳邊娓娓道來。書中還穿插瞭不少“經驗之談”和“避坑指南”,這些都是在正式的技術講解之外的寶貴財富。作者會毫不保留地分享自己在實際開發中遇到的各種坑,以及如何規避它們,這對於初學者來說簡直是福音。我記得有一次,我在處理大量地理編碼數據時遇到瞭性能瓶頸,當時正是書中關於“數據批量處理優化”章節裏的幾點建議,讓我找到瞭解決問題的關鍵,大大提升瞭工作效率。這種接地氣的講解方式,讓這本書不僅僅是一本技術書籍,更像是一位良師益友,陪伴我成長。
評分這本書在理論知識的深度和廣度上都做得相當齣色。它並沒有僅僅停留在“如何使用某個工具”的層麵,而是深入挖掘瞭Web GIS背後支撐的 GIS學原理、空間數據結構、網絡通信協議等等。我特彆欣賞書中關於“投影與坐標係”的講解,作者花瞭大量篇幅來闡述不同投影方式的優缺點以及在不同場景下的適用性,並配以大量的圖示和實際案例,徹底打消瞭我以往對這個概念的模糊認識。我過去一直以為隻要能顯示地圖就行,但讀完這部分,我纔意識到正確理解和運用投影係統對於保證空間數據的精度和分析的準確性至關重要。此外,書中對“空間分析算法”的介紹也相當到位,不僅僅列舉瞭幾個常用的算法,還詳細解釋瞭它們的原理、計算過程以及在實際應用中的意義。例如,在講解“緩衝區分析”時,作者不僅說明瞭如何生成緩衝區,還討論瞭如何處理不同形狀的緩衝區域,以及如何進行疊置分析。這種由淺入深、由錶及裏的講解方式,讓我在掌握技術的同時,也提升瞭對GIS學科的整體理解能力。
評分我不得不說,這本書在案例的選取上真的非常有代錶性,而且覆蓋的領域也非常廣泛。從城市規劃、環境保護,到交通管理、商業選址,幾乎囊括瞭Web GIS能夠應用的各個主要方麵。更難得的是,每個案例的介紹都不僅僅停留在“用瞭什麼技術”,而是深入剖析瞭“為什麼選擇這個技術”以及“這個技術解決瞭什麼實際問題”。作者在講解每個案例時,都會詳細描述項目的背景、目標、所遇到的挑戰,以及最終實現的解決方案。這種“問題-解決方案”的敘事結構,讓讀者能夠清晰地看到Web GIS在實際場景中的價值和作用,也更容易理解技術背後的邏輯。我印象最深刻的是關於“智慧旅遊”的案例,書中詳細展示瞭如何整閤多源異構的旅遊數據,構建一個集信息查詢、路綫規劃、景點推薦於一體的Web GIS平颱,這讓我對Web GIS在服務行業中的應用有瞭全新的認識。而且,書中還提供瞭一些非常實用的開發思路和代碼片段,雖然這些代碼片段並不直接構成完整項目,但它們就像一個個精美的積木,可以啓發讀者去構建自己的應用。我經常會將書中的代碼片段作為起點,然後結閤自己的項目需求進行修改和擴展,這大大縮短瞭我的開發周期。
評分這本書的排版風格真是讓人眼前一亮,從封麵設計到內頁的字體選擇、行間距處理,都透著一股嚴謹而又不失親和力的專業氣質。我尤其欣賞它在章節劃分上的細緻,邏輯清晰,循序漸進,哪怕是初次接觸Web GIS的讀者,也能被引導著一步步深入理解核心概念。每一章的結尾都附有精心設計的習題,這些習題不僅能幫助鞏固當天所學,更重要的是,它們往往能激發更深層次的思考,讓我開始主動探索那些書中沒有直接闡述的延伸知識點。書中的圖示和插圖也堪稱教科書級彆的範例,無論是係統架構圖還是數據流程圖,都繪製得異常清晰,準確地傳達瞭復雜的技術細節,極大地降低瞭理解門檻。我記得有一次,我卡在一個特定的技術點上,翻來覆去地讀瞭書中相關章節,最終結閤著那張關於地圖渲染流程的流程圖,茅塞頓開。這種圖文並茂的處理方式,讓原本枯燥的技術描述變得生動有趣,也讓我在學習過程中少走瞭很多彎路。而且,作者在介紹一些通用性較強的原理時,並沒有局限於特定的開發框架,而是從更宏觀的角度進行講解,這使得書中介紹的理念和方法具有更強的普適性,即便未來我選擇不同的技術棧,也能夠觸類旁通。
評分我一直認為,一本優秀的技術書籍,除瞭講解核心知識,還應該具備一種引導讀者思考的能力,而這本書恰恰做到瞭這一點。在閱讀過程中,我時常會因為書中某些開放性的問題或者作者的一些“未竟之語”而陷入沉思,並主動去查閱相關的資料。例如,在討論“實時地圖更新”技術時,作者並沒有給齣一個“萬能”的解決方案,而是列舉瞭幾種常見的實現方式,並分析瞭各自的優劣,然後鼓勵讀者思考在特定網絡環境和數據量下,哪種方式更優,或者是否有更具創新的實現路徑。這種“啓發式”的教學,讓我感覺自己不再是被動地接受知識,而是主動地參與到知識的構建過程中。書中對未來Web GIS發展趨勢的探討也讓我印象深刻,雖然隻是簡略的幾筆,但已經勾勒齣瞭一個清晰的圖景,讓我對這個領域的前景充滿瞭期待,也為我指明瞭學習和研究的方嚮。我記得當時讀到關於“地理空間信息融閤與AI應用”的部分,雖然還沒有深入研究,但已經在我心中種下瞭一顆種子,讓我開始關注相關的新技術和新動態。這本書在我看來,不僅僅是一本工具書,更像是一本“思想啓濛書”。
評分挺不錯的一本書
評分不錯
評分挺不錯的一本書
評分不值這個價錢!粗糙
評分很好,還沒有認真看
評分書比較專業,講的還不錯,值得一看,還沒看完,但是收獲不少,學習中。
評分不錯
評分很好,還沒有認真看
評分還行吧,有點雞肋,雙十一促銷纔齣手,價格貴
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有