OpenLayers发布数据

该博客介绍了一个将GeoJSON数据转换为CSV格式并组织成File对象以上传到服务器的过程。首先,通过jsonToCSV函数将GeoJSON转换为CSV,该函数创建包含FID、the_geom以及其它属性的CSV字符串。然后,使用Blob对象创建文件,并指定类型为'application/vnd.ms.excel',进一步构造File对象用于上传。此过程适用于地理空间数据的处理和上传。
摘要由CSDN通过智能技术生成

组织OpenLayers发布图层至服务器file数据

  • 根据url下载图层GeoJson数据;
  • 将GeoJson数据转化为csv格式数据;

例如:

  jsonToCSV(obj) {
      let jObj = typeof obj != "object" ? JSON.parse(obj) : obj;
      let str = '';
      // 表头不固定, FID,the_geom为固定,其余数据与properties保持一致
      str = 'FID,the_geom,Lon,Lat,instalocao,cluster' + '\r\n';
      for(let i = 0; i < jObj.features.length; i++) {
        let row = "";
        let feature = jObj.features[i];
        let geom = feature .geometry;
        let props = feature .properties;
        row = feature.id + ',' + this.convertToGeom(geom.type, geom.coordinates) + ',' + 	geom.coordinates[0] + ',' + geom.coordinates[1] + ',' +
          props.instalacao + ',' + props.cluster + '\r\n';
        str += row;
      }
      return str;
    },

    convertToGeom(type, coor) {
      return type.toUpperCase() + '(' + coor[0] + ' ' + coor[1] + ')';
    },
  • 根据csv数据,组织file对象
let csvStr = this.jsonToCSV(obj)
let blob = new Blob([csvStr], {type: "application/vnd.ms.excel"});
let file = new File([blob], "fileName.csv", {
	lastModified: new Date(),
	type: "application/vnd.ms.excel"
})
// 再将file上传

Blob中type可根据文件类型设置不同参数,参考:https://tool.oschina.net/commons/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值