<?php
function get_coordinates_from_place($place) {
// Deinen OpenCage API-Schlüssel hier einfügen
$api_key = "009af0adef2543018ed58d3f58ef195f"; // Ersetze "DEIN_API_KEY" mit deinem tatsächlichen API-Schlüssel
$url = "https://api.opencagedata.com/geocode/v1/json?q=" . urlencode($place) . "&key=" . $api_key;
// API-Anfrage durchführen
$response = file_get_contents($url);
$data = json_decode($response, true);
if ($data && isset($data['results'][0])) {
// Koordinaten extrahieren
$lat = $data['results'][0]['geometry']['lat'];
$lon = $data['results'][0]['geometry']['lng'];
return array('lat' => $lat, 'lon' => $lon);
} else {
return null;
}
}
function calculate_ascendant($birth_date, $birth_time, $place) {
// Geocoding durchführen, um den Geburtsort in Koordinaten zu erhalten
$coordinates = get_coordinates_from_place($place);
if ($coordinates === null) {
return "Fehler bei der Geocodierung des Ortes.";
}
$lat = $coordinates['lat'];
$lon = $coordinates['lon'];
// Datum und Zeit des Geburtstags
$datetime = new DateTime("$birth_date $birth_time");
$timestamp = $datetime->getTimestamp();
// Der Zeitzonen-Offset wird hier manuell gesetzt. Du kannst auch eine API oder andere Methoden verwenden, um dies zu berechnen.
$tz_offset = 1; // Beispiel: für Mitteleuropäische Zeit (MEZ)
$datetime->modify("-$tz_offset hours"); // Umwandlung in UTC
// Berechnungen zur Bestimmung des Aszendenten (Beispielcode)
$julian_day = gregoriantojd($datetime->format('m'), $datetime->format('d'), $datetime->format('Y')) + ($datetime->format('H') + $datetime->format('i') / 60) / 24;
$asc_degree = fmod(($julian_day * 360 / 365.25) + 90, 360);
$asc_sign = floor($asc_degree / 30);
$asc_min = fmod($asc_degree, 30);
$signs = ["Widder", "Stier", "Zwillinge", "Krebs", "Löwe", "Jungfrau", "Waage", "Skorpion", "Schütze", "Steinbock", "Wassermann", "Fische"];
$asc_sign_name = $signs[$asc_sign];
return "$asc_sign_name " . intval($asc_min) . "°" . intval(($asc_min - intval($asc_min)) * 60) . "'";
}
// Beispiel: Geburt in Berlin am 1. Januar 2000 um 12:00
$birth_date = "2000-01-01";
$birth_time = "12:00";
$place = "Berlin";
echo calculate_ascendant($birth_date, $birth_time, $place);
?>