shp文件解析

这篇博客展示了如何使用npm包shapefile在JavaScript中读取并处理Shapefile地理数据。通过FileReader API读取文件,然后利用shapefile库解析文件内容,将Polygon类型的几何坐标提取并存储。博客探讨了数据处理流程,包括错误处理和数据结构转换。
摘要由CSDN通过智能技术生成

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));
      };
    },

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值