前端使用shp-write导出shp格式文件
下载shp-write插件
先放一个shp-write插件源码地址。
在线安装方式如下:
Usage
For npm
npm install --save @mapbox/shp-write
Yarn
yarn add @mapbox/shp-write
坑一
面对导出的shp中文乱码问题
参考的这个文章解决的,但是用该博主的方式任然存在问题,控制台会报错,Buffer.prototype未定义,并且是从safer.js文件中报错的,找到该文件,调试代码发现Buffer是Undefined。
解决办法
npm install buffer
坑二
导出多条线数据失败
在运行代码过程中,发现导出一个点或多个点、一个面或多个面以及一条线数据能成功,但是导出多个线会失败,导出能成功,但是在arcmap中打开会提示形状数与表记录数不一致,打开失败。
解决办法
在一步一步debug过程中发现,是多条线数据在传的过程中被包了一层,导致features有一条数据,properties中有两条数据。
找到geojson.js文件,做如下修改
还没完,我是用的mars3d转的GeoJSON文件,修改之后线数据的坐标形式应该是这样的,“coordinates”: [[[[],[],[]…]]] ,所以还要给坐标包一层。
完美解决
接下来研究一下坐标系怎么配置…