# Gambar SVG Kartu

`/v1/render/*` mengembalikan bagan sebagai SVG siap pakai: roda natal, bi- dan tri-roda, komposit, bagan Veda (utara, selatan, timur), kisi aspek, kosmogam, fase Bulan, garis waktu, bioritme, jalur gerhana, dan peta bintang. Kamu mengirimkan data kelahiran, kami menghitung bagan dan menggambarnya. Daftar lengkap rute dan parameter ada di [referensi API](/docs/api/).

Kode rendering yang sama telah dipublikasikan sebagai paket npm [`@astroway/render`](https://www.npmjs.com/package/@astroway/render): jika kamu sudah memiliki data bagan, roda dapat digambar di browser atau di server kamu, dan hasilnya akan sama persis dengan yang dikembalikan oleh API, byte demi byte. Versi rendering API dikembalikan dalam header `X-Render-Version`.

## Permintaan

```bash
curl -X POST https://api.astroway.info/v1/render/wheel-western \
  -H "X-Api-Key: $ASTROWAY_KEY" -H "Content-Type: application/json" \
  -d '{"date":"1990-05-15","time":"14:30:00","timezoneOffset":3,"latitude":50.45,"longitude":30.52,
       "options":{"theme":"css","format":"svg"}}' > wheel.svg
```

`format: "svg"` mengembalikan file itu sendiri, `json` standar membungkus string SVG dalam respons API biasa. Tema: `light`, `dark`, `console`, dan `css`.

## Tema css: warna situs web kamu

Dengan `theme: "css"`, setiap warna dalam SVG ditulis sebagai variabel CSS dengan warna tema terang sebagai cadangan, misalnya `var(--aw-ring, #222)`. Sisipkan SVG ke dalam HTML halaman (bukan di `<img>`: variabel tidak akan berfungsi di sana) dan atur variabel:

```css
.chart {
  --aw-chart-bg: transparent;
  --aw-ring: #444;
  --aw-fg: currentColor;
  --aw-aspect-tense: crimson;
}
```

Tanpa variabel apa pun, bagan akan terlihat persis seperti `light`. Aturan CSS halaman kamu lebih kuat daripada variabel, jadi elemen individual dapat diwarnai ulang dengan kelas.

| Variabel | Apa yang diwarnai |
|---|---|
| `--aw-chart-bg` | latar belakang bagan |
| `--aw-fg`, `--aw-muted` | glif dan label, teks sekunder dan tanda centang |
| `--aw-ring` | lingkaran dan garis kisi |
| `--aw-houses-fill` | bidang bagan Veda, disk peta bintang, peta gerhana |
| `--aw-benefic` | planet lingkaran luar, lagna dalam bagan Veda, peristiwa garis waktu tanpa warna sendiri |
| `--aw-malefic` | tanda retrograd ℞, jalur gerhana |
| `--aw-aspect-harmonious`, `--aw-aspect-tense`, `--aw-aspect-neutral`, `--aw-aspect-minor`, `--aw-aspect-quintile` | garis dan simbol aspek |
| `--aw-moon-shadow`, `--aw-moon-light` | fase Bulan |
| `--aw-cycle-physical`, `--aw-cycle-emotional`, `--aw-cycle-intellectual` | bioritme |

## Kelas dan atribut data

Dalam tema `css`, roda Barat (`wheel-western`, `bi-wheel`, `tri-wheel`, `composite`) dan kisi aspek memiliki kelas yang stabil. Nama-nama hanya ditambahkan, tidak pernah diganti namanya, sehingga kamu dapat menulis gaya dan skrip berdasarkan nama-nama tersebut.

- Roda: `aw-bg`, `aw-ring`, `aw-sign aw-sign-leo`, `aw-sign-line`, `aw-tick`, `aw-house-cusp`, `aw-house-number`, sumbu `aw-axis aw-asc` (`aw-dsc`, `aw-mc`, `aw-ic`), labelnya `aw-label aw-axis-label`, judul `aw-title`.
- Planet: grup `<g class="aw-planet aw-planet-sun">`, yang retrograd juga memiliki `aw-retrograde`, planet lingkaran luar `aw-layer-1`. Di dalamnya `aw-glyph`, `aw-retro` (tanda ℞) dan `aw-planet-tick`.
- Aspek: garis `aw-aspect aw-aspect-trine`, garis antara dua bagan juga `aw-cross-aspect`.
- Kisi aspek: `aw-grid-header`, `aw-grid-cell`, `aw-aspect aw-aspect-square`, `aw-orb`.

Grup planet memiliki `data-planet` (`sun`, `north-node`, `lilith`; pada lingkaran luar `b-sun`, pada lingkaran ketiga `c-sun`) dan `data-label` dengan nama dan posisi: `Mercury 8°00' Taurus, retrograde`. Garis aspek dan sel kisi memiliki `data-a` dan `data-b`. Dengan demikian, semua aspek planet disorot saat kursor diarahkan:

```js
svg.querySelectorAll('.aw-planet').forEach((g) => g.addEventListener('mouseenter', () => {
  const id = g.dataset.planet;
  svg.querySelectorAll('.aw-aspect').forEach((line) =>
    line.classList.toggle('is-on', line.dataset.a === id || line.dataset.b === id));
}));
```

## Label kustom: `labels`

Roda Barat menerima `options.labels`: kata-kata kamu untuk label sumbu, untuk `<title>` dan `<desc>` yang dibaca oleh pembaca layar, dan untuk nama-nama di `data-label`. Kunci yang tidak ada akan tetap dalam bahasa Inggris; kami sendiri tidak menerjemahkan apa pun.

```json
"options": {
  "theme": "css",
  "labels": {
    "asc": "Асц", "mc": "МС", "title": "Натальна карта",
    "bodies": { "Sun": "Сонце", "Moon": "Місяць" },
    "signs": ["Овен","Телець","Близнюки","Рак","Лев","Діва","Терези","Скорпіон","Стрілець","Козеріг","Водолій","Риби"],
    "retrograde": "ретроградний"
  }
}
```

`bodies` memiliki kunci dalam bahasa Inggris (`Sun`, `North Node`), `signs` adalah tepat dua belas nama, dimulai dari Aries, setiap label hingga 40 karakter.

## Aspek antara dua bagan

`/v1/render/bi-wheel` dengan `options.crossAspects: true` menggambar aspek putus-putus antara bagan dalam dan luar, set yang sama dengan yang dikembalikan oleh `POST /v1/synastry` sebagai `crossAspects`. Pasangan di mana salah satu benda tidak digambar akan dilewati. Secara default dinonaktifkan.

## Bagan siap pakai alih-alih data kelahiran

Jika kamu sudah memiliki bagan, karena kamu baru saja memanggil `POST /v1/chart`, kirimkan `data` tersebut ke bidang `chart` alih-alih data kelahiran, dan kami hanya akan menggambarnya. Ini berlaku untuk `wheel-western`, `aspect-grid`, dan `bi-wheel` (di sana `natal.chart` dan `outer.chart`, keduanya harus berupa bagan siap pakai). Gambar yang dihasilkan akan sama persis, byte demi byte, dengan yang dihasilkan dari data kelahiran.

```json
{ "chart": { "planets": [ ... ], "houses": { "cusps": [ ... ], "ascendant": 7.77, "mc": 277.12 }, "aspects": [ ... ] },
  "options": { "theme": "css" } }
```

Bidang respons yang tidak perlu tidak perlu dipotong. Yang diperiksa adalah apa yang digambar: 1 hingga 30 benda, bujur dari 0 hingga 360, tepat 12 cusp. Benda yang memiliki `chart` dan data kelahiran akan ditolak dengan 400.

## Biaya

Panggilan `/v1/render/*` dengan data kelahiran berharga 10 kredit, karena bagan dihitung. Dengan bagan siap pakai `chart`, panggilan `/v1/render/wheel-western`, `/v1/render/aspect-grid`, dan `/v1/render/bi-wheel` berharga 1 kredit. Tema, kelas, dan label tidak memengaruhi harga.
