如果你在开发占星应用,迟早会遇到这个问题:
Why does one chart say Aries, while another chart says Pisces for the same person?多数情况下,计算没有出错,只是两张星盘使用了不同的黄道体系。
回归黄道占星和恒星黄道占星都使用相同的十二星座名称:白羊座、金牛座、双子座、巨蟹座等。区别在于黄道从哪里开始。
回归黄道从三月春分点开始,恒星黄道则使用基于恒星的参考点。这个差异会改变太阳、月亮、上升点、行星和宫位所显示的星座。
对开发者来说,最重要的是不要隐藏这项设置。如果应用能返回回归黄道或恒星黄道星盘,用户必须知道自己看到的是哪一种。
简短版本
回归黄道是多数现代西方占星应用的默认值。
恒星黄道是多数吠陀、Jyotish 和 Kundli 应用的默认值。
可以这样开始:
| 如果你在开发 | 通常使用 |
|---|---|
| 西方出生星盘计算器 | 回归黄道 |
| 西方每日运势应用 | 回归黄道 |
| 西方合盘或匹配应用 | 回归黄道 |
| 吠陀星盘或 Kundli 应用 | 恒星黄道 |
| Nakshatra、dasha、Panchang 或 gochar 功能 | 恒星黄道 |
| 同时支持西方占星和吠陀占星的应用 | 让用户选择 |
这不是谁对谁错。两个系统服务不同传统。
什么是回归黄道占星
回归黄道占星与季节绑定。
在回归黄道占星中,白羊座从三月春分开始。春分是太阳穿过天赤道、昼夜大致相等的时刻。
从这里开始,黄道被分成十二个 30 度星座:
Aries 0 to 30
Taurus 30 to 60
Gemini 60 to 90
Cancer 90 to 120
...
Pisces 330 to 360所以回归黄道的白羊座并不是指真实天空中的白羊座星座,而是季节黄道的第一个星座。
多数现代西方占星都采用这一体系。如果美国或欧洲用户搜索“我的出生星盘”“我的上升星座”“我的月亮星座”,通常期待回归黄道西方星盘,除非他们明确提到恒星黄道、吠陀、Jyotish 或 Lahiri。
因此,如果你开发西方占星 API,通常应把回归黄道设为默认值。
回归黄道占星的使用场景
回归黄道常见于:
- 西方本命盘
- 太阳星座运势
- 心理占星
- 现代关系匹配
- 西方行运解读
- 太阳返照和其他西方占星择时技法
语言通常像这样:
Your Sun is in Leo.
Your Moon is in Scorpio.
Your Ascendant is Virgo.
Venus is transiting your seventh house.星盘仍可能包含宫位、相位、尊贵力量、行运等技术细节,但底层黄道通常是回归黄道。
什么是恒星黄道占星
恒星黄道占星使用基于恒星的黄道体系。
关键在于回归黄道与恒星黄道已不再对齐。地球自转轴方向会长期缓慢移动,这称为岁差。
由于这种偏移,同一颗行星的回归黄道位置和恒星黄道位置经常落在不同星座。
现代粗略例子:
Tropical Sun: 5 Aries
Sidereal Sun: about 11 Pisces太阳没有移动。出生数据没有变。只是参考 zodiac 不同。
恒星黄道占星的使用场景
恒星黄道最常见于吠陀占星,也称 Jyotish。
如果应用包含以下功能,多半属于恒星黄道体系:
- Kundli 星盘
- Rashi 星盘
- Nakshatra(月宿)
- Dasha 周期
- Panchang 历书
- Gochar 行运
- 吠陀匹配
- Muhurat 或择时
- Lahiri ayanamsha(岁差模式)
也有采用恒星黄道的西方占星师,但受众更具体。多数产品的实际分界是:
Western astrology page -> tropical by default
Vedic astrology page -> sidereal by default如果产品混合两种传统,请明确显示所选体系。
Ayanamsha 是什么?
对初学开发者来说,可以把 ayanamsha 理解为回归黄道与某个恒星黄道之间的偏移量。
简化理解:
sidereal position = tropical position - ayanamsha在生产环境中,不要自行硬算,应交给占星计算引擎。精确偏移量取决于日期和所选 ayanamsha 体系。
常见选项:
| Ayanamsha | 常见用途 |
|---|---|
lahiri | 吠陀和 Jyotish 星盘的常用默认值。 |
raman | 部分吠陀占星师使用。 |
kp | 用于 KP 占星。 |
fagan_bradley | 常用于西方恒星黄道占星。 |
yukteshwar | 部分恒星黄道实践者使用。 |
只写“恒星黄道”未必足够。严谨的占星 API 应说明使用了哪一种 ayanamsha。
一个简单例子
假设用户出生时,太阳位于回归黄道白羊座前几度。
西方出生星盘页面可能显示:
Sun in Aries
Zodiac: Tropical吠陀星盘页面使用 Lahiri 恒星黄道时可能显示:
Sun in Pisces
Zodiac: Sidereal
Ayanamsha: Lahiri两者可以来自同一组出生日期、时间和地点。
问题在于应用只显示:
Sun in Pisces用户没有上下文。如果他期待的是西方星盘,就会以为计算出错。
API 应支持什么
黄道体系必须是显式设置。
回归黄道星盘请求可以这样写:
{
"zodiac_type": "tropical"
}恒星黄道星盘请求可以这样写:
{
"zodiac_type": "sidereal",
"sidereal_ayanamsa": "lahiri"
}响应也应回显这些设置,不要让开发者猜测。
实用的响应元数据:
{
"meta": {
"zodiac_type": "sidereal",
"sidereal_ayanamsa": "lahiri",
"house_system": "whole_sign",
"time_known": true
}
}这几个字段能减少大量后续混乱。
FreeAstroAPI 示例
西方回归黄道本命盘:
curl -X POST "https://api.freeastroapi.com/api/v1/natal/calculate" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"name": "Alex",
"year": 1994,
"month": 8,
"day": 11,
"time_known": true,
"hour": 6,
"minute": 42,
"city": "Los Angeles",
"lat": 34.0522,
"lng": -118.2437,
"tz_str": "AUTO",
"house_system": "placidus",
"zodiac_type": "tropical"
}'采用 Lahiri ayanamsha 的恒星黄道星盘:
curl -X POST "https://api.freeastroapi.com/api/v1/natal/calculate" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"name": "Alex",
"year": 1994,
"month": 8,
"day": 11,
"time_known": true,
"hour": 6,
"minute": 42,
"city": "Los Angeles",
"lat": 34.0522,
"lng": -118.2437,
"tz_str": "AUTO",
"house_system": "whole_sign",
"zodiac_type": "sidereal",
"sidereal_ayanamsa": "lahiri"
}'如果渲染 SVG 或 PNG 星盘轮,图像必须与数据使用同一黄道设置。恒星黄道 JSON 配上回归黄道星盘图,会立刻让用户困惑。
如何选择默认值
页面写的是“西方占星”,默认使用回归黄道。
页面写的是“吠陀占星”“Jyotish”“Kundli”“Nakshatra”或“dasha”,默认使用恒星黄道。多数吠陀应用以 lahiri 作为稳妥起点。
通用平台应提供清晰选项:
Zodiac system: Tropical | Sidereal如果选择恒星黄道,再显示:
Ayanamsha: LahiriUI 中无须放置过长的天文解释。用户只需知道星盘属于哪一种传统。
实用的 UI 文案
不好的标签:
Mode: Standard更好的写法:
Zodiac system: Tropical附带简短提示:
Zodiac system: Tropical
Used by most modern Western astrology charts.恒星黄道:
Zodiac system: Sidereal
Used by Vedic/Jyotish charts and some Western sidereal charts.缓存键不要漏掉黄道类型
不要只用以下字段构造缓存键:
birth date + birth time + city回归黄道与恒星黄道星盘可以使用同一组出生数据,却返回不同星座。
缓存键应包含:
birth_datetime_utc
+ latitude
+ longitude
+ timezone
+ house_system
+ zodiac_type
+ sidereal_ayanamsa
+ engine_version这样就不会在恒星黄道页面展示回归黄道数据,反之亦然。
AI 占星应用也需要同样的上下文
如果用 LLM 编写解读,不要让模型猜测黄道体系。
把计算设置与星盘一起发送:
{
"instruction": "Interpret only the supplied chart data. Do not recalculate signs.",
"calculation_settings": {
"zodiac_type": "sidereal",
"sidereal_ayanamsa": "lahiri",
"house_system": "whole_sign"
},
"placements": {
"sun": "Pisces 11",
"moon": "Cancer 28",
"ascendant": "Leo 3"
}
}这一点很重要,因为网上大多数占星文本采用西方回归黄道体系。如果星盘采用吠陀恒星黄道,提示词必须明确说明。
常见错误
错误 1:把恒星黄道当成纯显示选项
恒星黄道不只是 UI 标签,它会改变星座位置和解读所用的黄经。
错误 2:声明恒星黄道却隐藏 ayanamsha
专业用户会关心 ayanamsha。支持恒星黄道星盘时,请在响应中显示,必要时也在 UI 中显示。
错误 3:用回归黄道文本解释恒星黄道数据
西方回归黄道的报告文本不一定适合吠陀恒星黄道落点。名称看起来相同,但传统和解读方式可能不同。
错误 4:比较星座时不检查黄道体系
数据库里的“月亮在巨蟹座”也必须注明是回归黄道巨蟹座,还是恒星黄道巨蟹座。
错误 5:不解释星座为什么变化
如果提供切换开关,用户切换后会看到星座变化。在旁边放一句简短说明,可以减少支持咨询。
常见问题
恒星黄道比回归黄道更准确吗?
不能这样简单比较。它们是不同传统使用的两种黄道体系。产品应按用户选择的体系计算,并清楚标注。
为什么我的太阳星座变了?
可能是星盘从回归黄道切换到恒星黄道,或反过来。出生数据没有变化,变化的是黄道体系。
吠陀占星总是使用恒星黄道吗?
多数吠陀和 Jyotish 应用使用恒星黄道,常见默认值是 Lahiri ayanamsha。开发 Nakshatra、dasha、Panchang 或 Kundli 星盘功能时,应默认使用恒星黄道。
西方占星总是使用回归黄道吗?
多数现代西方占星使用回归黄道,但也有西方恒星黄道占星。普通西方出生星盘计算器通常默认使用回归黄道。
应该让用户选择吗?
如果产品同时服务西方占星和吠陀用户,应该让用户选择。纯西方星盘计算器可以默认使用回归黄道并加以说明;纯吠陀产品则默认使用恒星黄道并显示 ayanamsha。
最后记住
回归黄道与恒星黄道的区别不是小技术细节,它会改变用户看到的星座。
清晰的占星应用应该:
- 西方占星功能多数使用回归黄道
- 吠陀和 Jyotish 功能使用恒星黄道
- 在 UI 中显示黄道体系
- 在请求和响应中包含
zodiac_type - 使用恒星黄道星盘时包含
sidereal_ayanamsa - 确保星盘图、报告、缓存和 AI 提示词使用同一设置
这样用户看到的星盘会符合预期传统,开发者也有足够的元数据构建可靠产品。