Windows系统下Node-gdal安装与应用详解

简介:

gdal用于读写矢量和栅格数据集,gdal常常使用c,c++做开发,也有部分其他语言扩展如py,node。但由于其他语言的官方例子不多,且存在很多问题,所以入门非常难。简单来说gdal属于一个工具库,用来提供对矢量数据查看、编辑等功能,目前支持多种语言,本文主要讲的是node-gdal在window下面的安装问题,以及简单的gdal用法。
Windows系统下Node-gdal安装与应用详解_第1张图片

安装

本人尝试了两种方法,我这边都给大家列出,作为一个参考。(我是第二种方法见效了)

方法一

首先安装nodejs,然后需要安装node的windows构建工具,需要管理员权限。代码如下:

npm install --global windows-build-tools --production --vs2015

之后 必须执行一次手动安装。这是我的安装目录:

C:\Users\Administrator.windows-build-tools

单击修改,选择win 8.1 SDK && win 10 SDK && .Net 大概5G
然后配置路径,如果不行可是尝试手动修改环境变量。(这块不做详细介绍了,修改环境变量大家应该都知道)

npm config set python python2.7
npm config set msvs_version 2015

之后再运行 cnpm i gdal --save 注意:不要丢掉 --save。

方法二

第二种原理,其实是和第一种是一样的。这种做法简单粗暴,第一种方法一般失败的原因大多数是因为环境配置存在问题。首先先贴上,py与vs的软件下载链接。

Python 2.7.15 :
链接:https://pan.baidu.com/s/1iBRlLuY6UzKhZkG3vdy_ZQ
提取码:8520
Visual studio 2015:
链接:https://pan.baidu.com/s/1_Y4VNxcrimeJmmG_UHaycw
提取码:724s

划重点啦!
中间过程和普通软件安装过程是一样的,直接下一步即可。重点谈一下注意事项:
1、vs2015安装过程中,需要把涉及到c++的库都装上,因为gdal是基于c++编写的,如果安装不完全,同样会出现方法一的错误。
2、py与vs安装完成后,最后建议全局安装gdal,命令是cnpm i gdal --save原因很简单,因为gdal包特别大,大概2.5g左右,如果单单的安装在你自己的nodemodules,会造成重复安装占用计算机无效空间。

遇到的实际问题

问题一:
Windows系统下Node-gdal安装与应用详解_第2张图片在这里插入图片描述

Error:failed to execute 'node-gyp…
Error:Can,t find Python executable ‘‘python’’,you can set the PYTHON env variable.
这个问题,其实就是翻译过来gdal安装需要python环境,本机不存在此环境,如遇到这个问题,需要配置py环境变量。

问题二:
全局安装gdal后,node代码 requre不能访问到,这个问题是因为node环境变量问题,项目库中不能访问到gdal包。
正确做法是在系统环境变量 path中添加NODE_PATH路径,这个路径的vule值是你的系统全局nodemodules包的路径。

实验

上代码================================》》》》》》》》》》》》》》》》》》》》》》》》

var gdal = require("gdal");
var dataset = gdal.open("shanxi.shp");
var layer = dataset.layers.get(0);

console.log("number of features: " + layer.features.count());
console.log("fields: " + layer.fields.getNames());
console.log("extent: " + JSON.stringify(layer.extent));
console.log("srs: " + (layer.srs ? layer.srs.toWKT() : 'null'));

找一个shp文件,这个代码段的意思就是读取shp文件中的属性信息。

总结

node不愧是生态最好的后端语言。哈哈哈

如果你觉得有用,就请点个关注哈!下面附上我个人微信公众号以及bilibili站台号,有兴趣的朋友可以加入我的们技术交流群,不定期分享免费的、高质量的编程课程,还有内部机会哦!期待你的加入!
在这里插入图片描述
bilibili UP主:程序军火库&&程序狙击手

你可能感兴趣的:(gis,node.js,c++,python,javascript,html)