Skip to content

A Claude Code skill for converting geographic coordinates between Chinese map coordinate systems (WGS84/GCJ02/BD09/BD09MC/WebMercator)

License

Notifications You must be signed in to change notification settings

zhyt1985/gcoord_skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gcoord Skill

一个用于 Claude Code 的地理坐标系转换工具,专门处理中国地图坐标系互转问题。

致谢

本项目基于 hujiulong/gcoord 开发,向原作者 hujiulong 致敬!感谢他提供了优秀的坐标转换核心算法库,让处理坐标系问题变得简单。

开发工具

本项目使用以下工具开发:

  • Claude Code - Anthropic 的 AI 命令行工具
  • GLM 4.7 - 智谱 AI 提供的大语言模型

功能特性

  • 🔄 多坐标系支持:WGS84 / GCJ02 / BD09 / BD09MC / WebMercator
  • 📄 文件操作:支持读取 GeoJSON 文件并进行批量转换
  • 🚀 大文件处理:自动使用流式处理,支持超过 10MB 的大型文件
  • 📊 进度显示:实时显示转换进度,便于监控大批量数据处理
  • 💬 自然语言:支持中英文自然语言指令调用
  • 🌏 坐标系别名:支持 高德百度GPS 等中文别名

支持的坐标系

代码 中文名称 适用平台 别名
WGS84 地球坐标系 GPS 原始坐标 gps, 地球坐标
GCJ02 火星坐标系 高德、腾讯地图 高德, amap, 腾讯, 火星坐标
BD09 百度坐标系 百度地图 百度, baidu, bmap
BD09MC 百度米制坐标 百度地图米制 百度米制
WebMercator 墨卡托投影 Web 地图 墨卡托, epsg3857

安装

将此 skill 安装到 ~/.claude/skills/gcoord/ 目录:

git clone https://github.com/zhyt1985/gcoord_skill.git ~/.claude/skills/gcoord_skill
cd ~/.claude/skills/gcoord_skill/gcoord
npm install

在 Claude Code 中使用

安装 skill 后,在 Claude Code 中可以直接使用 /gcoord 命令或自然语言调用:

方式一:使用 /gcoord 命令

/gcoord 116.403988,39.914266 --from wgs84 --to gcj02

方式二:自然语言调用

# 单点坐标转换
帮我把 116.403988,39.914266 转成高德坐标

# 文件转换
把 @data.geojson 转成百度坐标系

# 坐标系互转
WGS84 转 GCJ02: [116.403988, 39.914266]

# 转换并指定输出文件
把 data.geojson 转成高德坐标,输出为 result.geojson

支持的自然语言模式

模式 示例
"转成/转换为/转到" 转成高德坐标
"在...地图显示" 在百度地图上显示
"...坐标转..." GPS坐标转百度
"帮我转换/帮我转" 帮我转换成火星坐标

交互式坐标系选择

当您未指定坐标系参数时,Claude Code 会智能提示您选择:

使用场景

场景 1: 未指定任何坐标系

帮我转换 116.403988,39.914266

# Claude 会提示选择坐标系

场景 2: 从上下文推断

把 116.403988,39.914266 在百度地图上显示
# Claude 只会询问源坐标系(目标已明确为百度)

场景 3: 明确指定参数

/gcoord 116.403988,39.914266 --from WGS84 --to GCJ02
# 不会提示,直接转换

命令行使用

基本用法

# 单点坐标转换
node index.js --input "116.403988,39.914266" --from WGS84 --to GCJ02

# GeoJSON 字符串转换
node index.js --input '{"type":"Point","coordinates":[116.403988,39.914266]}' --from WGS84 --to BD09

# 文件转换
node index.js --file data.geojson --from WGS84 --to GCJ02 --output result.geojson

# 原地转换(覆盖原文件)
node index.js --file data.geojson --from WGS84 --to GCJ02 --in-place

# 大文件流式处理
node index.js --file large-data.geojson --from WGS84 --to GCJ02 --stream

命令行参数

参数 简写 说明
--input <string> -i 输入坐标或 GeoJSON 字符串
--file <path> -F 指定输入文件路径
--output <path> -o 指定输出文件路径
--from <crs> -f 源坐标系
--to <crs> -t 目标坐标系
--in-place -I 原地转换,覆盖原文件
--stream -s 强制启用流式处理

使用示例

示例 1:转换单点坐标

node index.js --input "116.403988,39.914266" --from WGS84 --to GCJ02

输出:

转换: WGS84 → GCJ02
结果: 116.410232, 39.915670

示例 2:转换 GeoJSON 文件

node index.js --file beijing-poi.geojson --from WGS84 --to GCJ02 --output beijing-poi-gcj02.geojson

输出:

文件: beijing-poi.geojson
大小: 0.83 MB
转换: WGS84 → GCJ02

处理中...
[██████████████████████████████] 100.0% (853/853) ETA: 0.0s
✓ 已保存到: beijing-poi-gcj02.geojson

示例 3:使用中文别名

# 使用中文别名
node index.js --input "116.403988,39.914266" --from gps --to 高德

# 转换到百度坐标系
node index.js --file data.geojson --from wgs84 --to 百度

示例 4:批量坐标转换

node index.js --input "116.403988,39.914266
121.499763,31.239586" --from WGS84 --to GCJ02

输出:

转换: WGS84 → GCJ02
结果: 116.41023240747266, 39.915670251113426
121.50419587831874, 31.237572062731754

支持的输入格式

  • 单点坐标116.403988,39.914266
  • 坐标数组[116.403988, 39.914266]
  • 批量坐标:多行文本,每行一个坐标
  • GeoJSON 字符串{ "type": "Point", "coordinates": [...] }
  • GeoJSON 文件:通过 --file 参数指定

依赖

  • gcoord v1.0.7 - 坐标转换核心库

测试

cd gcoord && npm test

使用 Node.js 内置 node:test 运行,零外部依赖,覆盖单点转换、数组格式、批量转换、GeoJSON、无效坐标系报错、中英文别名、空输入及边界情况。

注意事项

  1. 坐标系选择:GPS 设备获取的原始坐标是 WGS84,在中国地图服务上显示需要先转换为 GCJ02(高德/腾讯)或 BD09(百度)
  2. 原地转换:使用 --in-place 会直接覆盖原文件,请确保有备份
  3. 大文件处理:文件大于 10MB 时自动启用流式处理以节省内存

许可证

MIT License - 详见 LICENSE 文件

贡献

欢迎提交 Issue 和 Pull Request!

相关链接

About

A Claude Code skill for converting geographic coordinates between Chinese map coordinate systems (WGS84/GCJ02/BD09/BD09MC/WebMercator)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published