ArcGIS API for JavaScript 開發

劉光、李雷、劉增良

  • ArcGIS API for JavaScript 開發-preview-1
  • ArcGIS API for JavaScript 開發-preview-2
  • ArcGIS API for JavaScript 開發-preview-3
ArcGIS API for JavaScript 開發-preview-1

買這商品的人也買了...

商品描述

隨著互聯網的迅速發展以及人們對地理信息系統需求的日益增長,互聯網成為GIS新的操作平臺,它與GIS結合而形成的Web GIS是GIS軟件發展的必然趨勢。ArcGIS API for JavaScript是ESRI推出的地圖API,它可以幫助用戶運用ArcGIS Server提供的服務去搭建輕量級的高性能Web GIS應用程序,將一幅交互式的地圖或一個地理處理任務(例如查詢空間數據)嵌入Web應用程序中。與3.x版本相比,近年發布的4.x版本增加了對三維數據和三維地圖場景的支持,並更加深入地與ArcGIS Enterprise和ArcGIS Online集成。本書以循序漸進的方式,通過大量的實例介紹如何使用ArcGIS API for JavaScript訪問ArcGIS Server提供的地圖、空間數據與空間分析服務,開發功能較為復雜的Web GIS應用程序,並通過擴展已有類、訪問底層API、混搭其他網絡API以及充分利用HTML 5和WebGL的新特性等多種方式,開發制圖美觀、形式多樣、功能獨特的富互聯網應用的Web GIS。此外,本書提供了幾個開發框架,讀者可在此基礎上加入專業的應用,從而實現Web GIS應用的快速開發。 本書適合政府、企業相關部門的GIS研究與開發人員,以及高等院校地理學、地理信息系統、房地產、環境科學、資源與城鄉規劃管理、區域經濟學等專業的學生參考,也適合作為相關培訓學員的學習教材與參考書。

目錄大綱

目    錄

第1章  Web GIS基礎 1

1.1  GIS及相關技術的發展 1

1.1.1  Web開發技術的發展 1

1.1.2  GIS的發展 2

1.1.3  傳統Web GIS的不足 3

1.1.4  Web服務成為解決方案 4

1.1.5  Web服務的發展 5

1.1.6  Web GIS 2.0 5

1.2  OGC的Web服務規範 6

1.2.1  OWS服務體系 7

1.2.2  空間信息Web服務的角色與功能劃分 7

1.2.3  空間信息Web服務的系統框架 9

1.2.4  OWS中制定的信息服務接口 11

1.2.5  服務的請求與響應 14

1.3  REST及REST風格的Web服務 17

1.3.1  REST 18

1.3.2  REST風格的Web服務 18

1.3.3  REST風格的Web服務實例 19

1.4  Web GIS的組成 22

1.4.1  基於REST風格的Web服務的Web GIS系統架構 22

1.4.2  Web GIS的物理組成 23

1.4.3  Web地圖的組成 25

1.5  ArcGIS Enterprise與ArcGIS Server 28

1.5.1  ArcGIS Enterprise站點的架構 28

1.5.2  ArcGIS Server發布的服務類型 30

1.5.3  服務發布 32

1.5.4  Web服務的URL及元數據 33

1.5.5  查看地圖 36

1.5.6  使用ArcGIS Server REST風格的Web服務的過程 36

1.5.7  支持的輸出格式 37

第2章  ArcGIS API for JavaScript介紹 39

2.1  ArcGIS API for JavaScript版的Hello World 39

2.1.1  3.x版本的Hello World 40

2.1.2  基於4.x版本使用AMD方式的Hello World 43

2.1.3  基於4.x版本使用ESM方式的Hello World 47

2.2  ArcGIS API for JavaScript與Dojo 49

2.2.1  ArcGIS API for JavaScript的構成 50

2.2.2  ArcGIS API for JavaScript與Dojo的關系 50

2.3  開發與調試工具 52

2.3.1  Visual Studio Code 53

2.3.2  Visual Studio 2019 54

2.4  調試工具 55

2.4.1  Google Chrome 55

2.4.2  Mozilla Firefox 62

2.4.3  其他工具軟件 63

2.5  Dojo基礎知識 66

2.5.1  JavaScript對象 67

2.5.2  函數也是對象 67

2.5.3  模擬類與繼承 69

2.5.4  使用模塊與包管理源代碼 76

第3章  頁面佈局設計 80

3.1  使用佈局小部件設計頁面框架 80

3.1.1  小部件與佈局小部件簡介 80

3.1.2  使用面板組織頁面元素 81

3.1.3  使用容器小部件設計頁面佈局 88

3.2  可移動的小部件微架構 91

3.2.1  自定義小部件的基礎知識 92

3.2.2  內容小部件基類的實現 100

3.2.3  可移動的框架小部件 109

3.2.4  測試 116

3.3  集中控制的小部件微架構 119

3.3.1  可集中控制的框架小部件 119

3.3.2  小部件容器 120

3.3.3  測試 126

3.3.4  Dojo的訂閱/發布模式的事件處理機制 127

3.4  使用菜單組織功能 128

3.4.1  菜單容器小部件 128

3.4.2  菜單項小部件 130

2.4.3  菜單小部件 131

3.4.4  測試 134

第4章  地圖與圖層 137

4.1  圖層操作 137

4.1.1  圖層類及其之間的繼承關系 137

4.1.2  切片地圖圖層 138

4.1.3  動態地圖圖層 150

4.1.4  圖形圖層 154

4.1.5  KML圖層 154

4.2  自定義圖層 155

4.2.1  自定義動態圖層——帶地理參考的影像圖層 156

4.2.2  自定義切片地圖圖層——百度地圖 160

4.3  地圖操作 163

4.3.1  地圖內容的操作 163

4.3.2  地圖視圖與場景視圖的操作 165

4.3.3  事件處理 166

4.3.4  用戶界面 168

4.4  使用圖層融合模式創建高質量的地圖 169

4.4.1  為什麽需要使用融合 170

4.4.2  API提供的融合模式 171

4.4.3  初步使用實例 174

4.5  使用圖層的effect屬性創建高質量地圖 175

4.5.1  effect屬性的設置 176

4.5.2  調整圖層亮度、對比度、飽和度實例 176

4.5.3  顏色濾鏡實例 178

第5章  空間參考系統與幾何對象 181

5.1  空間參考系統 181

5.1.1  空間參考系統類 181

5.1.2  參考系統轉換 185

5.2  幾何對象 187

5.2.1  幾何對象類及其之間的繼承關系 187

5.2.2  幾何對象的繪制 188

5.2.3  幾何對象相關的功能模塊 189

第6章  符號與圖形 190

6.1  符號 190

6.1.1  標記符號 191

6.1.2  線符號 192

6.1.3  填充符號 192

6.1.4  文本符號 193

6.1.5  制圖信息模型符號 200

6.1.6  三維符號 201

6.1.7  Web樣式符號 201

6.2  圖形 201

6.2.1  圖形對象的構成 202

6.2.2  popupTemplate與popup 202

6.3  符號與圖形代碼優化 210

第7章  要素圖層與專題圖 212

7.1  要素圖層 212

7.1.1  要素圖層的創建 213

7.1.2  返回數據的限定 214

7.1.3  客戶端的查詢與過濾 215

7.1.4  要素高亮顯示 216

7.1.5  要素效果 216

7.2  專題圖 219

7.2.1  獨立值專題圖 219

7.2.2  點密度專題圖 221

7.2.3  範圍專題圖 223

7.2.4  等級符號專題圖 225

7.2.5  多變量專題圖 230

7.2.6  熱力圖專題圖 232

7.2.7  多比例尺專題圖 233

7.3  自定義專題圖 235

7.3.1  直方圖專題圖 235

7.3.2  餅圖專題圖 241

7.4  高密集數據的可視化 243

7.4.1  數據聚類 243

7.4.2  設置每個要素的不透明度 247

7.5  智能制圖 248

7.5.1  為地圖選擇更好的符號大小與顏色 249

7.5.2  優勢字段可視化 253

7.5.3  字段之間關系可視化 256

7.6  圖層標註 259

第8章  空間分析 261

8.1  圖形查詢屬性 261

8.1.1  利用identify實現空間查詢 261

8.1.2  利用query類實現空間查詢 267

8.1.3  表格形式顯示查詢結果 271

8.1.4  圖形化表達查詢結果 277

8.2  屬性查詢圖形 281

8.3  幾何服務 285

8.3.1  緩沖區分析 285

8.3.2  確定空間關系 289

8.4  地理處理服務 292

8.5  網絡分析 294

8.5.1  最優路徑分析 295

8.5.2  最近設施點分析 295

8.5.3  服務區分析 296

8.6  影像分析 298

8.6.1  查詢影像服務 299

8.6.2  影像測量 301

第9章  三維Web GIS 306

9.1  場景視圖與三維圖層 306

9.1.1  場景視圖 306

9.1.2  相機 307

9.1.3  三維圖層 310

9.2  三維可視化 311

9.2.1  符號層 311

9.2.2  使用圖標、線條和填充符號 312

9.2.3  使用對象、路徑和拉伸符號 314

9.2.4  使用屬性表示要素的實際大小 318

9.2.5  場景圖層的專題圖 320

9.2.6  藝術風格制圖 322

9.3  高亮與標註 324

9.3.1  高亮三維要素 324

9.3.2  高亮集成網格圖層 328

9.3.3  三維要素標註 331

9.4  性能和質量 334

第10章  小部件 339

10.1  圖層列表小部件 339

10.2  量測小部件 341

10.3  捲簾小部件 344

10.4  搜索小部件 345

10.5  時間滑塊小部件 347

10.6  打印小部件 350

第11章  創建自定義圖層與圖層視圖 353

11.1  創建自定義圖層 353

11.1.1  自定義高程圖層 354

11.1.2  自定義切片圖層 358

11.1.3  創建融合圖層 360

11.2  利用Canvas API創建自定義圖層視圖 364

11.2.1  自定義圖層視圖的過程 364

11.2.2  點圖層動畫效果 365

11.3  利用WebGL創建自定義圖層視圖 368

11.3.1  WebGL基礎 368

11.3.2  利用WebGL自定義圖層與圖層視圖的基本過程 371

11.3.3  使用WebGL輔助庫 377

11.3.4  使用WebGL引擎deck.gl 381

11.4  自定義外部渲染器 384

11.4.1  自定義外部渲染器的過程 384

11.4.2  自定義外部渲染器實例 386

第12章  混搭地圖應用實例 393

12.1  混搭維基百科 393

12.1.1  GeoNames 393

12.1.2  實例 395

12.2  混搭天氣服務 400

12.2.1  Geolocation API 400

12.2.2  OpenWeatherMap介紹 401

12.2.3  獲取氣象條件實例 402

12.2.4  顯示氣象雷達數據 404

12.3  新冠疫情地圖 406