前端通过shpwrite.js导出shp数据

文章介绍了shpwrite这个开源js包用于通过Node.js导出SHP文件的问题,原生js在处理多面几何时存在不足,需要修改源码以支持MultiPolygon。同时,文章提到了导出的DBF属性表存在中文乱码的问题,并给出了相应的解决链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shpwrite是个开源的js包,依靠node来导出shp文件。但是原生js有些问题,无法导出多个面的shp文件,需要自行修改源代码。

源码下载地址:https://github.com/hwbllmnn/shp-write/tree/maintenance

这里我在补充一下,源码中获取面点的集合是三维数组,所以在创建geojson的时候需要这么写:"coordinates": [[[[],[],[]....]]]  (其实这种就属于多面的写法,但是源码中并不支持MultiPolygon)

导出代码

var shpwrite = require('shp-write');

// (optional) set names for feature types and zipped folder
var options = {
    folder: 'myshapes',
    types: {
        point: 'mypoints',
        polygon: 'mypolygons',
        line: 'mylines'
    }
}
// a GeoJSON bridge for features
shpwrite.download({
    type: 'FeatureCollection',
    features: [
        {
            type: 'Feature',
            geometry: {
                type: 'Point',
                coordinates: [0, 0]
            },
            properties: {
                name: 'Foo'
            }
        },
        {
            type: 'Feature',
            geometry: {
                type: 'Point',
                coordinates: [0, 10]
            },
            properties: {
                name: 'Bar'
            }
        }
    ]
}, options);

遗留问题:导出的dbf属性表中文乱码,还在解决中。

补:解决方法:解决shp-write导出shp属性表中文乱码问题_shp数据乱码_巧克力曲奇的博客-CSDN博客

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值