三盘API文档 - 本命盘+马克思盘+行运盘
接口说明
本命盘+马克思盘+行运盘接口用于生成三层星盘的对比分析。内圈显示本命盘,中圈显示马克思盘,外圈显示行运盘,用于综合分析个人本命、关系马克思盘和当前行运的影响。
| 参数 | 值 |
|---|---|
| Base URL | https://chart.12sign.top |
| 接口URL | /trichart |
| 请求方式 | POST |
| Content-Type | application/json |
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type1 | String | 是 | 第一层星盘类型,固定值:"natal" |
| type2 | String | 是 | 第二层星盘类型,固定值:"marx" |
| type3 | String | 是 | 第三层星盘类型,固定值:"transit" |
| data1 | Object | 是 | 本命盘数据(内圈) |
| data2 | Object | 是 | 马克思盘数据(中圈)- 包含两人的出生信息 |
| data3 | Object | 是 | 行运盘数据(外圈) |
| house_system | String | 是 | 宫位系统,例如:"P"(普拉西德) |
自定义天体计算参数 (可选)
通过以下参数,可以精确控制每个盘面计算哪些天体。如果提供,将仅计算列表中的天体。
| 参数名 | 类型 | 说明 |
|---|---|---|
| chart1_custom_planets | List<String> | 内圈自定义行星列表,如 ["SUN", "MOON"] |
| chart2_custom_planets | List<String> | 中圈自定义行星列表 |
| chart3_custom_planets | List<String> | 外圈自定义行星列表 |
| chart{1/2/3}_custom_asteroids | List<String> | 小行星列表,如 ["Chiron"] |
| chart{1/2/3}_custom_arabic_parts | List<String> | 阿拉伯点列表,如 ["Part of Fortune"] |
| chart{1/2/3}_custom_special_points | List<String> | 特殊点列表,如 ["Ascendant", "MC"] |
绘图显示控制参数 (可选)
控制生成的 SVG 中显示哪些元素。
| 参数名 | 类型 | 说明 |
|---|---|---|
| display_planets1 | List<String> | 内圈显示的星体列表,如 ["SUN", "MOON", "ASC"]。不传则显示所有计算出的星体。 |
| display_planets2 | List<String> | 中圈显示的星体列表 |
| display_planets3 | List<String> | 外圈显示的星体列表 |
| display_aspects | Boolean/List | 控制相位显示。True 显示所有,False 不显示,或传入列表指定显示的相位类型。 |
| fixed_stars_in_svg | Boolean | 是否在 SVG 中绘制恒星。 |
data1和data3的参数结构
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| datetime | String | 是 | 日期时间,格式:"YYYY-MM-DD HH:MM:SS" |
| lat | Number | 是 | 纬度,范围:-90到90 |
| lon | Number | 是 | 经度,范围:-180到180 |
| tz | Number | 是 | 时区偏移,例如:8.0(东八区) |
data2(马克思盘)的参数结构
注意:在三盘API中,马克思盘的data2使用扁平结构,而不是嵌套的person1/person2结构。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| datetime | String | 是 | 日期时间,格式:"YYYY-MM-DD HH:MM:SS" |
| lat | Number | 是 | 纬度,范围:-90到90 |
| lon | Number | 是 | 经度,范围:-180到180 |
| tz | Number | 是 | 时区偏移,例如:8.0(东八区) |
请求示例
{
"type1": "natal",
"type2": "marx",
"type3": "transit",
"data1": {
"datetime": "1990-01-01 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8.0
},
"data2": {
# 注意:在三盘API中,马克思盘的data2使用扁平结构,而不是嵌套的person1/person2结构
"datetime": "1992-06-15 14:30:00",
"lat": 31.2304,
"lon": 121.4737,
"tz": 8.0
},
"data3": {
"datetime": "2024-12-25 15:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8.0
},
"house_system": "P",
"include_svg": true,
"chart1_custom_planets": ["SUN", "MOON", "MERCURY", "VENUS", "MARS", "JUPITER", "SATURN"],
"chart1_custom_special_points": ["Ascendant", "Midheaven"],
"chart2_custom_planets": ["SUN", "MOON", "MARS"],
"display_planets1": ["SUN", "MOON", "Ascendant"],
"display_planets2": ["SUN", "MOON"],
"display_planets3": ["SATURN", "JUPITER"]
}
返回参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| success | Boolean | 请求是否成功 |
| data | Object | 星盘数据 |
| data.type1 | String | 第一层星盘类型:"natal" |
| data.type2 | String | 第二层星盘类型:"marx" |
| data.type3 | String | 第三层星盘类型:"transit" |
| data.house_cusps | Array | 宫头位置数组(12个元素) |
| data.chart1_planets | Object | 本命盘行星位置数据 |
| data.chart2_planets | Object | 马克思盘行星位置数据 |
| data.chart3_planets | Object | 行运盘行星位置数据 |
| svg | String | SVG格式的星盘图像(当include_svg为true时) |
| message | String | 响应消息 |
返回示例
{
"success": true,
"data": {
"type1": "natal",
"type2": "marx",
"type3": "transit",
"house_cusps": [0.0, 30.0, 60.0, 90.0, 120.0, 150.0, 180.0, 210.0, 240.0, 270.0, 300.0, 330.0],
"chart1_planets": {
"Sun": {"longitude": 280.123, "speed": 1.0},
"Moon": {"longitude": 45.678, "speed": 13.2}
},
"chart2_planets": {
"Sun": {"longitude": 145.456, "speed": 1.0},
"Moon": {"longitude": 220.789, "speed": 13.1}
},
"chart3_planets": {
"Sun": {"longitude": 275.123, "speed": 1.0},
"Moon": {"longitude": 180.456, "speed": 13.3}
}
},
"svg": "",
"message": "三盘计算成功"
}
Python调用示例
import requests
import json
# API端点
url = "https://chart.12sign.top/trichart"
# 请求数据(注意:马克思盘在三盘API中使用扁平结构)
data = {
"type1": "natal",
"type2": "marx",
"type3": "transit",
"data1": {
"datetime": "1990-01-01 12:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8.0
},
"data2": {
"datetime": "1992-06-15 14:30:00",
"lat": 31.2304,
"lon": 121.4737,
"tz": 8.0
},
"data3": {
"datetime": "2024-12-25 15:00:00",
"lat": 39.9042,
"lon": 116.4074,
"tz": 8.0
},
"house_system": "P",
"include_svg": True
}
# 发送POST请求
response = requests.post(url, json=data)
# 处理响应
if response.status_code == 200:
result = response.json()
if "error" not in result:
print("请求成功!")
chart_data = result.get('chart_data', {})
if chart_data:
print(f"本命盘行星数据: {chart_data.get('chart1', {}).get('planets', {})}")
print(f"马克思盘行星数据: {chart_data.get('chart2', {}).get('planets', {})}")
print(f"行运盘行星数据: {chart_data.get('chart3', {}).get('planets', {})}")
# 如果包含SVG,可以保存到文件
if "svg" in result and result["svg"]:
with open("trichart_natal_marx_transit.svg", "w", encoding="utf-8") as f:
f.write(result["svg"])
print("SVG文件已保存")
else:
print(f"API返回错误: {result['error']}")
else:
print(f"HTTP请求失败: {response.status_code}")
注意事项
- 所有时间格式必须为"YYYY-MM-DD HH:MM:SS"
- 经度范围:-180到180,纬度范围:-90到90
- 时区格式为数字,东时区为正数,西时区为负数
- type1必须设置为"natal",type2必须设置为"marx",type3必须设置为"transit"
- data1为本命盘数据(内圈),data2为马克思盘数据(中圈),data3为行运盘数据(外圈)
- 马克思盘是一种特殊的关系盘计算方法
- 马克思盘在三盘API中使用扁平数据结构,与单盘API的马克思盘(使用嵌套结构)不同
- 马克思盘与组合盘、戴维森盘使用不同的计算方法
- 行运盘显示指定时间的实际天体位置
- 三个时间点通常为:个人出生时间、关系形成时间、当前时间
- 适用于分析个人与关系在特定时期的综合影响
- 返回的行星位置包含经度和速度信息