總結了GIS開發的技術棧,羅列了應該瞭解的內容。
算是比較大而全的了,分理論、規範、數據、算法、軟件、後端、前端、方向8個專項。
不求短期內全部都會,但還是一個比較好的學習框架和實踐索引,如果基礎好的話,兩三年達到入門水平,應該是沒有問題的吧,不過凡事,因人而異。
內容比較多,一個一個說吧。
一、理論
學好理論知識非常重要,尤其是GIS還是相對來說比較偏冷門的內容。
剛入門看不出來,但時間長了,基礎才決定一個人的技術之路能走多遠。
學理論和基礎,手頭需要備幾本專業書,誰知道網上找的是對是錯。
推薦《地理信息系統導論》、《測量學基礎》、《地圖學》等書。
當然一般會做GIS開發的,也是相關專業的人,上課好好學就行了。
(如果不是相關專業的,乾點別的不好嗎?)
另外,相關的法律法規也要了解,別問爲什麼。
https://www.zrzyst.cn/fgwj/index.jhtml
https://www.zrzyst.cn/gjbtdtzs/index.jhtml。
要是覺得不夠的話,可以看下《武漢大學測繪專業本科專業課程》,總有一門課,會派上用場。
https://wenku.baidu.com/view/caf7acf6ec3a87c24128c46b.html
二、規範
熟悉理論知識後。
GIS開發主要看OCG規範,CIM是城市信息模型,BIM是建築物信息模型,這兩個都是城市建模相關的。
其餘的可以參考《webGIS開發背景知識索引--瓦片原理與數據規範等》https://zhuanlan.zhihu.com/p/144767787。
如果做數據挖掘和算法,要多瞭解數據結構、數據規格、數據精度等方面內容,https://www.ogc.org/docs/as。
瞭解規範,多看官網沒壞處:https://www.ogc.org/docs/is
三、數據
GIS開發數據是很重要的一項,如何獲取開源GIS數據,可參見《GIS數據源彙總》https://zhuanlan.zhihu.com/p/144792968。
Postgresql、spatialite都是對GIS數據兼容比較好的數據庫,工程化應用可以使用postgresql,spatialite適合輕量級測試。
Postgresql官網:https://www.postgresql.org/
PostGIS是postgresql最常用的空間拓展插件:www.postgis.org/
四、算法
說實話,GIS應用和實踐的書,能看的不多,GIS算法這塊,可以看科學出版社出版的Stephen Wise寫的《GIS數據結構與算法基礎》,中國工信出版社出版的Joel Lawhead寫的《Python地理空間分析指南》。
Java、Python、js的程序實現,可參見《GIS算法索引目錄》https://zhuanlan.zhihu.com/p/147689100。
GIS相關的算法一般都用在數據處理和建模上。
五、軟件
軟件的熟練程度,是考察一個GIS工程師的標準之一。
我們比較熟悉的GIS軟件是arcgis和supermap,但這兩個都是收費的商業軟件。
但一個行業要發展,開源是大勢所趨。
QGIS是一個跟arcgis功能差不多的開源GIS軟件,且有更好的拓展性。
如何使用QGIS,可參見《QGIS入門與簡單實用----索引目錄》https://zhuanlan.zhihu.com/p/138593960。
GIS軟件很多,但底層原理都是一樣的,一通百通,arcgis、supermap、QGIS這種大而全的軟件,會一個就行了。
(不過,在GIS軟件領域,還是沒有能夠超越arcgis的存在。)
smark3D、benlder、3DMAX等,都是三維建模的軟件,可用於BIM、CIM和三維地圖的數據加工。
六、後端+前端
webGIS開發不太好區分前端後端,經常是順手都做了。
開發一定要實踐,只看,是看不會的。
新手入門,可以參考兩個示例。
一個是後端採用Java的springboot2框架,前端使用vue框架集成leaflet,數據庫使用postgresql的《從零開始,構建電子地圖網站----索引目錄》https://zhuanlan.zhihu.com/p/145423630。
這個寫得非常細,從軟件安裝到服務器部署,零基礎的可以照着做一遍。
另一個是後端採用Python django框架,地圖使用geoserver發佈,前端使用openlayer JavaScript庫的《webGIS實踐:geoserver+openlayer+django目錄索引》https://zhuanlan.zhihu.com/p/141644867。
這個相對來說,工程性弱一些,更偏重GIS技術實現,因爲有瓦片地圖發佈,還有座標系轉換、圖層設置的內容。
如果能獨立完成這兩個demo,說明webGIS開發入門了。
Arcgis和supermap都有全套的GIS開發環境,但這兩個都是商業軟件,完全封閉,不具備擴展性和移植性。不過這兩個軟件在GIS市場上的佔有率還是非常高的,尤其是企事業單位,有很多人用這兩個軟件做開發。
二維webGIS開發熟練後,可以接着學一學空間大數據可視化和三維地圖開發。
Geomesa:https://www.geomesa.org/
cesium:https://cesium.com/cesiumjs/
七、方向
GIS開發,職業上區分爲兩個方向,webGIS開發和數據分析師。但webGIS開發目的也是爲了呈現數據,最好兩者都有些瞭解。GIS開發相對於通用的前後端開發來說,就業面會窄一些,天花板也會低一些,所以可以持續的學習計算機知識和熱門的程序框架,拓展一下職業廣度,工作一段時間後,根據自己的選擇,決定未來方向。
GIS開發的就業方向可以統分爲體制內外,體制內就是傳統地信測繪單位,加上接政府項目的GIS企業,這些地方使用商業軟件arcgis和supermap比較多。地圖廠商高德、四維圖新、騰訊、百度這樣的,會招一些GIS背景的產品經理、數據工程師,研發還是會招計算機相關專業的。不過出行、物流、網約車、購物平臺這些需要地圖服務的行業,會有一定的GIS研發需求。
隨着5G、航天航空、物聯網的發展,時空大數據可視化、三維地球建模,會是比較好的互聯網工程化方向。
遙感影像分析一直是學術領域的熱門。高精地圖、高精定位、自動駕駛前幾年是比較火的,但還是有很長一段路要走。
至於發展前景,時代是瞬息萬變的,個人努力很重要,選擇方向也很重要。保持對市場的敏銳,保持自己的競爭力,且行且珍惜吧。
八、總結
人需要保持持續學習的狀態,我們總有不會的東西,總有需要增進的地方。
GIS基礎薄弱,就買書看書補充基礎。
規範不瞭解,就去看OGC官網。
程序框架薄弱,就去學springboot或vue。
地圖審美不行,就多去欣賞。
只要下功夫,總會有進步。
漫漫長生,我們一路競跑,需要超越的,不是別人,而是自己。
今天的我,所能超越的僅僅是過去的我,希望將來的我,亦能超越今天的我。