双盘通用参数说明

本页面汇总所有双盘(/bichart)接口通用的绘图/相位/容许度与Chart1/Chart2专用参数说明。

chart_style 参数说明

参数名 类型 说明
chart_style String 绘图风格:"standard"(标准,默认)、"classic"(经典)、"gd"(GD风格)

include_coordinates 参数说明

参数名 类型 默认值 说明
include_svg_coords Boolean false 是否在返回数据中嵌入SVG坐标。传 true 时,data.svg_coords 中会包含所有可交互元素的像素坐标:
  • planets: 行星/恒星/阿拉伯点符号坐标
  • signs: 12星座符号坐标
  • houses: 12宫数字坐标
  • aspects: 相位符号中点坐标
前端可直接使用这些坐标实现点击交互、元素定位等功能。
注意:需要同时设置 include_svg=true
include_coordinates Boolean false 是否返回坐标数据,用于前端交互。传 true 时返回 coordinates 字段,包含内外盘所有可点击元素的坐标位置
theme String "light" 主题,影响SVG的整体颜色和样式:
  • "light": 浅色主题(默认)
  • "dark": 深色主题
  • "blue": 蓝色主题
  • "green": 绿色主题
  • "mono": 黑白主题
  • "minimal": 极简主题(不嵌入字体,无颜色填充)
minimal_svg Boolean false 极简SVG模式。传 true 时:
  • 不嵌入自定义字体(woff2),文字使用系统 sans-serif 字体
  • 所有填充色设为 none,线条和文字统一为黑色
  • SVG文件体积显著减小
  • 适合前端动态渲染:前端可通过JS/CSS动态设置颜色和加载字体
注意:设为 true 时会自动强制使用 "minimal" 主题,覆盖 theme 参数。
custom_colors Object null 自定义颜色对象,用于覆盖主题颜色。可设置的键:
  • background_color: SVG背景色
  • zodiac_ring_fill: 黄道带环填充色
  • inner_ring_fill: 内圈填充色
  • house_ring_fill: 宫位环填充色
  • inner_circle_fill: 中心区域填充色
  • line_color: 一般分割线颜色
  • axis_line_color: 轴线(ASC/MC)颜色
  • zodiac_line_color: 黄道带分割线颜色
  • house_line_color: 宫位线颜色
  • house_axis_color: 轴线宫位线颜色
颜色值格式:"#RRGGBB",如 "#ff0000"
svg_radius_config Object null 半径配置对象,用于自定义星盘各圆环的大小。包含以下子参数:
  • base_radius: 基准半径,具体像素值(整数),默认 350,范围 100–1000
  • radius_factors: 半径倍数字典,各项为相对于 base_radius 的倍数(浮点数),不传则使用默认倍数
设计原则:只需传需要修改的倍数,未传的项保持默认值。
base_radius(具体像素值)控制整体大小,其他所有圆环均通过倍数相对于 base_radius 计算。
use_chinese_font Boolean false 是否使用中文占星符号字体(12signcn)

svg_radius_config 可用倍数键(standard 风格)

键名默认倍数说明
zodiac_outer1.0黄道带外圈
zodiac_inner0.9黄道带内圈
house_outer0.9宫位外圈
house_inner0.8宫位内圈
planet_inner0.6行星相位连接点(内)
planet_outer0.65行星相位连接点(外)
planet_symbol0.7行星符号圈
asteroid_label0.75小行星标签圈
bi_outer_planet_symbol0.7双盘外圈行星符号
bi_outer_planet_dot0.57双盘外圈行星点
bi_inner_planet_symbol0.62双盘内圈行星符号
bi_inner_planet_dot0.57双盘内圈行星点
bi_aspect0.52双盘相位线圈
bi_inner_label0.65双盘内圈标签
bi_outer_label0.75双盘外圈标签

使用示例

// 只修改 base_radius(整体缩放)
"svg_radius_config": {
    "base_radius": 300
}

// 修改 base_radius 和部分倍数
"svg_radius_config": {
    "base_radius": 400,
    "radius_factors": {
        "zodiac_inner": 0.88,
        "bi_outer_planet_symbol": 0.80
    }
}

坐标数据返回结构

双盘返回的坐标数据包含两个盘的坐标:

{
    "coordinates": {
        "chart1": {
            "svg_config": {...},
            "planets": [...],
            "houses": [...],
            "signs": [...]
        },
        "chart2": {
            "svg_config": {...},
            "planets": [...],
            "houses": [...],
            "signs": [...]
        }
    }
}

坐标字段说明

字段 类型 说明
planets array 所有天体坐标,type 字段区分类型:planetarabic_partfixed_star
houses array 12个宫位数字的坐标位置
signs array 12个星座符号的坐标位置
z_x, z_y number 统一的坐标字段名,表示元素在SVG中的位置

aspect_scheme 参数说明

参数名 类型 说明
aspect_scheme String 相位方案名称(如:"one""two""three""natal"),不传则使用双盘类型的默认方案

orb_scheme 参数说明

参数名 类型 说明
orb_scheme String 容许度方案(如:"default""xingguang")。不传则使用双盘类型的默认方案

display_aspects 参数说明

类型 说明
不传递 - 使用默认相位:["conjunction", "opposition", "trine", "square", "sextile"](5个主要相位)
"none" String 不显示任何相位线
[] Array 空列表,使用默认相位(与不传递参数效果相同)
["conjunction", "opposition"] Array 只显示指定的相位

可用的相位名称

相位名称 含义
conjunction 合相
opposition 对冲
trine 三分相
square 四分相
sextile 六分相
quincunx 梅花相(150°)
semisextile 半六分相(30°)
semisquare 半刑相(45°)
sesquisquare 一又四分之三相(135°)

custom_orbs 参数结构(可选)

orb_scheme 选择为自定义方案时,可以通过 custom_orbs 指定不同相位与不同天体的容许度(单位:度)。

{
  "custom_orbs": {
    "aspects": {
      "conjunction": 8.0,
      "opposition": 8.0,
      "trine": 6.0,
      "square": 6.0,
      "sextile": 4.0
    },
    "planets": {
      "SUN": 2.0,
      "MOON": 2.0
    }
  }
}

恒星相关参数(通用)

include_fixed_star

参数名 类型 说明
include_fixed_star String/Boolean 恒星选择方案(如:"royal""essential""important""default""complete";或 true/false

fixed_stars_list

参数名 类型 说明
fixed_stars_list Array 自定义恒星列表(使用恒星ID),如:["FS0016", "FS0035", "FS0031", "FS0033"]

fixed_stars_in_svg

参数名 类型 说明
fixed_stars_in_svg String/Array 控制恒星在SVG中的显示(不影响恒星计算与相位分析),如:"all""conjunct"["conjunction", "opposition"]null

内外圈显示参数(通用)

参数名 类型 说明
inner_display_planets Array 内圈(Chart1)在SVG中显示的天体列表,如:[0, 1, 2](太阳、月亮、水星)
outer_display_planets Array 外圈(Chart2)在SVG中显示的天体列表,如:[0, 1](太阳、月亮)

Chart1 / Chart2 专用参数

双盘接口支持分别为 Chart1(内圈)和 Chart2(外圈)配置不同的天体参数。

Chart1 (内圈) 常用参数

参数名 类型 说明
chart1_planets_config Object 第一个盘(内圈)的行星配置
chart1_fixed_stars String/Boolean/Array 第一个盘(内圈)的恒星配置
chart1_custom_asteroids Array 第一个盘(内圈)的小行星配置
chart1_custom_arabic_parts Array 第一个盘(内圈)的阿拉伯点配置
chart1_custom_special_points Array 第一个盘(内圈)的特殊点配置
chart1_custom_eclipse_points Array 第一个盘(内圈)的食点配置
chart1_custom_syzygy_points Array 第一个盘(内圈)的朔望点配置

Chart2 (外圈) 常用参数

参数名 类型 说明
chart2_planets_config Object 第二个盘(外圈)的行星配置
chart2_fixed_stars String/Boolean/Array 第二个盘(外圈)的恒星配置
chart2_custom_asteroids Array 第二个盘(外圈)的小行星配置
chart2_custom_arabic_parts Array 第二个盘(外圈)的阿拉伯点配置
chart2_custom_special_points Array 第二个盘(外圈)的特殊点配置
chart2_custom_eclipse_points Array 第二个盘(外圈)的食点配置
chart2_custom_syzygy_points Array 第二个盘(外圈)的朔望点配置

行星显示优先级规则

⚠️ 重要:计算 vs 显示的区别

系统采用双层配置:计算层决定哪些天体被计算,显示层决定哪些天体在SVG中显示。

内圈(Chart1)显示优先级:

  1. inner_display_planets(如果明确传递)— 最高优先级,完全控制显示内容
  2. chart1_custom_*配置(如果有自定义配置)— 显示所有自定义计算的天体
  3. 默认系统设置(如果没有任何自定义配置)— 使用双盘类型的默认配置

外圈(Chart2)显示优先级:

  1. outer_display_planets(如果明确传递)— 最高优先级,完全控制显示内容
  2. chart2_custom_*配置(如果有自定义配置)— 显示所有自定义计算的天体
  3. 默认系统设置(如果没有任何自定义配置)— 使用双盘类型的默认配置

✅ 实际应用示例:

  • 如果传递了 chart1_custom_asteroids: [16, 201]inner_display_planets: [0,1,2],则小行星会被计算但不会在SVG中显示
  • 如果只传递了 chart1_custom_asteroids: [16, 201] 而不传 inner_display_planets,则小行星会被计算并显示
  • 这种设计允许用户精确控制视觉呈现,避免图表过于拥挤

请求示例(通用)

恒星配置请求

{
  "include_fixed_star": "default"
}

自定义恒星列表请求

{
  "fixed_stars_list": ["FS0001", "FS0005", "FS0017"]
}

恒星在SVG中的显示控制

{
  "include_fixed_star": "default",
  "fixed_stars_in_svg": "all"
}

内外圈行星分别控制请求

{
  "inner_display_planets": [0, 1, 2, 3, 4, 5, 6],
  "outer_display_planets": [0, 1]
}

Chart1/Chart2 分离参数示例(分开计算)

{
  "chart1_custom_asteroids": [16, 201],
  "chart2_custom_asteroids": [433]
}

不显示相位的请求(display_aspects = "none")

{
  "display_aspects": "none"
}

自定义容许度请求

{
  "include_analysis": true,
  "custom_orbs": {
    "aspects": {
      "conjunction": 1.0,
      "opposition": 1.0,
      "trine": 1.0,
      "square": 1.0,
      "sextile": 1.0
    }
  }
}

GD风格请求

{
  "chart_style": "gd",
  "include_analysis": true,
  "include_fixed_star": "default"
}

极简SVG请求(不嵌入字体,无颜色,前端动态渲染)

{
  "chart_type": "natal_transit",
  "data1": {"datetime": "1990-01-01 12:00:00", "lat": 39.9042, "lon": 116.4074, "tz": 8},
  "data2": {"datetime": "2024-06-15 10:00:00", "lat": 39.9042, "lon": 116.4074, "tz": 8},
  "include_svg": true,
  "minimal_svg": true
}

返回的SVG不包含嵌入字体和颜色填充,文字使用系统sans-serif字体,适合前端动态渲染。

自定义颜色请求

{
  "chart_type": "natal_transit",
  "data1": {"datetime": "1990-01-01 12:00:00", "lat": 39.9042, "lon": 116.4074, "tz": 8},
  "data2": {"datetime": "2024-06-15 10:00:00", "lat": 39.9042, "lon": 116.4074, "tz": 8},
  "include_svg": true,
  "theme": "light",
  "custom_colors": {
    "line_color": "#ff0000",
    "zodiac_ring_fill": "#00ff00"
  }
}

响应格式(通用)

所有双盘接口(/bichart)的返回结构一致,具体字段内容会随 chart_type、动态配置、是否包含分析/恒星/阿拉伯点而变化。

最外层结构

{
  "success": true,
  "data": { }
}
字段 类型 说明
success Boolean 请求是否成功
data Object 双盘计算结果(不包含 SVG 时也会有该字段)
svg String SVG 格式星盘(当 include_svg 为 true 时返回;部分实现也可能放在 data.svg,以实际返回为准)

data 常见字段(示意)

字段 类型 说明
chart_type String 双盘类型(如 synastrynatal_transit 等)
house_cusps Array 宫头位置数组(通常为 12 个元素;以 Chart1(内圈)为基准)
chart1_planets Object Chart1(内圈)天体位置数据
chart2_planets Object Chart2(外圈)天体位置数据
analysis Object 相位分析(当 include_analysis 为 true 时返回)
calculation_details Object 计算详情(如恒星、阿拉伯点、小行星等;是否存在取决于请求参数与配置)
chart_style String 绘图风格(当请求使用或返回包含该信息时)

完整返回示例(示意)

{
  "success": true,
  "data": {
    "chart_type": "synastry",
    "house_cusps": [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330],
    "chart1_planets": {
      "SUN": {"longitude": 83.91, "speed": 0.96}
    },
    "chart2_planets": {
      "SUN": {"longitude": 120.12, "speed": 0.98}
    },
    "analysis": {
      "synastry_aspects": []
    }
  },
  "svg": "<svg>...</svg>"
}