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: '© <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: '© <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 |
Stats
MD5 | 8ab435015d92b711d1d5cefcdd753d3d |
Eval Count | 0 |
Decode Time | 73 ms |