天天看點

GIS開發:gdal在nodejs中使用

​gdal庫是gis開發常用的一個類庫,本身是用C/C++進行編寫的,同時提供了其他語言的調用接口,nodejs中是以npm的形式進行安裝,本地電腦裝了個vs2017,導緻安裝這個包的時候一直在node-gyp報錯,安裝不上,各種鼓搗,終于把這個gdal包裝上了。

公衆号之前的文章,​​分享開源mapbox-gl地形生成代碼​​,這是python語言實作的,現在python不怎麼用了,電腦上不想裝太多的軟體環境,考慮用nodejs實作一下,簡單的将dem資料轉換成rgb的顔色資料。

環境安裝,報node-gyp錯誤的加油解決

GIS開發:gdal在nodejs中使用

npm install gdal --save

gdal庫能操作影像、高程資料,同時也能夠操作矢量資料,這裡根據功能,簡單說一下影像資料的操作,以tif格式的資料為例:

打開/建立一個影像/高程資料:

let dataset = gdal.open("sample.tif");

一般影像資料有3個band,高程資料一個band,get的索引從1開始

let nband1 = dataset.bands.get(1)

band上的根據像素位置擷取值,在高程的操作中,這個是高度值

const topLeft = nband1.pixels.get(0, 0);

band上像素值的設定

nband1.pixels.set(0, 0, 'newvalue')

按照以上的步驟,讀取一個高程資料,就能夠轉換成rgb的顔色值了。

dem原始資料

GIS開發:gdal在nodejs中使用

​dem顔色資料

GIS開發:gdal在nodejs中使用

高程疊加影像效果three.js效果,參見公衆号文章​​Three.js開發:高程資料加載​​:

GIS開發:gdal在nodejs中使用
  • ​​ http://naturalatlas.github.io/node-gdal/classes/gdal.html​​
  • ​​https://www.npmjs.com/package/gdal​​