太阳弧推运盘API文档

接口说明

本接口用于生成太阳弧推运盘,需要提供本命盘数据和推运目标时间。太阳弧推运是一种重要的推运技术,通过计算太阳的运动来预测人生发展。

基本信息

请求参数

参数名 类型 必选 说明
chart_type string 固定值:"solararc"
natal_data.datetime string 出生日期时间,格式:YYYY-MM-DD HH:mm:ss
natal_data.lat number 出生地纬度
natal_data.lon number 出生地经度
natal_data.tz string 出生地时区
target_data.datetime string 推运目标日期时间,格式:YYYY-MM-DD HH:mm:ss
target_data.lat number 推运目标地点纬度
target_data.lon number 推运目标地点经度
target_data.tz string 推运目标地点时区
house_system string 宫位系统,默认为占星安宫(P)
use_chinese_font boolean 是否使用中文字体,默认false
include_svg Boolean 是否包含SVG图像,默认false

请求示例

{
        "chart_type": "solararc",
        "natal_data": {
        "datetime": "1990-01-01 12:00:00",
        "lat": 39.9042,
        "lon": 116.4074,
        "tz": "8.0"
        },
        "target_data": {
        "datetime": "2024-01-01 12:00:00",
        "lat": 39.9042,
        "lon": 116.4074,
        "tz": "8.0"
        },
        "house_system": "P",
        "use_chinese_font": true,
						"include_svg":true,
        }

返回参数

参数名 类型 说明
data object 星盘数据,包含行星位置、宫位等信息
svg string 星盘SVG图形数据(可能为null如果SVG生成失败)

返回示例

{
        "data": {
        "chart_type": "solararc",
        "birth_date": "1990-01-01 12:00",
        "target_date": "2024-01-01 12:00",
        "planets": {
            "sun": {"longitude": 280.5, "latitude": 0.0, ...},
            "moon": {"longitude": 125.3, "latitude": 2.1, ...},
            ...
        },
        "houses": {
            "ASC": {"longitude": 45.2},
            "House_1": {"longitude": 45.2},
            "House_2": {"longitude": 75.8},
            ...
        }
        },
        "svg": "..."
        }

Python测试代码示例

import requests
import json
import os

# 测试太阳弧推运盘API
def test_solararc(base_url="http://chart.12sign.top"):
    url = f"{base_url}/onechart"
    
    payload = {
        "chart_type": "solararc",
        "natal_data": {
            "datetime": "1990-01-01 12:00:00",
            "lon": 116.4,
            "lat": 39.9,
            "tz": 8.0
        },
        "target_data": {
            "datetime": "2024-01-01 12:00:00",
            "lon": 116.4,
            "lat": 39.9,
            "tz": 8.0
        },
        "house_system": "P",
        "include_svg": True
    }
    
    try:
        print("正在测试太阳弧推运盘API...")
        response = requests.post(url, json=payload, headers={'Content-Type': 'application/json'})
        print(f"响应状态码: {response.status_code}")
        
        if response.status_code == 200:
            data = response.json()
            print("太阳弧推运盘API测试成功!")
            print(f"返回数据包含: {list(data.keys())}")
            print("完整的返回数据:")
            print(data)
            
            # 保存SVG文件
            if 'svg' in data and data['svg']:
                os.makedirs('test_outputs', exist_ok=True)
                with open('test_outputs/solararc_test.svg', 'w', encoding='utf-8') as f:
                    f.write(data['svg'])
                print("SVG文件已保存: test_outputs/solararc_test.svg")
            
            return data
        else:
            print(f"API请求失败: {response.status_code}")
            print(f"错误信息: {response.text}")
            return None
            
    except Exception as e:
        print(f"请求出错: {e}")
        return None

if __name__ == "__main__":
    test_solararc()
    

def test_solararc_api(base_url="http://chart.12sign.top"):
    """测试太阳弧推运盘API"""
    endpoint = f"{base_url}/api/chart"
    
    # 测试数据
    payload = {
        "chart_type": "solararc",
        "natal_data": {
            "datetime": "1990-01-01 12:00:00",
            "lat": 39.9042,
            "lon": 116.4074,
            "tz": "8.0"
        },
        "target_data": {
            "datetime": "2025-01-01 12:00:00",
            "lat": 39.9042,
            "lon": 116.4074,
            "tz": "8.0"
        },
        "house_system": "P",
        "use_chinese_font": True
    }
    
    try:
        response = requests.post(
            endpoint,
            json=payload,
            headers={'Content-Type': 'application/json'}
        )
        
        if response.status_code == 200:
            result = response.json()
            print("✓ 太阳弧推运盘API测试成功")
            
            # 保存SVG文件
            if 'svg' in result and result['svg']:
                with open('solararc_chart.svg', 'w', encoding='utf-8') as f:
                    f.write(result['svg'])
                print("  SVG已保存: solararc_chart.svg")
            
            return result
        else:
            print(f"✗ 太阳弧推运盘API测试失败: {response.status_code}")
            return None
            
    except Exception as e:
        print(f"✗ 太阳弧推运盘API测试出错: {e}")
        return None

# 使用示例
if __name__ == "__main__":
    print("=== 太阳弧推运盘API测试 ===")
    test_solararc_api()
    print("\n测试完成!")

注意事项

  • 太阳弧推运是一种基于太阳运动的推运技术
  • natal_data为本命盘数据,target_data为推运目标时间和地点
  • 时间格式必须严格遵循YYYY-MM-DD HH:mm:ss的格式
  • 经纬度使用小数格式,东经北纬为正,西经南纬为负
  • 时区格式为数字字符串,如"8.0"或"-5.5"
  • 太阳弧推运常用于预测人生重大事件和发展机遇
  • SVG字段可能为null,表示图形生成失败,但数据仍然有效
  • API已通过完整测试,包括不同年龄、地点、宫位制等场景