GeoTools 地理信息系統(tǒng)開發(fā)
定 價(jià):79.8 元
- 作者:王頊 劉鈞文 王新宇 孫運(yùn)娟
- 出版時(shí)間:2022/11/1
- ISBN:9787115593870
- 出 版 社:人民郵電出版社
- 中圖法分類:P208.2
- 頁(yè)碼:173
- 紙張:
- 版次:01
- 開本:16開
GeoTools 是由開源社區(qū)維護(hù)的一套地理信息系統(tǒng)的開發(fā)組件和解決方案。GeoTools 的實(shí)現(xiàn)完整遵循了OGC 的各類規(guī)范,并在二十多年的迭代中,形成了活躍的開源社區(qū)生態(tài)。
本書從GeoTools 的基本信息、社區(qū)生態(tài)開始介紹,隨后以地理信息的基本概念為脈絡(luò),詳細(xì)介紹GeoTools 是如何實(shí)現(xiàn)并管理坐標(biāo)參考系統(tǒng)、如何管理矢量數(shù)據(jù)和柵格數(shù)據(jù),以及如何連接地理數(shù)據(jù)庫(kù)的。在本書的最后,通過實(shí)現(xiàn)一個(gè)空間數(shù)據(jù)管理系統(tǒng),將全書的知識(shí)體系串聯(lián)起來(lái),幫助讀者形成開源地理信息解決方案,來(lái)解決地理信息系統(tǒng)中的數(shù)據(jù)解析、坐標(biāo)計(jì)算、空間關(guān)系等常見問題。
本書適用于有志于從事地理信息系統(tǒng)開發(fā)工作的人員,也可以幫助從事傳統(tǒng)商業(yè)地理信息系統(tǒng)開發(fā)和管理工作的人員進(jìn)一步了解開源地理信息系統(tǒng)。
(1)基于GeoTools,深入淺出地為地理信息系統(tǒng)相關(guān)學(xué)科的從業(yè)者梳理了學(xué)科脈絡(luò)、基礎(chǔ)開發(fā)知識(shí),并通過實(shí)際解決方案進(jìn)一步探討和明晰了工具的使用與實(shí)現(xiàn)方式。
(2)從實(shí)現(xiàn)并管理坐標(biāo)參考系統(tǒng)、管理矢量數(shù)據(jù)和柵格數(shù)據(jù)、連接地理數(shù)據(jù)庫(kù) ,以及實(shí)現(xiàn)一個(gè)空間數(shù)據(jù)管理系統(tǒng)等方面,幫助讀者形成開源地理信息解決方案。
(3)書中的代碼更多的是為地理信息行業(yè)相關(guān)開源規(guī)范做解釋的,讀者無(wú)需具有深厚的程序設(shè)計(jì)功底,僅需了解入門級(jí)的Java 程序設(shè)計(jì)知識(shí),即可順利地閱讀書中的代碼。
(4)智慧城市、地理信息系統(tǒng)領(lǐng)域5位學(xué)者、實(shí)踐者謝國(guó)鈞、田康、王駿飛、嚴(yán)福強(qiáng)、牛一峰親筆推薦!
王頊
本碩均為地理信息系統(tǒng)專業(yè),曾任職于航天天繪科技有限公司、原中國(guó)移動(dòng)雄安產(chǎn)業(yè)研究院,現(xiàn)任職于京東科技集團(tuán)。一直從事地理信息系統(tǒng)軟件的研發(fā)工作,在智慧城市、智慧園區(qū)、國(guó)土空間規(guī)劃、應(yīng)急預(yù)警、自然資源監(jiān)管等領(lǐng)域具有十多個(gè)成功項(xiàng)目的經(jīng)驗(yàn)。
劉鈞文
哈爾濱工業(yè)大學(xué)碩士,中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)會(huì)員。曾任京東科技算法研究員,現(xiàn)任職于紅山微電子技術(shù)有限公司。一直從事時(shí)空數(shù)據(jù)引擎的開發(fā)、時(shí)空數(shù)據(jù)產(chǎn)品的研發(fā)工作。
王新宇
本科就讀于華盛頓大學(xué)西雅圖校區(qū)地理信息系統(tǒng)專業(yè),F(xiàn)在讀于南加利福尼亞大學(xué)空間數(shù)據(jù)科學(xué)碩士,具有多年GeoTools使用經(jīng)驗(yàn),熟讀源碼。
孫運(yùn)娟
香港理工大學(xué)地理信息學(xué)博士在讀,具有多年的時(shí)空大數(shù)據(jù)處理和分析經(jīng)驗(yàn)。
第 1 章 GeoTools 基本知識(shí) 1
1.1 GeoTools 簡(jiǎn)介 2
1.2 GeoTools 架構(gòu) 2
1.3 GeoTools 特性 3
1.4 GeoTools 生態(tài) 4
1.4.1 兼容地理信息系統(tǒng)標(biāo)準(zhǔn) 4
1.4.2 內(nèi)部生態(tài) 5
1.4.3 外部生態(tài) 8
1.5 本章小結(jié) 11
第 2 章 GeoTools 快速入門 12
2.1 Java 概述 12
2.1.1 Java 語(yǔ)言特性 12
2.1.2 JDK 與JRE 14
2.2 GeoTools 的構(gòu)建 15
2.2.1 安裝構(gòu)建工具 15
2.2.2 使用Maven 構(gòu)建GeoTools 16
2.2.3 Java 8 與Java 11 18
2.3 GeoTools 的使用方式 18
2.3.1 引用GeoTools 依賴包 19
2.3.2 使用GeoTools 的接口 19
2.3.3 使用GeoTools 工具類 20
2.3.4 使用工廠模式 20
2.4 本章小結(jié) 21
第3 章 Java 拓?fù)鋷?kù) 22
3.1 幾何對(duì)象模型概述 22
3.1.1 空間實(shí)體概述 22
3.1.2 如何描述空間實(shí)體 23
3.1.3 OpenGIS 幾何對(duì)象模型 24
3.2 幾何對(duì)象模型分類 24
3.2.1 幾何對(duì)象 25
3.2.2 簡(jiǎn)單數(shù)據(jù)模型 26
3.2.3 集合數(shù)據(jù)模型 29
3.2.4 曲線和曲面數(shù)據(jù)模型 32
3.3 空間關(guān)系運(yùn)算 33
3.3.1 九交模型概述 33
3.3.2 GeoTools 對(duì)空間關(guān)系運(yùn)算的支持 37
3.4 空間索引 41
3.4.1 四叉樹 41
3.4.2 k 維樹 42
3.4.3 R 樹 43
3.5 本章小結(jié) 44
第4 章 空間坐標(biāo)系 45
4.1 地球橢球體 45
4.2 地圖投影 46
4.2.1 地圖投影方法 46
4.2.2 常用地圖投影 48
4.3 坐標(biāo)系的WKT 51
4.4 GeoTools 中的坐標(biāo)系 52
4.4.1 系統(tǒng)架構(gòu) 52
4.4.2 坐標(biāo)參考系統(tǒng)基礎(chǔ)分類 53
4.4.3 不同坐標(biāo)參考系統(tǒng)的關(guān)聯(lián)與約束 54
4.5 本章小結(jié) 57
第5 章 空間矢量數(shù)據(jù)管理 59
5.1 DataStore 數(shù)據(jù)管理框架 59
5.1.1 架構(gòu)設(shè)計(jì) 59
5.1.2 DataStore 60
5.1.3 FeatureSource 61
5.1.4 FeatureStore 63
5.1.5 SimpleFeature 63
5.1.6 SimpleFeatureType 64
5.1.7 FeatureCollection 65
5.2 WKT 67
5.2.1 WKT 概述 67
5.2.2 WKT 對(duì)幾何對(duì)象的描述方法 67
5.2.3 GeoTools 對(duì)WKT 的解析工具 68
5.3 GeoJSON 69
5.3.1 GeoJSON 概述 69
5.3.2 GeoJSON 對(duì)空間幾何對(duì)象的描述方法 69
5.3.3 GeoTools 對(duì)GeoJSON 的解析工具 70
5.4 Shapefile 71
5.4.1 Shapefile 概述 71
5.4.2 Shapefile 結(jié)構(gòu) 72
5.4.3 GeoTools 對(duì)Shapefile 的支持 72
5.5 GeoPackage 74
5.5.1 GeoPackage 介紹 74
5.5.2 GeoPackage 的內(nèi)部結(jié)構(gòu) 74
5.5.3 GeoTools 中的GeoPackage 79
5.6 實(shí)現(xiàn)一個(gè)自定義CSVDataStore 81
5.6.1 CSVDataStore 的實(shí)現(xiàn) 82
5.6.2 CSVFeatureSource 的實(shí)現(xiàn) 83
5.6.3 CSVFeatureReader 的實(shí)現(xiàn) 85
5.6.4 CSVDataStoreFactory 的實(shí)現(xiàn) 88
5.7 本章小結(jié) 91
第6 章 柵格數(shù)據(jù)模型 92
6.1 柵格數(shù)據(jù)概述 92
6.2 圖像金字塔 93
6.2.1 圖像金字塔概述 93
6.2.2 構(gòu)建圖像金字塔 94
6.3 GeoTools 的柵格數(shù)據(jù)管理框架 94
6.3.1 架構(gòu)設(shè)計(jì) 94
6.3.2 GridCoverage 簡(jiǎn)介 95
6.3.3 GeoTools 中的柵格圖像處理 96
6.4 GeoTIFF 介紹 98
6.4.1 GeoTIFF 概述 98
6.4.2 GeoTools 讀取GeoTIFF 文件 99
6.5 本章小結(jié) 100
第7 章 地圖樣式與渲染 101
7.1 地圖樣式簡(jiǎn)介 101
7.1.1 架構(gòu)設(shè)計(jì) 101
7.1.2 符號(hào)樣式 103
7.1.3 標(biāo)注樣式 104
7.1.4 使用SLD 104
7.2 GeoTools 中的地圖渲染 107
7.3 本章小結(jié) 109
第8 章 空間查詢與空間分析 110
8.1 空間查詢 110
8.1.1 上下文查詢語(yǔ)言 110
8.1.2 擴(kuò)展上下文查詢語(yǔ)言 111
8.1.3 空間查詢過濾器 111
8.1.4 空間查詢對(duì)象 112
8.2 矢量空間分析 113
8.3 圖分析 115
8.3.1 圖概述 115
8.3.2 GeoTools 中圖對(duì)象的構(gòu)建 116
8.3.3 最短路徑算法 117
8.3.4 GeoTools 中最短路徑算法的使用 117
8.4 柵格空間分析 118
8.4.1 柵格重投影 118
8.4.2 常用柵格空間分析實(shí)例 119
8.5 本章小結(jié) 124
第9 章 GeoTools 使用數(shù)據(jù)庫(kù) 125
9.1 數(shù)據(jù)庫(kù)系統(tǒng) 125
9.1.1 什么是數(shù)據(jù)庫(kù) 125
9.1.2 數(shù)據(jù)庫(kù)的分類 126
9.1.3 空間數(shù)據(jù)庫(kù) 127
9.2 GeoTools 對(duì)關(guān)系數(shù)據(jù)庫(kù)的支持 128
9.2.1 JDBC 簡(jiǎn)介 128
9.2.2 GeoTools 對(duì)JDBC 的擴(kuò)展 129
9.2.3 主要關(guān)系數(shù)據(jù)庫(kù)簡(jiǎn)介 131
9.2.4 不同關(guān)系數(shù)據(jù)庫(kù)的使用方式 132
9.3 GeoTools 對(duì)非關(guān)系數(shù)據(jù)庫(kù)的支持 135
9.3.1 主要非關(guān)系數(shù)據(jù)庫(kù)簡(jiǎn)介 135
9.3.2 不同非關(guān)系數(shù)據(jù)庫(kù)的使用方式 136
9.4 本章小結(jié) 138
第 10 章 GeoTools 地圖組件 139
10.1 地圖可視化概述 139
10.2 Java 對(duì)可視化的支持 139
10.3 gt-swing 模塊 141
10.3.1 JMapPane 141
10.3.2 JMapFrame 143
10.3.3 Dialog 類 144
10.3.4 Wizard 類 145
10.4 gt-swt 模塊 147
10.4.1 SWTMapFrame 147
10.4.2 Rich Client Platform 148
10.5 本章小結(jié) 150
第 11 章 空間數(shù)據(jù)管理系統(tǒng) 151
11.1 空間數(shù)據(jù)管理系統(tǒng)架構(gòu)設(shè)計(jì) 151
11.2 空間數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn) 152
11.2.1 空間數(shù)據(jù)模擬生成模塊 153
11.2.2 坐標(biāo)變換模塊 154
11.2.3 空間數(shù)據(jù)格式轉(zhuǎn)換模塊 154
11.2.4 空間數(shù)據(jù)質(zhì)檢模塊 157
11.2.5 空間數(shù)據(jù)歸檔入庫(kù)模塊 160
11.3 本章小結(jié) 162
第 12 章 常見問題 163
12.1 如何獲取GeoTools 的開源許可證 163
12.2 GeoTools 的依賴下載問題 164
12.3 Shapefile 亂碼問題 165
12.4 針對(duì)要素的細(xì)節(jié)操作問題 167
12.4.1 reType 方法 167
12.4.2 first 方法 167
12.4.3 createType 方法 168
12.4.4 bounds 方法 168
12.5 更新schema 失敗問題 168
12.6 坐標(biāo)軸順序問題 169
12.7 圓形問題 169
12.8 經(jīng)緯度距離計(jì)算問題 171
12.9 本章小結(jié) 172