# @zealgeo/mcp-geo-server
这是一个基于 Model Context Protocol (MCP) 的地理处理工具服务器,提供坐标系统转换、距离计算、面积计算等空间分析功能。
## 安装
```json
"geo-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y"
"@zealgeo/mcp-geo-server"
]
}
```
## 功能
支持以下坐标系统之间的转换:
- BD09(百度坐标系)
- GCJ02(火星坐标系)
- WGS84(GPS坐标系)
- Web Mercator(网络墨卡托投影)
支持的转换方法:
- BD09 与 GCJ02 互转
- WGS84 与 GCJ02 互转
- BD09 与 WGS84 互转
- Web Mercator 与经纬度互转
支持的空间计算:
- 计算折线距离(支持米、千米单位)
- 计算多边形面积(支持平方米、平方公里、公顷单位)
- 支持多种坐标系统输入(WGS84、GCJ02、BD09)
## MCP Tools
### mcp_geo_convert
坐标系统转换工具。支持 BD09、GCJ02、WGS84 和 Web Mercator 之间的互相转换。
参数:
- `method`: 转换方法
- `BD09toGCJ02`: 百度坐标系转火星坐标系
- `GCJ02toBD09`: 火星坐标系转百度坐标系
- `WGS84toGCJ02`: WGS84转火星坐标系
- `GCJ02toWGS84`: 火星坐标系转WGS84
- `BD09toWGS84`: 百度坐标系转WGS84
- `WGS84toBD09`: WGS84转百度坐标系
- `WebMercatortoLngLat`: Web墨卡托转经纬度
- `LngLattoWebMercator`: 经纬度转Web墨卡托
- `longitude`: 经度值
- `latitude`: 纬度值
### mcp_geo_calculate_distance
计算折线距离。基于 Web Mercator 投影进行平面距离计算。
参数:
- `coordinates`: 折线坐标点数组 `[[lon1,lat1], [lon2,lat2],...]`
- `unit`: 长度单位(`meters`米[默认]、`kilometers`千米)
- `coordType`: 输入坐标类型(`WGS84`[默认]、`GCJ02`、`BD09`)
### mcp_geo_calculate_area
计算多边形面积。基于 Web Mercator 投影进行平面面积计算。
参数:
- `coordinates`: 多边形坐标点数组 `[[lon1,lat1], [lon2,lat2],...]`
- `unit`: 面积单位(`square_meters`平方米[默认]、`square_kilometers`平方公里、`hectares`公顷)
- `coordType`: 输入坐标类型(`WGS84`[默认]、`GCJ02`、`BD09`)
## 坐标系说明
### BD09(百度坐标系)
百度地图使用的坐标系统,在GCJ02基础上再次加密。
### GCJ02(火星坐标系)
中国国测局制定的地理信息系统坐标系统,是对WGS84进行加密后的坐标系。
### WGS84
GPS原始坐标系统,目前广泛使用的GPS全球卫星定位系统使用的坐标系统。
### Web Mercator
网页地图使用的投影坐标系统,将球面坐标转换为平面坐标。用于距离和面积计算时可以获得更准确的结果。
## 注意事项
1. 坐标转换精度与原始数据质量有关
2. 中国大陆以外的坐标,WGS84与GCJ02坐标系转换将直接返回原始坐标
3. Web Mercator坐标通常以米为单位
4. 距离和面积计算使用Web Mercator投影后的平面计算方法,适用于中小尺度的计算
5. 对于跨越大洲的超长距离或超大面积,建议使用球面计算方法
6. 多边形面积计算不需要手动闭合,程序会自动处理闭合