# SVG-képek a térképek

`/v1/render/*` visszaadja a térképet kész SVG‑ként: születési kerék, bi‑ és tri‑kerék, kompozit, védikus térképek (északi, déli, keleti), aspektusrács, kozmogram, Holdfázis, idővonal, bioritmok, elsötétülési sáv és csillagtérkép. Te küldöd a születési adatokat, mi kiszámoljuk a térképet és lerajzoljuk. A teljes útvonal- és paraméterlistát megtalálod a [API dokumentációban](/docs/api/).

Ugyanaz a rajzoló kód npm csomagként is elérhető: [`@astroway/render`](https://www.npmjs.com/package/@astroway/render). Ha már megvan a térkép adataid, a kereket megrajzolhatod a böngészőben vagy a saját szervereden, és pontosan megegyezik majd az API által visszaadottal, byte‑ról‑byte‑ra. Az API rajzolási verzióját a `X-Render-Version` fejlécben adja vissza.

## Kérés

```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"` a tényleges fájlt adja vissza, a szokásos `json` egy SVG‑stringet csomagol az API normál válaszába. Témák: `light`, `dark`, `console` és `css`.

## CSS téma: a weboldalad színei

`theme: "css"` esetén minden szín az SVG‑ben CSS változóként van felírva, a világos téma színével tartalékként, például `var(--aw-ring, #222)`. Illeszd be az SVG‑t HTML oldalakba (nem `<img>`‑be: oda a változók nem jutnak) és állítsd be a változókat:

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

Változó nélkül a térkép pontosan úgy néz ki, mint a `light`. A te oldalad CSS szabálya erősebb a változónál, így egyedi elemet át lehet színezni egy osztállyal.

| Változó | Mit fest |
|---|---|
| `--aw-chart-bg` | a térkép háttér |
| `--aw-fg`, `--aw-muted` | glifek és feliratok, másodlagos szöveg és jelölések |
| `--aw-ring` | körök és rácsvonalak |
| `--aw-houses-fill` | védikus térkép mező, csillagtérkép lemez, elsötétülési térkép |
| `--aw-benefic` | külső kör bolygók, lagna a védikus térképen, idővonal események saját szín nélkül |
| `--aw-malefic` | retrográd jel ℞, elsötétülési sáv |
| `--aw-aspect-harmonious`, `--aw-aspect-tense`, `--aw-aspect-neutral`, `--aw-aspect-minor`, `--aw-aspect-quintile` | aspektus vonalak és szimbólumok |
| `--aw-moon-shadow`, `--aw-moon-light` | Holdfázis |
| `--aw-cycle-physical`, `--aw-cycle-emotional`, `--aw-cycle-intellectual` | bioritmok |

## Osztályok és data attribútumok

A `css` témában a nyugati kerékek (`wheel-western`, `bi-wheel`, `tri-wheel`, `composite`) és az aspektusrács állandó osztályokkal rendelkeznek. A nevek csak hozzáadódnak, soha nem változnak, így rájuk lehet stílusokat és szkripteket írni.

- Kerék: `aw-bg`, `aw-ring`, `aw-sign aw-sign-leo`, `aw-sign-line`, `aw-tick`, `aw-house-cusp`, `aw-house-number`, tengelyek `aw-axis aw-asc` (`aw-dsc`, `aw-mc`, `aw-ic`), azok feliratai `aw-label aw-axis-label`, cím `aw-title`.
- Bolygó: csoport `<g class="aw-planet aw-planet-sun">`, a retrográdnak még `aw-retrograde` van, a külső kör bolygói `aw-layer-1`. Belül `aw-glyph`, `aw-retro` (℞ jel) és `aw-planet-tick`.
- Aspektus: vonal `aw-aspect aw-aspect-trine`, a két térkép közötti vonal még `aw-cross-aspect`.
- Aspektusrács: `aw-grid-header`, `aw-grid-cell`, `aw-aspect aw-aspect-square`, `aw-orb`.

A bolygócsoport rendelkezik `data-planet` attribútummal (`sun`, `north-node`, `lilith`; a külső körön `b-sun`, a harmadikon `c-sun`) és `data-label`‑lel, amely a nevet és a pozíciót tartalmazza: `Mercury 8°00' Taurus, retrograde`. Az aspektusvonal és a rácscella `data-a` és `data-b` attribútumokkal rendelkeznek. Így minden bolygó aspektusa kiemelhető hover‑nél:

```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));
}));
```

## Saját címkék: labels

A nyugati kerékek elfogadják az `options.labels`‑t: a te szavaid a tengelyfeliratokhoz, a `<title>` és `<desc>` elemekhez, amelyeket a képernyőolvasók olvasnak, és a `data-label` neveihez. A hiányzó kulcsok angolul maradnak; mi magukban nem fordítunk.

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

`bodies` angol kulcsokkal rendelkezik (`Sun`, `North Node`), a `signs` pontosan tizenkét név, a Kos (Aries) kezdetével, minden felirat legfeljebb 40 karakter.

## Aspektusok két térkép között

`/v1/render/bi-wheel` `options.crossAspects: true` esetén szaggatott vonallal rajzolja az aspektusokat a belső és külső térkép között, ugyanazt a halmazt, amit a `POST /v1/synastry` `crossAspects`‑ként ad vissza. Az a pár, ahol az egyik test nincs lerajzolva, kihagyásra kerül. Alapértelmezésben le van tiltva.

## Kész térkép a születési adatok helyett

Ha már megvan a térkép, mert épp most hívtad a `POST /v1/chart`‑et, küldd el a `data`‑ját a `chart` mezőbe a születési adatok helyett, és mi csak lerajzoljuk. Így működnek a `wheel-western`, `aspect-grid` és `bi-wheel` (itt `natal.chart` és `outer.chart`, mindkettőnek kész térképnek kell lennie). A kép byte‑ról‑byte‑ra ugyanaz lesz, mint a születési adatokból.

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

A válasz felesleges mezőit nem kell kivágni. Ellenőrzésre kerül, hogy mi van lerajzolva: 1‑től 30‑ig test, hosszúság 0‑tól 360‑ig, pontosan 12 háromszög (cusp). Az a test, amelyiknek van `chart` és születési adata is, 400‑as hibával elutasításra kerül.

## Ár

A `/v1/render/*` hívás születési adatokkal 10 kreditet kerül, mivel a térkép számít. Kész `chart` esetén a `/v1/render/wheel-western`, `/v1/render/aspect-grid` és `/v1/render/bi-wheel` hívások 1 kreditet érnek. A téma, osztályok és címkék nem befolyásolják az árat.
