SVG-зображення карт
/v1/render/* повертає карту як готовий SVG: натальне колесо, бі- і трі-колесо, композит, ведичні карти (північна, південна, східна), сітку аспектів, космограму, фазу Місяця, таймлайн, біоритми, смугу затемнення і зоряну карту. Ви надсилаєте дані народження, ми рахуємо карту і малюємо її. Повний перелік маршрутів і параметрів у довіднику API.
Той самий код малювання опубліковано як npm-пакет @astroway/render: якщо дані карти у вас уже є, колесо можна намалювати у браузері чи на своєму сервері, і воно збігатиметься з тим, що повертає API, байт у байт. Версію малювання API повертає в заголовку X-Render-Version.
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.svgformat: "svg" віддає сам файл, типовий json загортає рядок SVG у звичайну відповідь API. Теми: light, dark, console і css.
Тема css: кольори вашого сайту
Section titled “Тема css: кольори вашого сайту”З theme: "css" кожен колір у SVG записано як змінну CSS із кольором світлої теми як запасним, наприклад var(--aw-ring, #222). Вставте SVG у HTML сторінки (не в <img>: туди змінні не проходять) і задайте змінні:
.chart { --aw-chart-bg: transparent; --aw-ring: #444; --aw-fg: currentColor; --aw-aspect-tense: crimson;}Без жодної змінної карта виглядає точно як light. Правило CSS вашої сторінки сильніше за змінну, тож окремий елемент можна перефарбувати класом.
| Змінна | Що фарбує |
|---|---|
--aw-chart-bg | фон карти |
--aw-fg, --aw-muted | гліфи і підписи, другорядний текст і поділки |
--aw-ring | кола і лінії сітки |
--aw-houses-fill | поле ведичної карти, диск зоряної карти, мапа затемнення |
--aw-benefic | планети зовнішнього кола, лагна у ведичній карті, події таймлайну без власного кольору |
--aw-malefic | знак ретроградності ℞, смуга затемнення |
--aw-aspect-harmonious, --aw-aspect-tense, --aw-aspect-neutral, --aw-aspect-minor, --aw-aspect-quintile | лінії і символи аспектів |
--aw-moon-shadow, --aw-moon-light | фаза Місяця |
--aw-cycle-physical, --aw-cycle-emotional, --aw-cycle-intellectual | біоритми |
Класи і data-атрибути
Section titled “Класи і data-атрибути”У темі css західні колеса (wheel-western, bi-wheel, tri-wheel, composite) і сітка аспектів мають сталі класи. Назви лише додаються, ніколи не перейменовуються, тож на них можна писати стилі й скрипти.
- Колесо:
aw-bg,aw-ring,aw-sign aw-sign-leo,aw-sign-line,aw-tick,aw-house-cusp,aw-house-number, осіaw-axis aw-asc(aw-dsc,aw-mc,aw-ic), їхні підписиaw-label aw-axis-label, заголовокaw-title. - Планета: група
<g class="aw-planet aw-planet-sun">, ретроградна має щеaw-retrograde, планети зовнішнього колаaw-layer-1. Усерединіaw-glyph,aw-retro(знак ℞) іaw-planet-tick. - Аспект: лінія
aw-aspect aw-aspect-trine, лінія між двома картами ще йaw-cross-aspect. - Сітка аспектів:
aw-grid-header,aw-grid-cell,aw-aspect aw-aspect-square,aw-orb.
Група планети має data-planet (sun, north-node, lilith; на зовнішньому колі b-sun, на третьому c-sun) і data-label з назвою і положенням: Mercury 8°00' Taurus, retrograde. Лінія аспекту і клітинка сітки мають data-a і data-b. Так підсвічуються всі аспекти планети при наведенні:
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));}));Свої підписи: labels
Section titled “Свої підписи: labels”Західні колеса приймають options.labels: ваші слова для підписів осей, для <title> і <desc>, які читають екранні читачі, і для назв у data-label. Ключі, яких немає, лишаються англійською; самі ми нічого не перекладаємо.
"options": { "theme": "css", "labels": { "asc": "Асц", "mc": "МС", "title": "Натальна карта", "bodies": { "Sun": "Сонце", "Moon": "Місяць" }, "signs": ["Овен","Телець","Близнюки","Рак","Лев","Діва","Терези","Скорпіон","Стрілець","Козеріг","Водолій","Риби"], "retrograde": "ретроградний" }}bodies має ключі англійською (Sun, North Node), signs це рівно дванадцять назв, починаючи з Овна, кожен підпис до 40 символів.
Аспекти між двома картами
Section titled “Аспекти між двома картами”/v1/render/bi-wheel з options.crossAspects: true малює пунктиром аспекти між внутрішньою і зовнішньою картою, той самий набір, що POST /v1/synastry повертає як crossAspects. Пара, де одне з тіл не намальовано, пропускається. Типово вимкнено.
Готова карта замість даних народження
Section titled “Готова карта замість даних народження”Якщо карта у вас уже є, бо ви щойно викликали POST /v1/chart, надішліть її data у поле chart замість даних народження, і ми лише намалюємо її. Так працюють wheel-western, aspect-grid і bi-wheel (там natal.chart і outer.chart, обидві мають бути готовими картами). Зображення вийде байт у байт таким самим, як з даних народження.
{ "chart": { "planets": [ ... ], "houses": { "cusps": [ ... ], "ascendant": 7.77, "mc": 277.12 }, "aspects": [ ... ] }, "options": { "theme": "css" } }Зайві поля відповіді можна не вирізати. Перевіряється те, що малюється: від 1 до 30 тіл, довготи від 0 до 360, рівно 12 куспидів. Тіло, де є і chart, і дані народження, відхиляється з 400.
Вартість
Section titled “Вартість”Виклик /v1/render/* з даними народження коштує 10 кредитів, бо карта рахується. З готовою картою chart виклики /v1/render/wheel-western, /v1/render/aspect-grid і /v1/render/bi-wheel коштують 1 кредит. Тема, класи і підписи на ціну не впливають.