Immagini delle carte SVG
/v1/render/* restituisce una carta come SVG pronto: ruota natale, bi- e tri-ruota, composito, carte vediche (nord, sud, est), griglia degli aspetti, cosmogramma, fase lunare, timeline, bioritmi, fascia di eclissi e carta stellare. Tu invii i dati di nascita, noi calcoliamo la carta e la disegniamo. L’elenco completo dei percorsi e dei parametri è nel riferimento API.
Lo stesso codice di disegno è pubblicato come pacchetto npm @astroway/render: se hai già i dati della carta, la ruota può essere disegnata nel browser o sul tuo server, e corrisponderà byte per byte a ciò che l’API restituisce. L’API restituisce la versione del disegno nell’header X-Render-Version.
Richiesta
Sezione intitolata “Richiesta”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" restituisce il file stesso, il json tipico avvolge la stringa SVG in una normale risposta API. Temi: light, dark, console e css.
Tema css: i colori del tuo sito
Sezione intitolata “Tema css: i colori del tuo sito”Con theme: "css" ogni colore nell’SVG è scritto come variabile CSS con il colore del tema chiaro come fallback, ad esempio var(--aw-ring, #222). Inserisci l’SVG nell’HTML della pagina (non in <img>: lì le variabili non passano) e imposta le variabili:
.chart { --aw-chart-bg: transparent; --aw-ring: #444; --aw-fg: currentColor; --aw-aspect-tense: crimson;}Senza alcuna variabile, la carta appare esattamente come light. La regola CSS della tua pagina è più forte della variabile, quindi un singolo elemento può essere ricolorato con una classe.
| Variabile | Cosa colora |
|---|---|
--aw-chart-bg | sfondo della carta |
--aw-fg, --aw-muted | glifi e etichette, testo secondario e tacche |
--aw-ring | cerchi e linee della griglia |
--aw-houses-fill | campo della carta vedica, disco della carta stellare, mappa dell’eclissi |
--aw-benefic | pianeti del cerchio esterno, lagna nella carta vedica, eventi della timeline senza un colore proprio |
--aw-malefic | segno di retrogradazione ℞, fascia di eclissi |
--aw-aspect-harmonious, --aw-aspect-tense, --aw-aspect-neutral, --aw-aspect-minor, --aw-aspect-quintile | linee e simboli degli aspetti |
--aw-moon-shadow, --aw-moon-light | fase lunare |
--aw-cycle-physical, --aw-cycle-emotional, --aw-cycle-intellectual | bioritmi |
Classi e attributi data
Sezione intitolata “Classi e attributi data”Nel tema css le ruote occidentali (wheel-western, bi-wheel, tri-wheel, composite) e la griglia degli aspetti hanno classi fisse. I nomi vengono solo aggiunti, mai rinominati, quindi puoi scrivere stili e script su di essi.
- Ruota:
aw-bg,aw-ring,aw-sign aw-sign-leo,aw-sign-line,aw-tick,aw-house-cusp,aw-house-number, assiaw-axis aw-asc(aw-dsc,aw-mc,aw-ic), le loro etichetteaw-label aw-axis-label, titoloaw-title. - Pianeta: gruppo
<g class="aw-planet aw-planet-sun">, retrogrado ha ancheaw-retrograde, pianeti del cerchio esternoaw-layer-1. All’internoaw-glyph,aw-retro(segno ℞) eaw-planet-tick. - Aspetto: linea
aw-aspect aw-aspect-trine, linea tra due carte ancheaw-cross-aspect. - Griglia degli aspetti:
aw-grid-header,aw-grid-cell,aw-aspect aw-aspect-square,aw-orb.
Il gruppo del pianeta ha data-planet (sun, north-node, lilith; sul cerchio esterno b-sun, sul terzo c-sun) e data-label con nome e posizione: Mercury 8°00' Taurus, retrograde. La linea dell’aspetto e la cella della griglia hanno data-a e data-b. Così vengono evidenziati tutti gli aspetti del pianeta al passaggio del mouse:
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));}));Le tue etichette: labels
Sezione intitolata “Le tue etichette: labels”Le ruote occidentali accettano options.labels: le tue parole per le etichette degli assi, per <title> e <desc>, che vengono lette dagli screen reader, e per i nomi in data-label. Le chiavi mancanti rimangono in inglese; noi stessi non traduciamo nulla.
"options": { "theme": "css", "labels": { "asc": "Асц", "mc": "МС", "title": "Натальна карта", "bodies": { "Sun": "Сонце", "Moon": "Місяць" }, "signs": ["Овен","Телець","Близнюки","Рак","Лев","Діва","Терези","Скорпіон","Стрілець","Козеріг","Водолій","Риби"], "retrograde": "ретроградний" }}bodies ha chiavi in inglese (Sun, North Node), signs sono esattamente dodici nomi, a partire dall’Ariete, ogni etichetta fino a 40 caratteri.
Aspetti tra due carte
Sezione intitolata “Aspetti tra due carte”/v1/render/bi-wheel con options.crossAspects: true disegna con un tratteggio gli aspetti tra la carta interna e quella esterna, lo stesso set che POST /v1/synastry restituisce come crossAspects. Una coppia in cui uno dei corpi non è disegnato viene saltata. Disabilitato di default.
Carta pronta invece dei dati di nascita
Sezione intitolata “Carta pronta invece dei dati di nascita”Se hai già la carta, perché hai appena chiamato POST /v1/chart, invia i suoi data nel campo chart invece dei dati di nascita, e noi la disegneremo soltanto. Così funzionano wheel-western, aspect-grid e bi-wheel (lì natal.chart e outer.chart, entrambi devono essere carte pronte). L’immagine risulterà byte per byte la stessa che con i dati di nascita.
{ "chart": { "planets": [ ... ], "houses": { "cusps": [ ... ], "ascendant": 7.77, "mc": 277.12 }, "aspects": [ ... ] }, "options": { "theme": "css" } }I campi extra della risposta possono non essere tagliati. Viene controllato ciò che viene disegnato: da 1 a 30 corpi, longitudini da 0 a 360, esattamente 12 cuspidi. Un corpo che ha sia chart che i dati di nascita viene rifiutato con 400.
La chiamata a /v1/render/* con i dati di nascita costa 10 crediti, perché la carta viene calcolata. Con una carta chart pronta, le chiamate a /v1/render/wheel-western, /v1/render/aspect-grid e /v1/render/bi-wheel costano 1 credito. Tema, classi ed etichette non influiscono sul prezzo.