台风最新坐标轨迹接口:用经纬度在地图上画出台风路径
# 台风最新坐标轨迹接口:用经纬度在地图上画出台风路径
> 接口 342 · 免费 · 适用前端/全栈工程师 · 阅读约 8 分钟
## 核心要点
- 取 342-1 的 tfid → 342-2 的 obj 数组,将 (lng, lat) 转 float 后标点。
- 按 time 升序连线,即得一条台风运动轨迹;movespeed+movedirection 可画箭头表示走向。
- 关键边界:接口未声明坐标系,上图前必须向数据源确认 WGS-84/GCJ-02/BD-09,否则会偏移。
## Why:这跟我有关系吗
把一串数字变成一条肉眼可见的路径,是台风产品最有「体感」的一步。
## What:接口速览
| 步骤 | 接入点 | 作用 |
|------|------|------|
| 1 取 tfid | 342-1 | 当前在编台风列表 |
| 2 取轨迹点 | 342-2 | obj 数组(连续时刻坐标) |
| 3 上图 | 前端地图 | 标点 + 按 time 连线 |
## How:一步步调用
### Python:取按 time 升序的坐标点
```python
import requests
# 1) 取当前台风列表,挑第一个 tfid
lst = requests.post(
"https://route.showapi.com/342-1",
params={"appKey": "YOUR_APPKEY"},
headers={"content-type": "application/x-www-form-urlencoded"},
timeout=10,
).json()
tfid = lst["showapi_res_body"]["list"][0]["tfid"]
# 2) 取该台风轨迹点
trk = requests.post(
"https://route.showapi.com/342-2",
params={"appKey": "YOUR_APPKEY"},
data={"tfid": tfid},
headers={"content-type": "application/x-www-form-urlencoded"},
timeout=10,
).json()
# 注意:lat/lng 为字符串需转 float;接口未声明坐标系,上图前需向数据源确认 WGS-84/GCJ-02/BD-09
points = [
(float(p["lng"]), float(p["lat"]))
for p in sorted(trk["showapi_res_body"]["obj"], key=lambda x: x["time"])
]
print(points)
```
### 前端(通用 Leaflet 示例)
```javascript
// 通用 Leaflet 示例(OpenStreetMap 瓦片,无需商业 SDK/Key)
// ⓵ 先取到按 time 升序的 [lng, lat] 数组 points(来自 342-1 + 342-2)
const map = L.map("map").setView(points[0], 4);
L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png").addTo(map);
L.polyline(points, { color: "red" }).addTo(map); // 轨迹连线
points.forEach((p, i) => L.circleMarker(p).addTo(map)); // 各时刻点
// 重要:接口未声明坐标系,正式上图前务必向数据源确认 WGS-84 / GCJ-02 / BD-09,否则点位会偏移。
```
## 返回示例与解析
```json
{
"showapi_res_code": 0,
"showapi_res_body": {
"obj": [
{"enname": "Chan-hom", "lat": "26.00", "lng": "125.10", "movedirection": "北西",
"movespeed": "20", "name": "灿鸿", "power": "16", "pressure": "935",
"radius10": "180", "radius7": "450", "speed": "52", "strong": "超强台风",
"tfid": "201509", "time": "2015-07-10 11:00:00"},
{"enname": "Chan-hom", "lat": "25.20", "lng": "124.30", "movedirection": "北西",
"movespeed": "22", "name": "灿鸿", "power": "16", "pressure": "930",
"radius10": "180", "radius7": "450", "speed": "55", "strong": "超强台风",
"tfid": "201509", "time": "2015-07-10 17:00:00"}
],
"ret_code": 0
}
}
```
取 obj 中每项的 (lng, lat),按 time 排序后即为绘制轨迹的点序列。
## 进阶与边界
坐标系未声明是实测发现的文档缺口;GCJ-02 与 WGS-84 差异在中国海域可达数百米,务必确认。lat/lng 为字符串需 float。
## FAQ
**Q:接口返回的是哪种坐标系?**
文档未声明,需向数据源确认(WGS-84/GCJ-02/BD-09);切勿直接画。
**Q:轨迹点顺序怎么定?**
用 obj 每项的 time 字段升序排序。
**Q:能否直接用高德/百度地图?**
可以,但需先确认接口坐标系并做对应转换,否则点位偏移。
## 相关能力 / 下一步阅读
- [台风最新坐标轨迹接口:用 tfid 调用单个台风详情(342-2)拉取轨迹数据线](https://www.showapi.com/guides/typhoon-track-detail-342)
- [台风最新坐标轨迹接口返回字段全解:list/obj/typhoon_list 与 14 项坐标强度字段](https://www.showapi.com/guides/typhoon-track-response-fields-342)
- [台风最新坐标轨迹接口:坐标、风力等级与影响半径如何驱动业务判断](https://www.showapi.com/guides/typhoon-track-data-model-342)
- **本系列共 13 篇**:查看[台风最新坐标轨迹接口官方指南总目录](https://www.showapi.com/guides/typhoon-track-guides-342)