# Baidu Geocoding

> 提供百度地图地理编码和逆地理编码能力：地址转坐标、坐标转地址；适用于地图定位、导航、LBS 等场景

- Skill: `qq5855144/baidu-geocoding` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add qq5855144/baidu-geocoding`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qq5855144/baidu-geocoding/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: qq5855144 (https://skillmd.com/u/qq5855144)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/qq5855144/baidu-geocoding

---


## 能力概述

本 Skill 封装百度地图定位插件，提供两个核心接口：

| 接口 | 方向 | Endpoint | Method |
|------|------|----------|--------|
| 地理编码 | 地址 → 坐标 | `GET https://app-bo4w33bsdqm9-api-GaDwZ0j3erOY-gateway.appmiaoda.com/geocoding/v3/` | GET |
| 逆地理编码 | 坐标 → 地址 | `GET https://app-bo4w33bsdqm9-api-baBwZEjbe1X9-gateway.appmiaoda.com/reverse_geocoding/v3` | GET |

- **认证模式**: `platform_managed`（`traefik: true`），密钥由平台注入，无需用户配置
- **响应格式**: JSON
- **支持平台**: Web、MiniProgram（Taro）、App

**MiniProgram 平台关键差异：**
- 使用地图组件（Map）时，H5 端不可用，需显示兼容提示
- 调用 `Taro.getLocation` 前须在 `app.config.ts` 中配置 `requiredPrivateInfos` 和位置权限
- `Taro.getLocation` 的 `type` 参数在 H5 端用 `wgs84`，在 WeApp 端用 `gcj02`

---

## 生成期用法（Agent 直接调用）

两个接口各有独立的 Deno TypeScript 实现，详见：
- `references/geocoding-api.md` — 地理编码接口（地址 → 坐标）
- `references/reverse-geocoding-api.md` — 逆地理编码接口（坐标 → 地址）

**快速示例（地理编码）：**

```typescript
const apiKey = process.env["INTEGRATIONS_API_KEY"]!;

const params = new URLSearchParams({
  address: "百度大厦",
  city: "北京市",
  output: "json",
});
const response = await fetch(
  `https://app-bo4w33bsdqm9-api-GaDwZ0j3erOY-gateway.appmiaoda.com/geocoding/v3/?${params}`,
  {
    method: "GET",
    headers: {
      "X-Gateway-Authorization": `Bearer ${apiKey}`,
    },
  }
);
const json = await response.json();
// json.result.location.lng / json.result.location.lat
```

---

## 生成后用法（应用内通过 Edge Function 调用）

每个接口需部署一个独立的 Edge Function，分别将请求转发至百度地图 API 并向客户端返回 JSON。

| 接口 | Edge Function 文件 | 前端调用函数 |
|------|--------------------|-------------|
| 地理编码 | `edge-functions/geocoding.ts` | `fetchGeocode(address, city?)` |
| 逆地理编码 | `edge-functions/reverse-geocoding.ts` | `fetchReverseGeocode(location)` |

**平台差异说明（MiniProgram）：**
在小程序中调用这两个接口前，通常需要先通过 `Taro.getLocation` 获取用户坐标。请注意：
- H5 端 `type` 传 `wgs84`，WeApp 端传 `gcj02`
- 需在 `app.config.ts` 中声明 `requiredPrivateInfos: ["getLocation"]` 和 `permission.scope.userLocation`

完整 Edge Function 和前端代码详见：
- `references/geocoding-api.md`
- `references/reverse-geocoding-api.md`

