# SVG harita görselleri

`/v1/render/*` bir haritayı hazır bir SVG olarak döndürür: natal çark, bi- ve tri-çark, kompozit, Vedik haritalar (kuzey, güney, doğu), açı ızgarası, kozmogram, Ay fazı, zaman çizelgesi, biyoritimler, tutulma bandı ve yıldız haritası. Sen doğum verilerini gönderirsin, biz haritayı hesaplar ve çizeriz. Rotaların ve parametrelerin tam listesi için [API referansına](/docs/api/) bak.

Aynı çizim kodu, [`@astroway/render`](https://www.npmjs.com/package/@astroway/render) adlı bir npm paketi olarak yayınlanmıştır: eğer harita verilerine zaten sahipsen, çarkı tarayıcıda veya kendi sunucunda çizebilirsin ve API'nin döndürdüğüyle bayt baytına eşleşecektir. API, çizim sürümünü `X-Render-Version` başlığında döndürür.

## İstek

```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"` dosyanın kendisini döndürür, varsayılan `json` ise SVG dizesini standart bir API yanıtına sarar. Temalar: `light`, `dark`, `console` ve `css`.

## CSS Teması: Sitenizin Renkleri

`theme: "css"` ile SVG'deki her renk, açık tema rengi yedek olarak, örneğin `var(--aw-ring, #222)` gibi bir CSS değişkeni olarak kaydedilir. SVG'yi HTML sayfasına ekle (`<img>` etiketine değil: değişkenler oradan geçmez) ve değişkenleri tanımla:

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

Hiçbir değişken olmadan harita tam olarak `light` gibi görünür. Sayfanızın CSS kuralı değişkenden daha güçlüdür, bu nedenle ayrı bir öğe bir sınıf ile yeniden renklendirilebilir.

| Değişken | Ne renklendirir |
|---|---|
| `--aw-chart-bg` | harita arka planı |
| `--aw-fg`, `--aw-muted` | glifler ve etiketler, ikincil metin ve işaretler |
| `--aw-ring` | daireler ve ızgara çizgileri |
| `--aw-houses-fill` | Vedik harita alanı, yıldız haritası diski, tutulma haritası |
| `--aw-benefic` | dış çemberdeki gezegenler, Vedik haritada lagna, kendi rengi olmayan zaman çizelgesi olayları |
| `--aw-malefic` | retrograd işareti ℞, tutulma bandı |
| `--aw-aspect-harmonious`, `--aw-aspect-tense`, `--aw-aspect-neutral`, `--aw-aspect-minor`, `--aw-aspect-quintile` | açı çizgileri ve sembolleri |
| `--aw-moon-shadow`, `--aw-moon-light` | Ay fazı |
| `--aw-cycle-physical`, `--aw-cycle-emotional`, `--aw-cycle-intellectual` | biyoritimler |

## Sınıflar ve data-nitelikleri

`css` temasında, Batı çarkları (`wheel-western`, `bi-wheel`, `tri-wheel`, `composite`) ve açı ızgarası sabit sınıflara sahiptir. İsimler sadece eklenir, asla yeniden adlandırılmaz, bu nedenle üzerlerine stil ve betikler yazılabilir.

- Çark: `aw-bg`, `aw-ring`, `aw-sign aw-sign-leo`, `aw-sign-line`, `aw-tick`, `aw-house-cusp`, `aw-house-number`, eksenler `aw-axis aw-asc` (`aw-dsc`, `aw-mc`, `aw-ic`), etiketleri `aw-label aw-axis-label`, başlık `aw-title`.
- Gezegen: `<g class="aw-planet aw-planet-sun">` grubu, retrograd olanın ayrıca `aw-retrograde` sınıfı vardır, dış çemberdeki gezegenler `aw-layer-1`. İçinde `aw-glyph`, `aw-retro` (℞ işareti) ve `aw-planet-tick`.
- Açı: `aw-aspect aw-aspect-trine` çizgisi, iki harita arasındaki çizgi ayrıca `aw-cross-aspect` sınıfına sahiptir.
- Açı ızgarası: `aw-grid-header`, `aw-grid-cell`, `aw-aspect aw-aspect-square`, `aw-orb`.

Gezegen grubu `data-planet` (`sun`, `north-node`, `lilith`; dış çemberde `b-sun`, üçüncüde `c-sun`) ve adı ve konumu ile `data-label`'a sahiptir: `Mercury 8°00' Taurus, retrograde`. Açı çizgisi ve ızgara hücresi `data-a` ve `data-b`'ye sahiptir. Böylece fareyle üzerine gelindiğinde gezegenin tüm açıları vurgulanır:

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

## Kendi Etiketleriniz: labels

Batı çarkları `options.labels` kabul eder: eksen etiketleri için kendi kelimeleriniz, ekran okuyucuların okuduğu `<title>` ve `<desc>` için ve `data-label` içindeki isimler için. Olmayan anahtarlar İngilizce kalır; biz kendimiz hiçbir şeyi çevirmeyiz.

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

`bodies` İngilizce anahtarlara sahiptir (`Sun`, `North Node`), `signs` Koç'tan başlayarak tam on iki isimdir, her etiket 40 karaktere kadar.

## İki Harita Arasındaki Açılar

`/v1/render/bi-wheel` ile `options.crossAspects: true` iç ve dış harita arasındaki açıları noktalı çizgiyle çizer, bu `POST /v1/synastry`'nin `crossAspects` olarak döndürdüğü aynı settir. Vücutlardan birinin çizilmediği çift atlanır. Varsayılan olarak kapalıdır.

## Doğum Verileri Yerine Hazır Harita

Eğer harita zaten sizde varsa, çünkü az önce `POST /v1/chart`'ı çağırdınız, doğum verileri yerine `data`'sını `chart` alanına gönderin, biz de sadece onu çizeriz. `wheel-western`, `aspect-grid` ve `bi-wheel` bu şekilde çalışır (orada `natal.chart` ve `outer.chart`, her ikisi de hazır haritalar olmalıdır). Görüntü, doğum verileriyle aynı, bayt baytına çıkacaktır.

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

Yanıtın fazla alanlarını kesmenize gerek yok. Çizilen şey kontrol edilir: 1 ila 30 vücut, boylamlar 0 ila 360 arası, tam 12 cusp. Hem `chart` hem de doğum verileri olan bir vücut 400 ile reddedilir.

## Maliyet

Doğum verileriyle `/v1/render/*` çağrısı 10 kredi tutar, çünkü harita hesaplanır. Hazır `chart` ile `/v1/render/wheel-western`, `/v1/render/aspect-grid` ve `/v1/render/bi-wheel` çağrıları 1 kredi tutar. Tema, sınıflar ve etiketler fiyatı etkilemez.
