在 WPS/Excel 里做地理数据处理:功能市场 + 奥维 / Google Earth / QGIS 三种跳转实战

工参表、路测数据、网点清单、客户地址------这些数据的共性是都带经纬度,而且动辄几千上万行。

但在表格里你看不出任何空间关系。想知道"这批点落在地图上是什么形状",得走一遍:另存 CSV → 打开奥维 → 找导入 → 选字段 → 看一眼 → 回去改一个数 → 再来一遍。

我做 TableGIS(WPS / Excel 双平台插件)就是想把这个循环压短:选中区域,点一下,图上出点。

这篇文章讲三件事:

  1. 87 项功能怎么用「功能市场」组织起来,而不是一股脑塞进工具栏
  2. 奥维 / Google Earth / QGIS 三种跳转各自适合什么场景,参数怎么配
  3. 几个必然踩到的坑:坐标系、列名识别、本地端口

一、功能市场:为什么不是"装完就全给你"

最早我是把所有按钮直接铺在功能区上的。到 40 多个功能的时候,功能区已经没法看了------找"海拔查询"要横着扫三遍。

后来改成市场制,逻辑很简单:插件本体只带运行框架,功能按需从市场添加。

界面就四个东西:

  • 分类 tab:全部 / 表格基础 / 通信行业 / GIS / 插件
  • 搜索框:按功能名和描述搜
  • 排序:默认 / 名称 / 使用次数 / 更新时间
  • 添加 / 移除:右侧按钮,加了就到「我的」

「使用次数」这个排序是全局统计的,不是本地计数。所以它其实反映的是所有用户里哪些功能真的被用------比我自己拍脑袋排序靠谱。写文章这会儿排前面的是批量 KML、海拔查询、奥维标注点、距离/方位角、KML 临时打开。

顶部还有个「最近 30 天上新 · 更新」的角标,点开能看到这批更新了什么。功能是服务端推的,装了新版功能不用重装插件。

「我的」:24 个槽位 + 分组

添加的功能落到「我的」选项卡,一页 24 个图标位。三个操作:

操作 手势 结果
调顺序 拖到空位 重新排列
建分组 拖到另一个功能图标上 两个功能合成一组,最多 8 个成员
移除 / 改名 悬停右上角 ✕ / ✎ 移除或重命名(分组名最多 16 字)

分组在功能区上是一个下拉:点组图标展开,里面是成员。像"奥维跳转"这种点、扇形、圆形、设置、清除五个功能,塞一个分组里就占一格。

运行要在选项卡上点图标,市场页里点只是看详情。


二、奥维跳转:工程场景用得最多的那个

三个地图里,奥维是唯一"能把工参直接看明白"的------它能画扇形、画覆盖圆,而且支持自定义图标。

前提:本机装了奥维互动地图客户端。

2.1 三种标注形态

功能 需要的列 默认参数
奥维标注点 经度、纬度(可选名称) 图标「箭头」,可换图标库、可改颜色
奥维标注扇形 经度、纬度、方位角 波瓣宽度 30°、长度 100 米
奥维标注圆形 经度、纬度(可选半径列) 半径 50 米

列名是自动识别的:经度 / Lng / Lon / X、纬度 / Lat / Y、方位角 / Azimuth / AZ、半径 / 覆盖距离。放在哪一列都行,顺序不要求。

圆形那个有个细节:如果表里有「半径」或「覆盖距离」列,会按行取各自的值,不再用统一的 50 米。工参表里站型不同、覆盖半径不同的场景,这一列直接吃进去就行。

扇形用大圆算法算弧线顶点,长度是米,方位角是正北顺时针 0-360。

2.2 坐标类型必须先设对

这是最容易出问题的地方。

奥维客户端内部按 GCJ02(火星坐标) 显示,而工参、GPS 设备、Google Earth 用的是 WGS84。同一个点,两套坐标差几百米。

设置里有个「坐标类型」,默认 WGS84 (GPS)------意思是"我表格里的是 WGS84,你跳转时帮我转成 GCJ02"。转换在插件内部完成,用的是标准的 WGS84↔GCJ02 偏移算法。

如果你的表本来就是从高德导出的(GCJ02),就得把这里改成 GCJ02,否则会被反向偏移两次,点位会飘。

判断方法:随便挑一个点,在高德地图上搜一下,对得上就是 GCJ02,对不上就是 WGS84。

2.3 「点-可收藏」:批量进收藏夹,不用 VIP

前面三种标注都是加到临时图层里,关掉奥维就没了。适合"看一眼"。

如果要把点位长期留着,用「点-可收藏」:

选中区域 → 一键导入奥维收藏夹。上限 2000 点/次。

导入完成后有个结果文件,插件读回来告诉你成功多少条。

表头识别规则和上面一样,另外还支持单列格式:一格写 116.3975,39.9087,北京站(逗号、中文逗号、分号、Tab 都行)。

2.4 清除标记

临时图层里的东西多了会挡视线。侧边栏的「清除标记」一次性清掉 TableGIS 加的全部临时对象------只动自己加的,不碰你原有的收藏和标注。


三、Google Earth:只要看一眼形状

奥维适合工程标注,Google Earth 适合看地形和相对位置。

「KML 临时打开」:选中经纬度区域 → 生成一个临时 KML → 交给系统默认程序打开。

KML 是 OGC 标准,Google Earth、QGIS、ArcGIS、奥维都能读。所以这个功能实际上不绑定 Google Earth------关联了 KML 的程序都能接。

和「批量 KML」的区别:

KML 临时打开 批量 KML
输入 当前选区 CSV / Excel 文件
输出 临时文件,打开即看 按信号强度区间着色的覆盖圆图层
场景 快速核对坐标对不对 出交付图层

批量 KML 内置 4 套配色模板,也能自定义区间和半径。


四、QGIS:要进 GIS 流程的时候

QGIS 直接能使用

点会作为临时图层出现在 QGIS 工程里,能继续做缓冲区、叠加、出图。

设置里还有两项:

  • 自定义 SVG 图标:填一个 SVG 路径,标注就用你的图标(不填用插件默认)
  • 跳转前自动清除:避免图层越堆越多

为什么用 HTTP 而不是直接调 QGIS 的 Python?因为 WPS 的 JS 沙箱跑不了 Python,也不想往 QGIS 装一堆东西。HTTP 是最轻的边界------QGIS 那边只需要一个本地服务。


五、其他常用功能

87 项里,除了地图,日常打开频率比较高的是这几类:

坐标与解析

  • GPS / 百度 / 高德 三套坐标系互转(6 个转换功能)
  • 十进制 ↔ 度分秒
  • 地址 ↔ 经纬度批量互转(高德 / 百度双源,统一输出 WGS84)
  • 海拔批量查询(SRTM 90m)

表格清洗

  • 提取唯一值、删除空白(前/后/全部/仅中间)、文本转数字
  • 多 sheet 合并、两列对比、按列拆分
  • 身份证解析、手机号校验脱敏、正则提取、日期格式统一、金额大写

公式

  • =tablegis.DIS(经度1,纬度1,经度2,纬度2) → 距离(米)
  • =tablegis.AZ(...) → 方位角(0-360°)

公式这个比点按钮好用:算完是活的,源数据改了结果跟着变,不用重跑。

文件与图片

  • 批量重命名(支持撤销)、文件清单导出
  • PDF 合并 / 拆分、图片转 PDF
  • 图片批处理、图片压到指定体积、二维码/条形码生成与识别(离线)

六、踩坑清单

写下来省得别人再踩一遍。

1. 点位整体偏移几百米

坐标类型设错了。表格是 WGS84 就选 WGS84,是高德导出的就选 GCJ02。

2. 提示"无法识别经纬度列"

列名不在识别表里。把列名改成 经度 / 纬度,或者直接选中数据区(不带表头)------不带表头时按"第一列经度、第二列纬度"处理。

3. 表头有合并单元格

合并单元格会让 Value2 读出 null,整行被跳过。先取消合并。

4. 奥维连不上

默认连 127.0.0.1:51171,密码 tablegis。奥维客户端要先启动,且"允许外部程序控制"要打开。设置页有「测试连接」,先点这个。

5. QGIS 没反应

tablegis_jump 插件没启动,或者 19871 端口被占。浏览器打开 http://127.0.0.1:19871 看有没有响应。

6. 几千行直接全选就跑

先用 10 行验证参数对不对(尤其是半径、方位角列有没有识别对),再跑全量。错一次重来比重试十次便宜。


获取

官网:www.tablegis.com

WPS 和 Excel 两个版本,功能一致,安装包约 5MB。前 30 天免费试用,试用期不需要授权码。

地理数据处理这块,最大的成本从来不是算,是"看一眼"。把这一步压到一次点击,剩下的时间才是在干活。

相关推荐
zhougl9961 小时前
什么是 URL
javascript
xiaolang_8616_wjl1 小时前
c++游戏_宝可梦大世界(源代码)
开发语言·c++·游戏
Leinwin2 小时前
Copilot Studio 实战:多模型选择、GitHub Copilot harness 计费与 Copilot Credits 额度管理
开发语言·c#
余额瞒着我当琳2 小时前
C++异常,异常的概念,异常抛出与捕获,RAII 和智能指针的设计思路,C++标准库一些指针的使用
java·开发语言·c++·算法
严谨的麻辣烫2 小时前
固定 IP 稳定性如何检测?使用 Python 实现网络连通性与耗时监控
开发语言·数据库·php
FuckPatience2 小时前
C# Winform 使用Label循环显示闪烁
开发语言·c#
螺丝钉tina2 小时前
[Playwright][01] 从 Puppeteer 到 Playwright:为什么选择 Playwright + TypeScript?
前端·javascript·typescript
大团米线2 小时前
vite多环境合并打包config
javascript·vue.js·ecmascript