Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<!DOCTYPE html> <html> <head> <title>Tankstelleninformationen</title> <link re..

Decoded Output download

<!DOCTYPE html> 
<html> 
<head> 
    <title>Tankstelleninformationen</title> 
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" /> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script> 
    <script> 
        // Funktion zum Aktualisieren der Geschwindigkeitsanzeige 
        function updateSpeed() { 
            // Hier AJAX-Aufruf machen, um die Geschwindigkeit zu aktualisieren 
            // Beispiel:  
            // Hier AJAX-Aufruf machen, um die Geschwindigkeit zu aktualisieren 
            var xhr = new XMLHttpRequest(); 
            xhr.onreadystatechange = function() { 
                if (xhr.readyState == XMLHttpRequest.DONE) { 
                    if (xhr.status == 200) { 
                        // Daten empfangen und die Geschwindigkeit aktualisieren 
                        var data = JSON.parse(xhr.responseText); 
                        var speed_ms = data.speed; 
                        var speed_kmh = speed_ms * 3.6; 
                        document.getElementById('speed-kmh').innerHTML = speed_kmh.toFixed(2) + ' km/h'; 
                    } 
                } 
            }; 
            xhr.open("GET", "https://rtirl.com/api/pull?key=89w97sjhb06v53vh", true); 
            xhr.send(); 
        } 
 
        // Die Geschwindigkeit alle 1 Sekunde aktualisieren 
        setInterval(updateSpeed, 1000); 
    </script> 
     
</head> 
<body> 
<?php 
// Pfad zur JSON-Datei 
$jsonFilePath = 'km_data.json'; 
 
// JSON-Daten aus der Datei lesen 
$jsonData = file_get_contents($jsonFilePath); 
 
// berprfen, ob die Datei erfolgreich gelesen wurde 
if ($jsonData !== false) { 
    // JSON-Daten dekodieren 
    $data = json_decode($jsonData, true); 
 
// Hchste stream_id und die dazugehrige total_km finden 
$maxStreamId = null; 
$maxTotalKm = null; 
 
foreach ($data as $item) { 
    if ($maxStreamId === null || $item['stream_id'] > $maxStreamId) { 
        $maxStreamId = $item['stream_id']; 
        $maxTotalKm = $item['total_km']; 
    } 
} 
 
// Total_km auf zwei Nachkommastellen runden 
$maxTotalKmRounded = round($maxTotalKm, 2); 
 
// Anzeige in Ihrer index.php 
echo "<div class='container'> 
        <div class='header'>Spriiit Preise</div> 
        <div class='additional-info' id='image-with-space'> 
            <img src='img/km.png' width='30px'>  
        </div> 
        <div class='additional-info' id='gesamtlnge-value'>$maxTotalKmRounded km</div> 
        <div class='additional-info' id='image-with-space'>  
            <img src='img/kmh.png' width='30px'> 
        </div> 
        <div class='additional-info' id='speed-kmh'>" . round($speed_kmh, 2) . " km/h</div>"; 
} else { 
    // Fehlermeldung anzeigen, wenn die Datei nicht gelesen werden konnte 
    echo "Fehler beim Lesen der JSON-Datei."; 
} 
 
            // Funktion zur Berechnung der Entfernung zwischen zwei Punkten 
            function berechneEntfernung($lat1, $lon1, $lat2, $lon2) { 
                $earthRadius = 6371; // Radius der Erde in Kilometern 
 
                $deltaLat = deg2rad($lat2 - $lat1); 
                $deltaLon = deg2rad($lon2 - $lon1); 
 
                $a = sin($deltaLat / 2) * sin($deltaLat / 2) + 
                     cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * 
                     sin($deltaLon / 2) * sin($deltaLon / 2); 
                $c = 2 * atan2(sqrt($a), sqrt(1 - $a)); 
 
                $distance = $earthRadius * $c; // Entfernung in Kilometern 
 
                return $distance; 
            } 
 
            require_once('config/config.php'); 
 
            $conn = new mysqli($hostname, $username, $password, $database); 
            if ($conn->connect_error) { 
                die("Connection failed: " . $conn->connect_error); 
            } 
            $sql = "SELECT * FROM Standorte ORDER BY timestamp DESC LIMIT 1"; 
            $result = $conn->query($sql); 
            if ($result->num_rows > 0) { 
                $row = $result->fetch_assoc(); 
                $currentLat = $row['latitude']; 
                $currentLon = $row['longitude']; 
            } 
 
                // Ausgabe des verwendeten Standorts in der Konsole 
                //echo "Verwendeter Standort - Breitengrad: $currentLat, Lngengrad: $currentLon
"; 
 
            // Laden der Tankstelleninformationen aus der JSON-Datei 
            $json_data = file_get_contents('tankerkoenig_data.json'); 
            $stations = json_decode($json_data, true); 
 
            // berprfen, ob mindestens eine Tankstelle vorhanden ist 
            if (!empty($stations)) { 
                // Berechnung der Entfernungen zu den Tankstellen und Hinzufgen zur Station-Array 
                foreach ($stations as &$station) { 
                    $stationLat = $station['lat']; 
                    $stationLon = $station['lng']; 
                    $station['distance'] = berechneEntfernung($currentLat, $currentLon, $stationLat, $stationLon); 
                } 
         
                // Sortieren der Tankstellen nach Entfernung 
                usort($stations, function($a, $b) { 
                    return $a['distance'] - $b['distance']; 
                }); 
 
                // Ausgabe der Tankstelleninformationen 
                echo "<div class='fuel-type'><div class='additional-info-fuel' id='fuel-type1'>Tankstellen:</div></div><br><br><br>"; 
     
                // Variable fr die Anzahl der hinzugefgten Tankstellen 
                $tankstellen_count = 0; 
 
                // Durchlaufen der Tankstellen 
                foreach ($stations as $station) { 
                    // berprfen, ob bereits drei Tankstellen hinzugefgt wurden 
                    if ($tankstellen_count >= 3) { 
                        break; // Schleife abbrechen, wenn drei Tankstellen hinzugefgt wurden 
                    } 
                    $name = $station['name']; 
                    $dieselPrice = isset($station['diesel']) ? $station['diesel'] : 'N/A'; 
                    $e5Price = isset($station['e5']) ? $station['e5'] : 'N/A'; 
                    $e10Price = isset($station['e10']) ? $station['e10'] : 'N/A'; 
                    $open = isset($station['isOpen']) ? $station['isOpen'] : false; 
                    $id = isset($station['id']) ? $station['id'] : 'N/A'; 
                    $distance = isset($station['dist']) ? (float)($station['dist']) : 'N/A'; 
                    $details = isset($station['details']) ? $station['details'] : []; 
                    $openingTimes = isset($details['station']['openingTimes']) ? $details['station']['openingTimes'] : []; 
                    $status = ($open) ? 'geffnet' : 'geschlossen'; 
                             
             
                    // Name der Tankstelle und Status 
                    echo "<div class='station'>"; 
                    echo "<div class='station-info'>"; 
                    echo "<div class='station-name'>$name</div>"; 
                    echo "<div class='status'>Status: $status</div>"; 
                    echo "<div class='distance'>Entfernung: $distance km</div>"; 
                    echo "</div>"; 
 
                    // ffnungszeiten 
                    echo "<div class='opening-hours'>"; 
                    echo "<div class='label'>ffnungszeiten:</div>"; 
                    echo "<div class='times'>"; 
                    foreach ($openingTimes as $openingTime) { 
                        $startTime = substr($openingTime['start'], 0, 5); // Extrahiere die ersten 5 Zeichen der Startzeit 
                        $endTime = substr($openingTime['end'], 0, 5); // Extrahiere die ersten 5 Zeichen der Endzeit 
             
                        // Krze die Wochentage 
                        $weekdays = str_replace(array('Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag'), array('Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'), $openingTime['text']); 
             
                        echo $weekdays . ': ' . $startTime . ' - ' . $endTime . '<br>'; 
                    } 
                    echo "</div>"; 
                    echo "</div>"; 
 
                    // Kraftstoffpreise 
                    echo "<div class='prices'>"; 
                    echo "<div class='price'><span class='label diesel'>Diesel:</span><span class='diesel'>$dieselPrice </span></div>"; 
                    echo "<div class='price'><span class='label e5'>E5:</span><span class='e5'>$e5Price </span></div>"; 
                    echo "<div class='price'><span class='label e10'>E10:</span><span class='e10'>$e10Price </span></div>"; 
                    echo "</div>"; 
                    echo "</div>";  
 
                    $tankstellen_count++; // Zhlvariable erhhen 
                } 
             
                if ($tankstellen_count == 0) { 
                    echo "Keine Tankstellen gefunden.<br><br>"; 
                } 
            } else { 
                echo "Keine Tankstellen gefunden.<br><br>"; 
            } 
 
            // Datenbankverbindung schlieen 
            $conn->close(); 
            ?> 
 
        <div id="map"></div> 
        <script> 
<?php 
    require_once('config/config.php'); 
    $conn = new mysqli($hostname, $username, $password, $database); 
 
    // berprfen, ob die Verbindung erfolgreich hergestellt wurde 
    if ($conn->connect_error) { 
        die("Connection failed: " . $conn->connect_error); 
    } 
    // Hier PHP-Code einfgen 
    $sql = "SELECT MAX(stream_id) AS max_stream_id FROM Standorte"; 
    $result = $conn->query($sql); 
    $row = $result->fetch_assoc(); 
    $maxStreamID = $row['max_stream_id']; 
 
    // Alle Eintrge mit der hchsten Stream-ID abrufen 
    $sql = "SELECT * FROM Standorte WHERE stream_id = $maxStreamID"; 
    $result = $conn->query($sql); 
 
    // Ausgabe der Daten in der Konsole 
    if ($result->num_rows > 0) { 
        while ($row = $result->fetch_assoc()) { 
            $routeData[] = $row; 
            $stream = $row['stream_id']; 
            $lat = $row['latitude']; 
            $lng = $row['longitude']; 
            $time = $row['timestamp']; 
            // Ausgabe in der Konsole 
            //echo "console.log('Stream-Id: $stream, Latitude: $lat, Longitude: $lng, Zeitpunkt: $time');"; 
            echo "console.log('Daten: $routeData');"; 
        } 
    } else { 
        echo "Keine Eintrge gefunden."; 
    } 
 
    $sql = "SELECT * FROM Standorte WHERE stream_id = $maxStreamID ORDER BY timestamp ASC LIMIT 1"; 
    $result = $conn->query($sql); 
 
    // Wenn ein Startpunkt gefunden wurde, fge ihn als ersten Punkt in die Route-Daten ein 
    if ($result->num_rows > 0) { 
    $row = $result->fetch_assoc(); 
    array_unshift($routeData, $row); 
} else { 
echo "Keinen Startpunkt gefunden."; 
} 
    $routeDataJSON = json_encode($routeData); 
 
     // Abrufen der aktuellen Koordinaten aus der Datenbank 
    $sql = "SELECT latitude, longitude FROM Standorte ORDER BY timestamp DESC LIMIT 1"; 
    $result = $conn->query($sql); 
    if ($result->num_rows > 0) { 
        $row = $result->fetch_assoc(); 
        $latitude = $row['latitude']; 
        $longitude = $row['longitude']; 
    } else { 
        // Setzen Sie Standardkoordinaten, falls keine Daten gefunden wurden 
        $latitude = 0; 
        $longitude = 0; 
    } 
?> 
 
try { 
var map = L.map('map').setView([<?php echo $latitude; ?>, <?php echo $longitude; ?>], 13); 
 
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' 
}).addTo(map); 
 
var blueIcon = L.icon({ 
iconUrl: 'img/flag-icon.png', // Hier den Pfad zum blauen Icon einfgen 
iconSize: [25, 41], 
iconAnchor: [12, 41], 
popupAnchor: [1, -34], 
shadowSize: [41, 41] 
}); 
 
// Marker fr den Startpunkt (Standort von rtirl.com) 
L.marker([<?php echo $row['latitude']; ?>, <?php echo $row['longitude']; ?>], {icon: blueIcon}).addTo(map) // Blaues Fhnchen fr den Startpunkt 
.bindPopup('Startpunkt'); 
 
<?php 
// Laden der Tankstelleninformationen aus der JSON-Datei 
$json_data = file_get_contents('tankerkoenig_data.json'); 
$stations = json_decode($json_data, true); 
 
// berprfen, ob die Tankstellenkoordinaten korrekt geladen wurden 
if (!empty($stations)) { 
    // Hier knnen Sie die Koordinaten laden und verarbeiten 
    foreach ($stations as $station) { 
        $latitude = isset($station['lat']) ? floatval($station['lat']) : null; 
        $longitude = isset($station['lng']) ? floatval($station['lng']) : null; 
         
        // berprfen, ob die Koordinaten gltig sind 
        if ($latitude !== null && $longitude !== null) { 
            // Hier knnen Sie die Koordinaten verwenden 
            // Fgen Sie sie beispielsweise zu einem Array hinzu, das dann in JavaScript verwendet werden kann 
        } else { 
            // Fehlerbehandlung fr ungltige Koordinaten 
            echo "Ungltige Koordinaten gefunden fr Tankstelle: " . $station['name'] . "<br>"; 
        } 
    } 
} else { 
    // Fehlerbehandlung fr leere oder fehlerhafte JSON-Datei 
    echo "Fehler beim Laden der Tankstelleninformationen aus der JSON-Datei.<br>"; 
} 
?> 
 
// Tankstellen hinzufgen 
var tankstellen = <?php echo json_encode($stations); ?>; 
 
// berprfen, ob tankstellen ein Array ist 
if (Array.isArray(tankstellen)) { 
    // Durchlaufen der Tankstellen 
    tankstellen.forEach(function(tankstelle) { 
        // berprfen, ob tankstelle gltige Koordinaten hat 
        if (tankstelle.hasOwnProperty('lat') && tankstelle.hasOwnProperty('lng')) { 
            var lat = parseFloat(tankstelle['lat']); 
            var lng = parseFloat(tankstelle['lng']); 
 
            // berprfen, ob lat und lng gltig sind 
            if (!isNaN(lat) && !isNaN(lng)) { 
                var latlng = [lat, lng]; 
 
                // Benutzerdefiniertes Icon mit gewnschter Farbe erstellen 
                var customIcon = L.icon({ 
                    iconUrl: 'img/red-icon.png', 
                    iconSize: [25, 41], 
                    iconAnchor: [12, 41], 
                    popupAnchor: [1, -34], 
                    shadowSize: [41, 41] 
                }); 
 
                // Marker zur Karte hinzufgen 
                L.marker(latlng, { icon: customIcon }).addTo(map) 
                    .bindPopup('<b>' + tankstelle['name']); 
            } else { 
                console.error('Ungltige Koordinaten fr Tankstelle:', tankstelle['name']); 
            } 
        } else { 
            console.error('Tankstellenobjekt hat keine gltigen Koordinaten:', tankstelle); 
        } 
    }); 
} else { 
    console.error('Tankstellen-Daten sind kein Array.'); 
} 
 
 
 
 
// Route-Daten als JavaScript-Variable definieren 
var routeData = <?php echo $routeDataJSON; ?>; 
console.log(routeData); // Konsolenausgabe der Route-Daten zur berprfung 
var totalDistance = 0; 
 
// Linie zwischen den Punkten zeichnen 
var polylinePoints = []; 
var lastPoint = routeData[routeData.length - 1]; 
routeData.forEach(function(waypoint) { 
var latlng = [waypoint['latitude'], waypoint['longitude']]; 
polylinePoints.push(latlng); // Koordinaten zur Linie hinzufgen 
if (waypoint === lastPoint) { 
    // Letzten Punkt mit schwarzem Icon markieren 
    var blackIcon = L.icon({ 
        iconUrl: 'img/black-icon.png', 
        iconSize: [25, 41], 
        iconAnchor: [12, 41], 
        popupAnchor: [1, -34], 
        shadowSize: [41, 41] 
    }); 
 
    L.marker(latlng, { icon: blackIcon }).addTo(map) 
        .bindPopup('Stream-Id: ' + waypoint['stream_id'] + ', Zeitpunkt: ' + waypoint['timestamp']); 
} 
}); 
 
// Funktion zur Berechnung der Entfernung zwischen zwei Punkten 
function calculateDistance(lat1, lon1, lat2, lon2) { 
var earthRadius = 6371; // Radius der Erde in Kilometern 
var deltaLat = deg2rad(lat2 - lat1); 
var deltaLon = deg2rad(lon2 - lon1); 
var a = Math.sin(deltaLat / 2) * Math.sin(deltaLat / 2) + 
        Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * 
        Math.sin(deltaLon / 2) * Math.sin(deltaLon / 2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); 
var distance = earthRadius * c; // Entfernung in Kilometern 
return distance; 
} 
 
// Funktion zum Konvertieren von Grad in Bogenma 
function deg2rad(deg) { 
return deg * (Math.PI / 180); 
} 
 
// Linie auf Karte hinzufgen 
L.polyline(polylinePoints, { color: 'red' }).addTo(map); 
 
 
 
} catch (error) { 
// Fehlerbehandlung: Fehlermeldung ausgeben 
console.error('Ein Fehler ist aufgetreten:', error); 
console.log(routeData); 
} 
</script> 
    </div> 
    
</body> 
</html> 

Did this file decode correctly?

Original Code

<!DOCTYPE html>
<html>
<head>
    <title>Tankstelleninformationen</title>
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
    <link rel="stylesheet" href="style.css" />
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
    <script>
        // Funktion zum Aktualisieren der Geschwindigkeitsanzeige
        function updateSpeed() {
            // Hier AJAX-Aufruf machen, um die Geschwindigkeit zu aktualisieren
            // Beispiel: 
            // Hier AJAX-Aufruf machen, um die Geschwindigkeit zu aktualisieren
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function() {
                if (xhr.readyState == XMLHttpRequest.DONE) {
                    if (xhr.status == 200) {
                        // Daten empfangen und die Geschwindigkeit aktualisieren
                        var data = JSON.parse(xhr.responseText);
                        var speed_ms = data.speed;
                        var speed_kmh = speed_ms * 3.6;
                        document.getElementById('speed-kmh').innerHTML = speed_kmh.toFixed(2) + ' km/h';
                    }
                }
            };
            xhr.open("GET", "https://rtirl.com/api/pull?key=89w97sjhb06v53vh", true);
            xhr.send();
        }

        // Die Geschwindigkeit alle 1 Sekunde aktualisieren
        setInterval(updateSpeed, 1000);
    </script>
    
</head>
<body>
<?php
// Pfad zur JSON-Datei
$jsonFilePath = 'km_data.json';

// JSON-Daten aus der Datei lesen
$jsonData = file_get_contents($jsonFilePath);

// berprfen, ob die Datei erfolgreich gelesen wurde
if ($jsonData !== false) {
    // JSON-Daten dekodieren
    $data = json_decode($jsonData, true);

// Hchste stream_id und die dazugehrige total_km finden
$maxStreamId = null;
$maxTotalKm = null;

foreach ($data as $item) {
    if ($maxStreamId === null || $item['stream_id'] > $maxStreamId) {
        $maxStreamId = $item['stream_id'];
        $maxTotalKm = $item['total_km'];
    }
}

// Total_km auf zwei Nachkommastellen runden
$maxTotalKmRounded = round($maxTotalKm, 2);

// Anzeige in Ihrer index.php
echo "<div class='container'>
        <div class='header'>Spriiit Preise</div>
        <div class='additional-info' id='image-with-space'>
            <img src='img/km.png' width='30px'> 
        </div>
        <div class='additional-info' id='gesamtlnge-value'>$maxTotalKmRounded km</div>
        <div class='additional-info' id='image-with-space'> 
            <img src='img/kmh.png' width='30px'>
        </div>
        <div class='additional-info' id='speed-kmh'>" . round($speed_kmh, 2) . " km/h</div>";
} else {
    // Fehlermeldung anzeigen, wenn die Datei nicht gelesen werden konnte
    echo "Fehler beim Lesen der JSON-Datei.";
}

            // Funktion zur Berechnung der Entfernung zwischen zwei Punkten
            function berechneEntfernung($lat1, $lon1, $lat2, $lon2) {
                $earthRadius = 6371; // Radius der Erde in Kilometern

                $deltaLat = deg2rad($lat2 - $lat1);
                $deltaLon = deg2rad($lon2 - $lon1);

                $a = sin($deltaLat / 2) * sin($deltaLat / 2) +
                     cos(deg2rad($lat1)) * cos(deg2rad($lat2)) *
                     sin($deltaLon / 2) * sin($deltaLon / 2);
                $c = 2 * atan2(sqrt($a), sqrt(1 - $a));

                $distance = $earthRadius * $c; // Entfernung in Kilometern

                return $distance;
            }

            require_once('config/config.php');

            $conn = new mysqli($hostname, $username, $password, $database);
            if ($conn->connect_error) {
                die("Connection failed: " . $conn->connect_error);
            }
            $sql = "SELECT * FROM Standorte ORDER BY timestamp DESC LIMIT 1";
            $result = $conn->query($sql);
            if ($result->num_rows > 0) {
                $row = $result->fetch_assoc();
                $currentLat = $row['latitude'];
                $currentLon = $row['longitude'];
            }

                // Ausgabe des verwendeten Standorts in der Konsole
                //echo "Verwendeter Standort - Breitengrad: $currentLat, Lngengrad: $currentLon\n";

            // Laden der Tankstelleninformationen aus der JSON-Datei
            $json_data = file_get_contents('tankerkoenig_data.json');
            $stations = json_decode($json_data, true);

            // berprfen, ob mindestens eine Tankstelle vorhanden ist
            if (!empty($stations)) {
                // Berechnung der Entfernungen zu den Tankstellen und Hinzufgen zur Station-Array
                foreach ($stations as &$station) {
                    $stationLat = $station['lat'];
                    $stationLon = $station['lng'];
                    $station['distance'] = berechneEntfernung($currentLat, $currentLon, $stationLat, $stationLon);
                }
        
                // Sortieren der Tankstellen nach Entfernung
                usort($stations, function($a, $b) {
                    return $a['distance'] - $b['distance'];
                });

                // Ausgabe der Tankstelleninformationen
                echo "<div class='fuel-type'><div class='additional-info-fuel' id='fuel-type1'>Tankstellen:</div></div><br><br><br>";
    
                // Variable fr die Anzahl der hinzugefgten Tankstellen
                $tankstellen_count = 0;

                // Durchlaufen der Tankstellen
                foreach ($stations as $station) {
                    // berprfen, ob bereits drei Tankstellen hinzugefgt wurden
                    if ($tankstellen_count >= 3) {
                        break; // Schleife abbrechen, wenn drei Tankstellen hinzugefgt wurden
                    }
                    $name = $station['name'];
                    $dieselPrice = isset($station['diesel']) ? $station['diesel'] : 'N/A';
                    $e5Price = isset($station['e5']) ? $station['e5'] : 'N/A';
                    $e10Price = isset($station['e10']) ? $station['e10'] : 'N/A';
                    $open = isset($station['isOpen']) ? $station['isOpen'] : false;
                    $id = isset($station['id']) ? $station['id'] : 'N/A';
                    $distance = isset($station['dist']) ? (float)($station['dist']) : 'N/A';
                    $details = isset($station['details']) ? $station['details'] : [];
                    $openingTimes = isset($details['station']['openingTimes']) ? $details['station']['openingTimes'] : [];
                    $status = ($open) ? 'geffnet' : 'geschlossen';
                            
            
                    // Name der Tankstelle und Status
                    echo "<div class='station'>";
                    echo "<div class='station-info'>";
                    echo "<div class='station-name'>$name</div>";
                    echo "<div class='status'>Status: $status</div>";
                    echo "<div class='distance'>Entfernung: $distance km</div>";
                    echo "</div>";

                    // ffnungszeiten
                    echo "<div class='opening-hours'>";
                    echo "<div class='label'>ffnungszeiten:</div>";
                    echo "<div class='times'>";
                    foreach ($openingTimes as $openingTime) {
                        $startTime = substr($openingTime['start'], 0, 5); // Extrahiere die ersten 5 Zeichen der Startzeit
                        $endTime = substr($openingTime['end'], 0, 5); // Extrahiere die ersten 5 Zeichen der Endzeit
            
                        // Krze die Wochentage
                        $weekdays = str_replace(array('Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag'), array('Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'), $openingTime['text']);
            
                        echo $weekdays . ': ' . $startTime . ' - ' . $endTime . '<br>';
                    }
                    echo "</div>";
                    echo "</div>";

                    // Kraftstoffpreise
                    echo "<div class='prices'>";
                    echo "<div class='price'><span class='label diesel'>Diesel:</span><span class='diesel'>$dieselPrice </span></div>";
                    echo "<div class='price'><span class='label e5'>E5:</span><span class='e5'>$e5Price </span></div>";
                    echo "<div class='price'><span class='label e10'>E10:</span><span class='e10'>$e10Price </span></div>";
                    echo "</div>";
                    echo "</div>"; 

                    $tankstellen_count++; // Zhlvariable erhhen
                }
            
                if ($tankstellen_count == 0) {
                    echo "Keine Tankstellen gefunden.<br><br>";
                }
            } else {
                echo "Keine Tankstellen gefunden.<br><br>";
            }

            // Datenbankverbindung schlieen
            $conn->close();
            ?>

        <div id="map"></div>
        <script>
<?php
    require_once('config/config.php');
    $conn = new mysqli($hostname, $username, $password, $database);

    // berprfen, ob die Verbindung erfolgreich hergestellt wurde
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    // Hier PHP-Code einfgen
    $sql = "SELECT MAX(stream_id) AS max_stream_id FROM Standorte";
    $result = $conn->query($sql);
    $row = $result->fetch_assoc();
    $maxStreamID = $row['max_stream_id'];

    // Alle Eintrge mit der hchsten Stream-ID abrufen
    $sql = "SELECT * FROM Standorte WHERE stream_id = $maxStreamID";
    $result = $conn->query($sql);

    // Ausgabe der Daten in der Konsole
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $routeData[] = $row;
            $stream = $row['stream_id'];
            $lat = $row['latitude'];
            $lng = $row['longitude'];
            $time = $row['timestamp'];
            // Ausgabe in der Konsole
            //echo "console.log('Stream-Id: $stream, Latitude: $lat, Longitude: $lng, Zeitpunkt: $time');";
            echo "console.log('Daten: $routeData');";
        }
    } else {
        echo "Keine Eintrge gefunden.";
    }

    $sql = "SELECT * FROM Standorte WHERE stream_id = $maxStreamID ORDER BY timestamp ASC LIMIT 1";
    $result = $conn->query($sql);

    // Wenn ein Startpunkt gefunden wurde, fge ihn als ersten Punkt in die Route-Daten ein
    if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    array_unshift($routeData, $row);
} else {
echo "Keinen Startpunkt gefunden.";
}
    $routeDataJSON = json_encode($routeData);

     // Abrufen der aktuellen Koordinaten aus der Datenbank
    $sql = "SELECT latitude, longitude FROM Standorte ORDER BY timestamp DESC LIMIT 1";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        $latitude = $row['latitude'];
        $longitude = $row['longitude'];
    } else {
        // Setzen Sie Standardkoordinaten, falls keine Daten gefunden wurden
        $latitude = 0;
        $longitude = 0;
    }
?>

try {
var map = L.map('map').setView([<?php echo $latitude; ?>, <?php echo $longitude; ?>], 13);

L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

var blueIcon = L.icon({
iconUrl: 'img/flag-icon.png', // Hier den Pfad zum blauen Icon einfgen
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [41, 41]
});

// Marker fr den Startpunkt (Standort von rtirl.com)
L.marker([<?php echo $row['latitude']; ?>, <?php echo $row['longitude']; ?>], {icon: blueIcon}).addTo(map) // Blaues Fhnchen fr den Startpunkt
.bindPopup('Startpunkt');

<?php
// Laden der Tankstelleninformationen aus der JSON-Datei
$json_data = file_get_contents('tankerkoenig_data.json');
$stations = json_decode($json_data, true);

// berprfen, ob die Tankstellenkoordinaten korrekt geladen wurden
if (!empty($stations)) {
    // Hier knnen Sie die Koordinaten laden und verarbeiten
    foreach ($stations as $station) {
        $latitude = isset($station['lat']) ? floatval($station['lat']) : null;
        $longitude = isset($station['lng']) ? floatval($station['lng']) : null;
        
        // berprfen, ob die Koordinaten gltig sind
        if ($latitude !== null && $longitude !== null) {
            // Hier knnen Sie die Koordinaten verwenden
            // Fgen Sie sie beispielsweise zu einem Array hinzu, das dann in JavaScript verwendet werden kann
        } else {
            // Fehlerbehandlung fr ungltige Koordinaten
            echo "Ungltige Koordinaten gefunden fr Tankstelle: " . $station['name'] . "<br>";
        }
    }
} else {
    // Fehlerbehandlung fr leere oder fehlerhafte JSON-Datei
    echo "Fehler beim Laden der Tankstelleninformationen aus der JSON-Datei.<br>";
}
?>

// Tankstellen hinzufgen
var tankstellen = <?php echo json_encode($stations); ?>;

// berprfen, ob tankstellen ein Array ist
if (Array.isArray(tankstellen)) {
    // Durchlaufen der Tankstellen
    tankstellen.forEach(function(tankstelle) {
        // berprfen, ob tankstelle gltige Koordinaten hat
        if (tankstelle.hasOwnProperty('lat') && tankstelle.hasOwnProperty('lng')) {
            var lat = parseFloat(tankstelle['lat']);
            var lng = parseFloat(tankstelle['lng']);

            // berprfen, ob lat und lng gltig sind
            if (!isNaN(lat) && !isNaN(lng)) {
                var latlng = [lat, lng];

                // Benutzerdefiniertes Icon mit gewnschter Farbe erstellen
                var customIcon = L.icon({
                    iconUrl: 'img/red-icon.png',
                    iconSize: [25, 41],
                    iconAnchor: [12, 41],
                    popupAnchor: [1, -34],
                    shadowSize: [41, 41]
                });

                // Marker zur Karte hinzufgen
                L.marker(latlng, { icon: customIcon }).addTo(map)
                    .bindPopup('<b>' + tankstelle['name']);
            } else {
                console.error('Ungltige Koordinaten fr Tankstelle:', tankstelle['name']);
            }
        } else {
            console.error('Tankstellenobjekt hat keine gltigen Koordinaten:', tankstelle);
        }
    });
} else {
    console.error('Tankstellen-Daten sind kein Array.');
}




// Route-Daten als JavaScript-Variable definieren
var routeData = <?php echo $routeDataJSON; ?>;
console.log(routeData); // Konsolenausgabe der Route-Daten zur berprfung
var totalDistance = 0;

// Linie zwischen den Punkten zeichnen
var polylinePoints = [];
var lastPoint = routeData[routeData.length - 1];
routeData.forEach(function(waypoint) {
var latlng = [waypoint['latitude'], waypoint['longitude']];
polylinePoints.push(latlng); // Koordinaten zur Linie hinzufgen
if (waypoint === lastPoint) {
    // Letzten Punkt mit schwarzem Icon markieren
    var blackIcon = L.icon({
        iconUrl: 'img/black-icon.png',
        iconSize: [25, 41],
        iconAnchor: [12, 41],
        popupAnchor: [1, -34],
        shadowSize: [41, 41]
    });

    L.marker(latlng, { icon: blackIcon }).addTo(map)
        .bindPopup('Stream-Id: ' + waypoint['stream_id'] + ', Zeitpunkt: ' + waypoint['timestamp']);
}
});

// Funktion zur Berechnung der Entfernung zwischen zwei Punkten
function calculateDistance(lat1, lon1, lat2, lon2) {
var earthRadius = 6371; // Radius der Erde in Kilometern
var deltaLat = deg2rad(lat2 - lat1);
var deltaLon = deg2rad(lon2 - lon1);
var a = Math.sin(deltaLat / 2) * Math.sin(deltaLat / 2) +
        Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
        Math.sin(deltaLon / 2) * Math.sin(deltaLon / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var distance = earthRadius * c; // Entfernung in Kilometern
return distance;
}

// Funktion zum Konvertieren von Grad in Bogenma
function deg2rad(deg) {
return deg * (Math.PI / 180);
}

// Linie auf Karte hinzufgen
L.polyline(polylinePoints, { color: 'red' }).addTo(map);



} catch (error) {
// Fehlerbehandlung: Fehlermeldung ausgeben
console.error('Ein Fehler ist aufgetreten:', error);
console.log(routeData);
}
</script>
    </div>
   
</body>
</html>

Function Calls

None

Variables

None

Stats

MD5 8ab435015d92b711d1d5cefcdd753d3d
Eval Count 0
Decode Time 73 ms