您的位置:首页 > 汽车 > 时评 > Vue3使用shapefile读取矢量数据,以数组形式返回坐标点

Vue3使用shapefile读取矢量数据,以数组形式返回坐标点

2024/11/13 13:56:41 来源:https://blog.csdn.net/Ian1025/article/details/142337973  浏览:    关键词:Vue3使用shapefile读取矢量数据,以数组形式返回坐标点

npm安装:

npm install shapefile --save-dev

源码:

<script setup>
import { ElMessage } from 'element-plus';
import { ref } from 'vue'; // 引入 ref
import * as shapefile from "shapefile";// 使用 ref 创建一个引用
const uploadRef = ref(null);// 解析文件
const fileChange = (param) => {console.log(param.file)// 直接使用 uploadRef 引用来调用 clearFiles 方法uploadRef.value.clearFiles()const reader = new FileReader()const fileData = param.file// 读取文件reader.readAsArrayBuffer(fileData)reader.onload = function () {// 定义geojson数组, 一个shp里会有多个面, 即有多个geometrylet geojsonArr = []shapefile.open(this.result).then((source) => {source.read().then(function log(result){if (result.done) {// 解析完成console.log(geojsonArr)}const json = result.valuegeojsonArr.push(json)return source.read().then(log)})}).catch((error) => {console.error(error.stack)ElMessage.error("读取shp文件失败")})}
}
</script>
<template><el-upload ref="uploadRef" action="111111" :limit="1" :file-list="fileList" accept="shp" :http-request="fileChange":auto-upload="true"><el-button slot="trigger" size="small" type="primary">上传文件</el-button></el-upload>
</template>
<style scoped></style>

效果展示:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com