当前位置: 首页 > article >正文

vue通过JSON文件生成KML文件源码

可以使用封装的json解析器进行JSON数据获取,读取点的经度、维度、高程等数据,再使用对应的KML文件生成函数使用该源码下载KML文件(固定KML生成:js模板式生成大疆上云kml文件(含详细注释,已封装成函数)-CSDN博客)

自封装的JSON解析器:

import { ref } from 'vue';
import { ElMessage } from 'element-plus';
export default function handleFileChange(event) {
  const jsonData = ref(null);
    const file = event.target.files[0];
    if (file && file.type.match('application/json')) {
      const reader = new FileReader();
      reader.onload = (e) => {
        try {
          jsonData.value = JSON.parse(e.target.result);
          ElMessage.success('JSON 文件解析成功!');
        } catch (error) {
          console.error('解析 JSON 时出错:', error);
          ElMessage.error('解析 JSON 时出错!');
        }
      };
      reader.readAsText(file);
    }
  }

生成下载的KML文件:

// 使用前需将传入的jsonData类型转换成数组,Array.from(jsonData)。
import {ElMessage} from 'element-plus'
import kmlTemplate from '../JSONToXML/JSONToKML'
export default function generateKML(jsonData) {
  // 防止传入的数据为空
  if (!jsonData || jsonData.length === 0) {
    ElMessage.warning('请先提供坐标数据');
    return;
  }
    const kmlContent = kmlTemplate(jsonData);
    const blob = new Blob([kmlContent], { type: 'application/vnd.google-earth.kml+xml' });
    const url = URL.createObjectURL(blob);
    const link = document.createElement('a');
    link.href = url;
    link.download = 'DroneRoute.kml';
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
    URL.revokeObjectURL(url);
    ElMessage.success('KML文件生成成功');
  }

效果:


http://www.kler.cn/news/368146.html

相关文章:

  • 【算法】递归系列:206.反转链表(两种递归实现)
  • Pandas库学习Day20
  • C++音视频02:环境搭建
  • 华为:高级ACL 特定ip访问特定ip命令
  • 深入了解 MySQL 中的 INSERT ... SELECT 语句
  • 《决策思维:人人必备的决策口袋书》
  • There is no screen to be resumed matching xxx【解决方案、screen、原因分析】
  • 《2024中国泛娱乐出海洞察报告》解析,垂直且多元化方向发展!
  • linux驱动—注册驱动分析
  • 使用Python计算相对强弱指数(RSI)进阶
  • HarmonyOS NEXT 应用开发实战(八、知乎日报List列表下拉刷新及上滑加载更多分页的实现)
  • Vue引入高德地图自定义信息窗体绑定点击事件无效解决方案
  • anaconda 创建环境失败 解决指南
  • 【刷题10】2024.10.26
  • Spark 广播变量(Broadcast Variable)原理及源码分析
  • 绝了,这款播放器让发烧友疯狂种草,堪称音乐神器
  • 力扣876:链表的中间结点
  • 安全知识见闻-网络安全热门证书
  • SpringBoot技术栈在宠物用品交易网站中的应用
  • php后端学习,Java转php
  • 智能合约开发中的LP分红系统
  • 第四期书生大模型实战营(【入门岛】- 第1关 | Linux基础知识)
  • python基础知识点笔记(全)
  • 一个开源的跨平台UI框架,可使用Web技术构建跨平台桌面应用程序
  • 鼠标移入高亮边框效果
  • 在Spring Boot框架下的Java异常处理