表格转KML点位是空间数据可视化的关键环节。在地理信息领域,表格数据是最常见的数据存储形式,而KML是Google Earth等地理信息系统的标准数据格式。本工具通过将结构化表格数据转换为可视化的KML文件,实现数据从数字到图形的飞跃。

数据的价值在于被理解和应用。通过将枯燥的表格数据转换为直观的地图标记,我们让数据获得了空间维度的表达能力。这不仅是格式转换,更是数据价值的升华,让复杂的数据变得直观易懂,为决策提供有力支持。

表格转KML点位遵循标准化的数据转换流程,确保转换结果的准确性和可视化效果。

转换流程

  1. 数据导入:读取CSV或Excel格式的点位数据,识别表头结构。

  2. 数据验证:对每一行数据进行格式校验,验证坐标范围、颜色值有效性等。

  3. 数据分组:根据文件夹字段对点位进行分组,便于在地图上分层展示。

  4. 样式定义:收集所有不重复的颜色值,为每种颜色创建对应的KML样式定义。

  5. KML生成:遍历所有点位,根据其颜色和分组信息生成Placemark标记。

  6. 文件组装:将样式定义和点位标记组合成完整的KML文档结构。

  7. 文件导出:生成KML文件并触发浏览器下载。

颜色处理策略

  • 中文颜色名:支持常见中文颜色名称(如红色、蓝色、绿色等),自动映射到对应的Google图钉图标
  • Hex颜色值:支持十六进制颜色代码(如#FF0000),使用白底图标叠加颜色
  • 颜色映射:建立颜色到图钉图标的映射表,确保视觉一致性

KML结构设计

  • Document:根元素,包含样式定义和文件夹
  • Style:定义图标的颜色、大小、标签样式
  • Folder:按文件夹字段分组的点位集合
  • Placemark:单个点位标记,包含名称、描述和坐标

验证规则

  • 坐标范围:经度-180至180,纬度-90至90
  • 颜色格式:支持中文颜色名和Hex颜色值
  • 必填字段:名称、经度、纬度为必填项

本工具采用现代化前端技术栈,实现高效的表格转KML点位功能。

核心技术依赖

xlsx

  • 用途:读取Excel文件
  • 官网:https://github.com/SheetJS/sheetjs
  • 特点:支持多种Excel格式、处理效率高

关键实现

颜色解析

const CHINESE_COLOR_TO_PUSHPIN: Record<string, string> = {
  '#FF0000': 'red',
  '#00FF00': 'grn',
  '#0000FF': 'blue',
  '#FFFF00': 'ylw',
  '#FF00FF': 'pink',
  '#FFFFFF': 'wht',
}

function isChineseColor(color) {
  return !color.trim().startsWith('#')
}

KML生成

export function generateKml(points) {
  const folders = groupByFolder(points)
  const styles = collectStyles(points)
  
  // 生成样式定义
  const styleDefs = styles.map(([color, id]) => `
    <Style id="${id}">
      <IconStyle>
        <color>${kmlColor}</color>
        <Icon><href>${pushpinUrl}</href></Icon>
      </IconStyle>
    </Style>
  `)
  
  // 生成Placemark
  const placemarks = folders.map(folder => folder.points.map(pt => `
    <Placemark>
      <name>${pt.name}</name>
      <Point><coordinates>${pt.lng},${pt.lat},0</coordinates></Point>
    </Placemark>
  `))
  
  return `<?xml version="1.0" encoding="UTF-8"?>
    <kml xmlns="http://www.opengis.net/kml/2.2">
      <Document>${styleDefs.join('')}${placemarks.join('')}</Document>
    </kml>`
}

技术架构

采用模块化设计:TemplateReader负责文件读取和验证,KmlGenerator负责KML生成,ColorParser负责颜色处理,TemplateExporter负责模板导出。各模块职责清晰,便于测试和维护。

点位KML生成

表格数据转KML点文件,支持批量导入

1. 下载模板

模板包含 5 列:名称、经度、纬度、文件夹、颜色。颜色支持中文名(如"红色")或 Hex 格式(如 #FF0000)。

2. 上传数据文件

工具简介

表格转KML点位工具用于将CSV或Excel格式的点位数据转换为KML文件,支持自定义颜色标记和文件夹分组,适用于Google Earth等地理信息系统的点位标注场景。

使用方法

步骤一:下载模板

  1. 在工具页面点击「下载CSV模板」或「下载XLSX模板」按钮
  2. 将模板文件保存到本地

步骤二:填写数据

  1. 用Excel或文本编辑器打开模板文件
  2. 按模板格式填写点位数据:
    • 名称(必填):点位名称或标识
    • 经度(必填):WGS84经度坐标
    • 纬度(必填):WGS84纬度坐标
    • 颜色(可选):中文颜色名(如红色、蓝色)或Hex颜色值(如#FF0000)
    • 文件夹(可选):分组名称,相同文件夹的点位会在KML中归为一组

步骤三:上传文件

  1. 在工具页面点击「选择文件」按钮
  2. 选择填写好的模板文件
  3. 系统自动读取并验证数据

步骤四:预览与生成

  1. 查看数据预览,确认数据无误
  2. 点击「生成KML」按钮
  3. 浏览器自动下载生成的KML文件

输入格式要求

  • 文件格式:支持CSV(.csv)和Excel(.xlsx)格式
  • 编码:UTF-8编码
  • 表头:必须包含"名称"、"经度"、"纬度"列

支持的颜色格式

中文颜色名

  • 红色、蓝色、绿色、黄色、粉色、白色

Hex颜色值

  • 格式:#RRGGBB(如#FF0000表示红色)
  • 支持所有标准十六进制颜色值

输出KML文件说明

  • 格式:KML 2.2标准格式
  • 坐标系统:WGS84经纬度
  • 图标:使用Google Earth标准图钉图标
  • 文件夹结构:按文件夹字段分组展示

注意事项

  1. 模板文件必须按规定格式填写,表头名称需与模板一致
  2. 坐标值必须为有效数字,超出范围的坐标将导致KML文件无法正常显示
  3. 颜色字段为空时默认使用红色
  4. 文件夹字段为空时默认归到"默认文件夹"组
  5. 建议每次转换的数据量不超过5000个点位,以保证生成效率
  6. 生成的KML文件建议使用Google Earth或支持KML格式的GIS软件打开

中国各省访问量分布图

鼠标悬停查看各省份的访问数据统计

用户评论

所有评论均为匿名发布

1 浏览0 条评论
m6HL
暂无评论,来说两句吧