地理星图API文档

地理星图(Astro*Carto*Graphy)接口:返回指定时刻各行星的 MC/IC/ASC/DSC 角度线及角度线交叉点。天体名为全大写,时间为 ISO 8601 带时区偏移。

基本信息

参数值
Base URLhttps://chart.12sign.top
接口URL/spc/acg
请求方式POST
Content-Typeapplication/json

请求参数

1. 基础参数(必需)

参数名类型必选说明
data.datetimestring是时刻,格式:YYYY-MM-DD HH:MM:SS
data.latnumber是地点纬度
data.lonnumber是地点经度
data.tznumber/string是地点时区,如 8 表示UTC+8

2. 可选参数

参数名类型默认值说明
planetsarray十大行星+凯龙要计算的天体列表(全大写),可选值:SUN/MOON/MERCURY/VENUS/MARS/JUPITER/SATURN/URANUS/NEPTUNE/PLUTO/CHIRON
include_intersectionsbooleantrue是否计算角度线交叉点
lat_min / lat_maxnumber-65 / 65交叉点搜索的纬度范围
lat_stepnumber0.25交叉点搜索的纬度步长(度)

返回参数

参数名类型说明
successboolean请求是否成功
timestring时刻,ISO 8601 带时区偏移(与 data.tz 一致)
bodiesobject每个天体一条记录(键为全大写天体名)
bodies.{天体}.mc_longitude / ic_longitudenumberMC 线 / IC 线所在的经度(度,东经为正)
bodies.{天体}.asc_points / dsc_pointsarrayASC 线 / DSC 线的折线点列表,每项为 [纬度, 经度]
bodies.{天体}.declinationnumber该天体赤纬(度)
intersectionsarray角度线交叉点列表,见下表
intersections[].body1 / body2string相交的两个天体(全大写)
intersections[].line1 / line2string相交的两条角度线类型(mc/ic/asc/dsc)
intersections[].latitude / longitudenumber交叉点纬度 / 经度
intersections[].longitude_orbnumber经度方向残差(度,越小越精确)

返回示例(节选)

{
    "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):
返回结果:
点击"发送请求"后在此显示结果