從Mapbox的開源工具看Web GIS的發(fā)展
mapbox一直是我很喜歡的公司之一。它的自由開放態(tài)度,前沿研究方向,讓很多GISer眼前一亮,讓他們找到學(xué)習(xí)或者工作的方向。
其實(shí),mapbox.js是leaflet.js的一個(gè)超集,所以不要再問我“l(fā)eaflet好用還是mapbox好用?”這樣的愚蠢的問題。而mapbox現(xiàn)在也在開發(fā)關(guān)于Web GL的地圖業(yè)務(wù),當(dāng)然它也不能將所有的業(yè)務(wù)都一口氣將瓦片地圖轉(zhuǎn)移至Web GL底圖,因?yàn)楝F(xiàn)在瓦片地圖還是占很大一部分,特別是國內(nèi)。關(guān)于Mapbox GL這個(gè)方面,我真的才疏學(xué)淺,留作以后研究的材料。
插件
Mapbox創(chuàng)作或引用的開源工具都是經(jīng)過精心篩選過的,都極具代表性。大部分都基于Python和Node.js,可以通過PyPI和npm下載得到,包括:
- Turf.js 基于前段JS的GIS空間分析工具
- Tippecanoe 通過大量GeoJson要素建立矢量瓦片
- Rasterio 整潔快速的柵格數(shù)據(jù)輸入輸出,用于Numpy
- leaflet-omnivore 通用格式轉(zhuǎn)換器
- node-sqlite3 異步非阻塞對(duì)SQLite3的JS綁定接口
- tilelive 支持瓦片模塊間交互操作
- Carmen 支持包裝瓦片地圖數(shù)據(jù)的地理編碼
- mapnik-omnivore 基于Node的模塊,返回空間文件源文件
- Mapnik 基于C++的庫,提供空間數(shù)據(jù)導(dǎo)入和渲染,可渲染成為瓦片圖
- node-pre-gyp 基于Node.js的C++擴(kuò)展交互
標(biāo)準(zhǔn)
mapbox提出的標(biāo)準(zhǔn),包括:
- Mapbox 標(biāo)準(zhǔn)化矢量瓦片的信息
- Mapbox GL樣式 通過WebGL技術(shù)渲染地圖,以后專門討論一下
- MBTiles 其實(shí)沒什么,通過SQLites去裝載瓦片圖,聽說索引效率高
- TileJSON 其實(shí)沒什么,通過JSON去包裝瓦片地圖URL,比較簡潔
總結(jié)
這些開源的工具,無一例外,代表了現(xiàn)代互聯(lián)網(wǎng)發(fā)展,GIS要基于瓦片地圖以及OpenGIS(例如WMS服務(wù)和GeoJSON)這種高效率的表現(xiàn)方式,相比之下,國內(nèi)三巨頭BAT的地圖服務(wù)遲遲不加入WMS的服務(wù)接入,對(duì)國內(nèi)GIS行業(yè)貢獻(xiàn)十分有限。在知乎上,很多學(xué)生問道GIS的就業(yè)行業(yè)等,我覺得重點(diǎn)已經(jīng)不在ArcGIS Engine等應(yīng)用開發(fā),而是網(wǎng)絡(luò)開發(fā)。不是商業(yè)軟件的使用,而是開源組件的開發(fā),原因很簡單,因?yàn)椴皇撬泄径加玫钠餉rcGIS的正版軟件,從事商業(yè)用途還是最好使用正版。國內(nèi)有些老師不過是為了完成自己的項(xiàng)目,并沒有考慮到市場(chǎng)的需求。綜上所述,我推薦大家應(yīng)該更多的轉(zhuǎn)向python或者Node.js的頂層開發(fā),底層則是C語言的架構(gòu)體系。
參考知乎問答--大學(xué) GIS 課只教你怎么使用 ESRI 的 ArcGIS,是好還是不好?不好的話應(yīng)該怎么上?
轉(zhuǎn)載,請(qǐng)表明出處。總目錄Awesome GIS