建公司网站哪里好,建设网站赚钱,宁波网站建设公司哪有,国际新闻头条最新热点新闻写在前面 偶尔听到同事说一个数据处理重复性的流程太多#xff0c;就了解了下#xff0c;原来是1份shp数据对应着一个xls属性文件#xff0c;需要把xls文件里的一部分属性更新到shp的相关字段中#xff0c;当然这种操作是可以用ArcGIS或者QGIS实现#xff0c;但是当数据特…写在前面 偶尔听到同事说一个数据处理重复性的流程太多就了解了下原来是1份shp数据对应着一个xls属性文件需要把xls文件里的一部分属性更新到shp的相关字段中当然这种操作是可以用ArcGIS或者QGIS实现但是当数据特别多的时候且这种操作流程一模一样时人就崩溃了需要用程序的方式去实现。由于自己最熟悉的是js便用周末的时间用nodejs写了一些代码去处理这个任务。代码托管于github(这里是地址https://github.com/ONEGISER/node-examples/tree/master/shp-relation-xls)特此记录详细信息请读代码里面的readme.md。
流程介绍
1.shp转成geojsonshapefile库
2.dbf转成object(因为有乱码的问题需要将第一步生成的属性替换掉shapefile库
3.xls解析成objectnode-xlsx库
4.通过关键字段信息处理字段替换、删除、追加、特殊类型转换等操作生成新的geojson
5.geojson转成shp结果为压缩包需要gis-js/geojson2shp、JSZip库
6.压缩包解压compressing库 关键配置信息
const encodings { 2023涉河建筑物: utf-8, 2022年涉河建筑物: GBK }; //shp的编码
const shpRelationId code; //shp的关联id
const xlsTableHeaderIndex 1; //excel字段起始列
const xlsRelationId BM; //excel的关联id
const deleteFields []; //原始数据需要删除的字段
const addFields [XMMC]; //添加的字段*代表xls的所有字段
const toStringFields [code, 经度, 纬度, 年份]; //转成字符串的字段
const replaceFields {市: S,县: X,位置: WZ,河流: RV_NAME,名称: XMMC,类型: LXMC,
}; //替换字段对应关系
const sortFields [XMMC,市,县,显隐,名称,类型,经度,纬度,位置,河流,备注,// code,// 年份,
]; //排序字段
原始文件
xls shp 成果输出
文件成果 shp属性信息 geojson属性信息