Перейти до вмісту
AstroWay/api v2.254.12 · docs
усі системи в нормі

SVG-зображення карт

/v1/render/* повертає карту як готовий SVG: натальне колесо, бі- і трі-колесо, композит, ведичні карти (північна, південна, східна), сітку аспектів, космограму, фазу Місяця, таймлайн, біоритми, смугу затемнення і зоряну карту. Ви надсилаєте дані народження, ми рахуємо карту і малюємо її. Повний перелік маршрутів і параметрів у довіднику API.

Той самий код малювання опубліковано як npm-пакет @astroway/render: якщо дані карти у вас уже є, колесо можна намалювати у браузері чи на своєму сервері, і воно збігатиметься з тим, що повертає API, байт у байт. Версію малювання API повертає в заголовку X-Render-Version.

Terminal window
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" віддає сам файл, типовий 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біоритми

У темі 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));
}));

Західні колеса приймають 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.

Виклик /v1/render/* з даними народження коштує 10 кредитів, бо карта рахується. З готовою картою chart виклики /v1/render/wheel-western, /v1/render/aspect-grid і /v1/render/bi-wheel коштують 1 кредит. Тема, класи і підписи на ціну не впливають.

Корисно?
Запропонувати правку

Останнє оновлення: