天天看点

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​​