Przejdź do głównej zawartości
AstroWay/api v2.254.12 · pl
wszystkie systemy w normie

SVG‑obrazki map

/v1/render/* zwraca mapę jako gotowy SVG: koło węgla, dwu- i trzykrotnie koło, kompozycja, kartę węgla (północna, południowa, wschodnia), siatkę aspektów, kosmogramę, fazę Księżyca, czasoprzestrzeń, biorytmy, pas cień i gwiazdkę. Przesyłasz dane urodzenia, my rysujemy mapę. Pełna lista tras i parametrów w dokumencie API.

Ten sam kod rysowania został opublikowany jako pakiet npm @astroway/render: jeśli dane mapy u ciebie już są, koło można namalować w przeglądarce czy na swoim serwerze, i będzie się zgadzało z tym, co zwraca API, bajt w bajcie. Wersję rysowania API zwraca w nagłówku X-Render-Version.

Okno terminala
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" zwraca sam plik, typowy json zwraca linijkę SVG w typowej odpowiedzi API. Tematy: light, dark, console i css.

Z theme: "css" każdy kolor w SVG jest zapisany jako zmienna CSS z kolorem jasnej tematy jako rezerwowym, np. var(--aw-ring, #222). Wstaw SVG do strony HTML (nie do <img>: tam zmienne nie przechodzą) i ustal zmienną:

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

Bez żadnych zmiennych mapa wygląda dokładnie jak light. Reguła CSS Twojej strony jest silniejsza niż zmienna, więc każdy element można przebarwić klasą.

ZmiennaCo barwi
--aw-chart-bgtło mapy
--aw-fg, --aw-mutedznaki i opisy, drugorzędny tekst i podziałki
--aw-ringkoła i linie siatki
--aw-houses-fillpole kartę węgla, dysk gwiazdkowej mapy, mapa cienia
--aw-beneficplanety zewnętrznego koła, lagna w kartę węgla, wydarzenia czasoprzestrzeni bez własnego koloru
--aw-maleficznak ruchu wstecznego ℞, pas cienia
--aw-aspect-harmonious, --aw-aspect-tense, --aw-aspect-neutral, --aw-aspect-minor, --aw-aspect-quintilelinie i znaki aspektów
--aw-moon-shadow, --aw-moon-lightfazę Księżyca
--aw-cycle-physical, --aw-cycle-emotional, --aw-cycle-intellectualbiorytmy

W temacie css zachodnie koła (wheel-western, bi-wheel, tri-wheel, composite) i siatka aspektów mają stałe klasy. Nazwy tylko dodaje, nigdy nie zmienia, więc na nich można pisać style i skrypty.

  • Koło: aw-bg, aw-ring, aw-sign aw-sign-leo, aw-sign-line, aw-tick, aw-house-cusp, aw-house-number, osie aw-axis aw-asc (aw-dsc, aw-mc, aw-ic), ich opisy aw-label aw-axis-label, tytuł aw-title.
  • Planeta: grupa <g class="aw-planet aw-planet-sun">, ruch wsteczny ma jeszcze aw-retrograde, planety zewnętrznego koła aw-layer-1. Wewnątrz aw-glyph, aw-retro (znak ℞) i aw-planet-tick.
  • Aspekt: linia aw-aspect aw-aspect-trine, linia między dwoma kartami ma jeszcze aw-cross-aspect.
  • Siatka aspektów: aw-grid-header, aw-grid-cell, aw-aspect aw-aspect-square, aw-orb.

Grupa planety ma data-planet (sun, north-node, lilith; na zewnętrznym koło b-sun, na trzecim c-sun) i data-label z nazwą i pozycją: Mercury 8°00' Taurus, ruch wsteczny. Linia aspektu i komórka siatki ma data-a i data-b. Tak podświetla się wszystkie aspekty planety przy przejściu:

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

Zachodnie koła przyjmują options.labels: Twoje słowa dla opisów osi, dla <title> i <desc>, które czytają ekranowe czytelniki, i dla nazw w data-label. Klucze, których nie ma, zostają angielskimi; samemu nic nie tłumaczę.

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

bodies ma klucze angielskie (Sun, North Node), signs to dokładnie dwanaście nazw, zaczynając od Bicia, każdy opis do 40 znaków.

/v1/render/bi-wheel z options.crossAspects: true rysuje punktami aspekty między wewnętrzną i zewnętrzną kartą, ten sam zestaw, który POST /v1/synastry zwraca jako crossAspects. Para, w której jedno z ciał nie jest namalowane, jest pomijana. Typowo wyłączony.

Jeśli mapa u ciebie już jest, bo właśnie wywołałeś POST /v1/chart, nadaj ją data w polu chart zamiast danych urodzenia, i my tylko namalujemy ją. Tak działają wheel-western, aspect-grid i bi-wheel (tam natal.chart i outer.chart, obie mają być gotowymi kartami). Zobrazienie wychodzi bajt w bajcie tak samo, jak z danych urodzenia.

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

Zbyteczne pola odpowiedzi można nie ciąć. Sprawdzany jest to, co namalowane jest: od 1 do 30 ciał, długości od 0 do 360, dokładnie 12 kuśpidów. Ciało, w którym jest i chart, i dane urodzenia, odchodzi z 400.

Wywołanie /v1/render/* z danymi urodzenia kosztuje 10 kredytów, bo mapa jest policzona. Z gotową kartą chart wywołania /v1/render/wheel-western, /v1/render/aspect-grid i /v1/render/bi-wheel kosztują 1 kredyt. Temat, klasy i opisy nie wpływają na cenę.

Przydatne?
Zaproponuj edycję

Ostatnia aktualizacja: