npm i shpjs 下载
const shapefile = require("shapefile"); 引入
fileLoad(event) {
const that = this;
const selectedFile = event.file;
const name = selectedFile.name;
const size = selectedFile.size;
console.log("文件名:" + name + "大小:" + size);
// thx
const reader = new FileReader();
const m = [];
// let num = 0;
reader.readAsArrayBuffer(selectedFile);
reader.onload = function () {
shapefile
.open(this.result)
.then(source => {
source.read().then(function log(result) {
// 处理数据(循环获取,最后一条数据undefined,通过报错终止)
let geometry = [];
try {
geometry = result.value.geometry;
} catch (error) {
//抛出报错,调用handler()事件
that.handler(m)
return error;
}
if (geometry.type === "Polygon") {
geometry.coordinates.forEach(value => {
m.push(value);
});
} else {
geometry.coordinates.forEach(value => {
value.forEach((value2, index) => {
m.push(value2);
});
});
}
return source.read().then(log);
});
})
.catch(error => console.error(error.stack));
};
},