星盘渲染
生成精美的 SVG 和 PNG 星盘图像。
SVG 星盘
使用查询参数生成 SVG 本命盘:
bash
curl -X GET "https://api.astroapi.cloud/api/chart/image.svg?width=800&height=800&dateTime=1990-06-15T14:30&location.longitude=-0.1278&location.latitude=51.5074&location.timezone=Europe/London" \
-H "X-Api-Key: your-api-key"PNG 星盘
转换为 PNG 格式:
bash
curl -X GET "https://api.astroapi.cloud/api/chart/image.png?width=800&height=800&dateTime=1990-06-15T14:30&location.longitude=-0.1278&location.latitude=51.5074&location.timezone=Europe/London" \
-H "X-Api-Key: your-api-key" \
--output chart.png星盘类型
| 端点 | 描述 |
|---|---|
/api/chart/image.svg | SVG 格式本命盘 |
/api/chart/image.png | PNG 格式本命盘 |
带 transit.* 参数的 /api/chart/image.svg | 行运双轮盘 |
/api/chart/composite.svg | 复合盘(中点) |
/api/chart/composite.png | PNG 格式复合盘 |
行运双轮盘
添加行运参数以渲染包含本命(内轮)和行运(外轮)的双轮盘:
bash
curl -X GET "https://api.astroapi.cloud/api/chart/image.svg?width=800&height=800&dateTime=1990-06-15T14:30&location.longitude=-0.1278&location.latitude=51.5074&location.timezone=Europe/London&transit.dateTime=2024-01-15T12:00&transit.timezone=Europe/London" \
-H "X-Api-Key: your-api-key"行运参数
| 参数 | 必填 | 描述 |
|---|---|---|
transit.dateTime | 是 | 行运日期/时间(YYYY-MM-DDTHH:mm) |
transit.timezone | 是 | 行运时区 |
transit.longitude | 否 | 行运地点经度(默认使用本命地点) |
transit.latitude | 否 | 行运地点纬度(默认使用本命地点) |
复合盘
生成显示两张本命盘中点的复合盘:
bash
curl -X GET "https://api.astroapi.cloud/api/chart/composite.svg?width=800&height=800&person1.dateTime=1990-06-15T14:30&person1.timezone=Europe/London&person1.longitude=-0.1278&person1.latitude=51.5074&person2.dateTime=1988-03-22T09:15&person2.timezone=Europe/Paris&person2.longitude=2.3522&person2.latitude=48.8566" \
-H "X-Api-Key: your-api-key"查询参数
本命盘参数
| 参数 | 必填 | 描述 |
|---|---|---|
width | 是 | 星盘宽度(像素) |
height | 是 | 星盘高度(像素) |
dateTime | 是 | 出生日期/时间(YYYY-MM-DDTHH:mm) |
location.longitude | 是 | 出生地点经度 |
location.latitude | 是 | 出生地点纬度 |
location.timezone | 是 | 出生地点时区(IANA 格式) |
复合盘参数
| 参数 | 必填 | 描述 |
|---|---|---|
width | 是 | 星盘宽度(像素) |
height | 是 | 星盘高度(像素) |
person1.dateTime | 是 | 第一人出生日期/时间 |
person1.timezone | 是 | 第一人时区 |
person1.longitude | 是 | 第一人经度 |
person1.latitude | 是 | 第一人纬度 |
person2.dateTime | 是 | 第二人出生日期/时间 |
person2.timezone | 是 | 第二人时区 |
person2.longitude | 是 | 第二人经度 |
person2.latitude | 是 | 第二人纬度 |
响应头
星盘端点返回适当的内容类型:
- SVG:
image/svg+xml - PNG:
image/png
嵌入星盘
在 HTML 中直接使用返回的 SVG:
html
<div class="chart-container">
<!-- SVG content from API -->
</div>或将其作为带数据 URL 的图像来源:
html
<img src="data:image/svg+xml;base64,..." alt="Natal Chart" />Chart2 — 下一代星盘
AstroAPI 提供支持主题和动画的下一代星盘渲染引擎。
端点
| 端点 | 描述 | 所需模块 |
|---|---|---|
/api/chart2/natal.svg | 本命盘(SVG) | module:natal-calc |
/api/chart2/natal.png | 本命盘(PNG) | module:natal-calc |
/api/chart2/transit.svg | 行运双轮盘(SVG) | module:transit-calc |
/api/chart2/transit.png | 行运双轮盘(PNG) | module:transit-calc |
/api/chart2/synastry.svg | 合盘(SVG) | module:synastry-calc |
/api/chart2/synastry.png | 合盘(PNG) | module:synastry-calc |
/api/chart2/composite.svg | 复合盘(SVG) | module:synastry-calc |
/api/chart2/composite.png | 复合盘(PNG) | module:synastry-calc |
/api/chart2/animated-transit.svg | 动态行运(SVG) | module:transit-calc |
基本用法
bash
curl -X GET "https://api.astroapi.cloud/api/chart2/natal.svg?width=800&height=800&dateTime=1990-06-15T14:30&location.longitude=4.89&location.latitude=52.37&location.timezone=Europe/Amsterdam&theme=dark" \
-H "X-Api-Key: your-api-key"主题预设
| 主题 | 描述 |
|---|---|
default | 经典白色背景搭配彩色元素 |
classic | 传统占星外观 |
dark | 现代深色主题搭配鲜艳色彩 |
minimal | 简洁,视觉噪音较少 |
colorful | 鲜艳的行星配色 |
nextgen | 现代风格,带弯曲相位线、光晕效果和渐变 |
vintage | 古朴羊皮纸/手稿风格,采用棕褐色调 |
neon | 赛博朋克风,黑色背景上的霓虹亮色 |
pastel | 柔和、平静的粉彩色调 |
print | 高对比度黑白,针对打印优化 |
主题覆盖
通过查询参数自定义单个主题属性:
| 参数 | 描述 |
|---|---|
theme.background | 背景颜色(十六进制) |
theme.foreground | 前景颜色(十六进制) |
theme.strokeOnly | 仅描边模式(true/false) |
theme.symbolScale | 符号缩放因子 |
theme.showDegrees | 显示度数标签(true/false) |
theme.showHouseNumbers | 显示宫位编号(true/false) |
theme.showRuler | 显示标尺(true/false) |
theme.signBackgroundOpacity | 星座背景透明度(0-1) |
合盘与复合盘
bash
curl -X GET "https://api.astroapi.cloud/api/chart2/synastry.svg?width=800&height=800&person1.dateTime=1990-06-15T14:30&person1.timezone=Europe/Amsterdam&person1.longitude=4.89&person1.latitude=52.37&person2.dateTime=1992-03-20T09:15&person2.timezone=Europe/London&person2.longitude=-0.12&person2.latitude=51.50" \
-H "X-Api-Key: your-api-key"动态行运
生成随时间变化的动态行运 SVG:
bash
curl -X GET "https://api.astroapi.cloud/api/chart2/animated-transit.svg?width=800&height=800&dateTime=1990-06-15T14:30&location.longitude=4.89&location.latitude=52.37&location.timezone=Europe/Amsterdam&transit.dateTime=2025-01-01T12:00&transit.timezone=Europe/Amsterdam&target.dateTime=2025-12-31T23:59&animation.duration=3000" \
-H "X-Api-Key: your-api-key"| 参数 | 描述 |
|---|---|
target.dateTime | 动画结束日期 |
animation.duration | 动画持续时间(毫秒) |
animation.easing | 缓动函数(默认:easeInOut) |
animation.loop | 循环动画(默认:false) |