先引入解析包npm install shpjs --save
然后使用element_ui的文件上传组件
<el-upload drag class="fileChoice" :auto-upload=false :show-file-list="false" action="" :on-change="parsingShape" > <img type="file" src="./theme/img/Group 8 Copy 3.png" alt @click="parsingShape"/> </el-upload>
img为自定义的小图标,随意换。:auto-upload设置为false不上传。:on-change="parsingShape"为文件上传之后的回调
parsingShape(files, fileList){ let _self=this; if(fileList){ this.file=fileList[fileList.length-1] const name=this.file.name const extension=name.split('.')[1] if('zip'!==extension){ this.$message.warning(this.$t('common.message.isNotFile')); }else { const reader=new FileReader() const fileData=this.file.raw reader.readAsArrayBuffer(fileData) reader.onload = function(e){ shp(this.result).then( function(data){ console.log(data) }).catch(function(){ _self.$message.warning(_self.$t('common.message.fileFormat')); }); } } } }
以上是js代码,可获得最后解析之后的geoJson数据。
注意:此方法只能解析zip文件。以下图片问zip压缩包里的文件