地理星图API文档
地理星图(Astro*Carto*Graphy)接口:返回指定时刻各行星的 MC/IC/ASC/DSC 角度线及角度线交叉点。天体名为全大写,时间为 ISO 8601 带时区偏移。
基本信息
| 参数 | 值 |
|---|---|
| Base URL | https://chart.12sign.top |
| 接口URL | /spc/acg |
| 请求方式 | POST |
| Content-Type | application/json |
请求参数
1. 基础参数(必需)
| 参数名 | 类型 | 必选 | 说明 |
|---|---|---|---|
| data.datetime | string | 是 | 时刻,格式:YYYY-MM-DD HH:MM:SS |
| data.lat | number | 是 | 地点纬度 |
| data.lon | number | 是 | 地点经度 |
| data.tz | number/string | 是 | 地点时区,如 8 表示UTC+8 |
2. 可选参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| planets | array | 十大行星+凯龙 | 要计算的天体列表(全大写),可选值:SUN/MOON/MERCURY/VENUS/MARS/JUPITER/SATURN/URANUS/NEPTUNE/PLUTO/CHIRON |
| include_intersections | boolean | true | 是否计算角度线交叉点 |
| lat_min / lat_max | number | -65 / 65 | 交叉点搜索的纬度范围 |
| lat_step | number | 0.25 | 交叉点搜索的纬度步长(度) |
返回参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| success | boolean | 请求是否成功 |
| time | string | 时刻,ISO 8601 带时区偏移(与 data.tz 一致) |
| bodies | object | 每个天体一条记录(键为全大写天体名) |
| bodies.{天体}.mc_longitude / ic_longitude | number | MC 线 / IC 线所在的经度(度,东经为正) |
| bodies.{天体}.asc_points / dsc_points | array | ASC 线 / DSC 线的折线点列表,每项为 [纬度, 经度] |
| bodies.{天体}.declination | number | 该天体赤纬(度) |
| intersections | array | 角度线交叉点列表,见下表 |
| intersections[].body1 / body2 | string | 相交的两个天体(全大写) |
| intersections[].line1 / line2 | string | 相交的两条角度线类型(mc/ic/asc/dsc) |
| intersections[].latitude / longitude | number | 交叉点纬度 / 经度 |
| intersections[].longitude_orb | number | 经度方向残差(度,越小越精确) |
返回示例(节选)
{
"success": true,
"time": "1990-06-15T14:30:00+08:00",
"bodies": {
"SUN": {
"mc_longitude": 82.581883, "ic_longitude": 262.581883, "declination": 23.302047,
"asc_points": [[-66.0, 67.91], [-64.0, 68.05], ...],
"dsc_points": [[-66.0, 97.25], ...]
},
"VENUS": { "...": "..." }
},
"intersections": [
{"body1": "SUN", "body2": "VENUS", "line1": "asc", "line2": "mc", "latitude": -61.75, "longitude": 45.84, "longitude_orb": 0.042},
...
]
}
使用说明
- MC/IC 线是竖直经线,直接用 mc/ic 的经度值绘制
- ASC/DSC 线随纬度弯曲,asc/dsc 数组即折线坐标点(纬度从低到高排列)
- 经度全部东经为正
Python 调用示例
import requests
response = requests.post('https://chart.12sign.top/spc/acg', json={
"data": {"datetime": "1990-06-15 14:30:00", "lat": 39.9, "lon": 116.4, "tz": 8}
})
d = response.json()
for name, rec in d['bodies'].items():
print(f"{name}: MC线经度={rec['mc_longitude']:.2f}°")
print(f"交叉点 {len(d['intersections'])} 个")
在线测试
请求地址:
https://chart.12sign.top/spc/acg
请求参数(JSON):
返回结果:
点击"发送请求"后在此显示结果