前台解析本地shape文件

先引入解析包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压缩包里的文件

 

 

转载于:https://www.cnblogs.com/smlPig/p/11551221.html

好的,以下是可以回答的代码: 首先,我们需要在 Android Studio 中创建一个新的项目,并在项目中创建一个名为“res”的文件夹,用于存储我们的 shape 文件。 接下来,我们需要使用以下代码来读取并解析本地 shape 文件: ``` // 获取 shape 文件的输入流 InputStream inputStream = getResources().openRawResource(R.raw.shape_file); // 创建一个 XmlPullParser 对象 XmlPullParser parser = Xml.newPullParser(); // 设置 XmlPullParser 对象的输入流 parser.setInput(inputStream, null); // 解析 shape 文件 int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_TAG) { // 处理开始标签 } else if (eventType == XmlPullParser.END_TAG) { // 处理结束标签 } else if (eventType == XmlPullParser.TEXT) { // 处理文本内容 } eventType = parser.next(); } ``` 在上面的代码中,我们首先获取 shape 文件的输入流,然后创建一个 XmlPullParser 对象,并将输入流设置为 XmlPullParser 对象的输入流。接下来,我们使用 while 循环来遍历整个 shape 文件,并根据不同的事件类型来处理开始标签、结束标签和文本内容。 最后,我们可以使用 Android 的绘图 API 来绘制出 shape 文件中的图形。例如,我们可以使用以下代码来绘制一个矩形: ``` // 创建一个矩形对象 RectF rect = new RectF(0, 0, 100, 100); // 创建一个画笔对象 Paint paint = new Paint(); paint.setColor(Color.RED); // 绘制矩形 canvas.drawRect(rect, paint); ``` 在上面的代码中,我们首先创建一个矩形对象,然后创建一个画笔对象,并将画笔的颜色设置为红色。最后,我们使用 canvas 对象的 drawRect() 方法来绘制矩形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值