|
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>COVID-19 Data Prediction</title> |
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> |
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.css" /> |
|
</head> |
|
<body> |
|
<div class="container mt-5"> |
|
<h1 class="mb-4">COVID-19 Data Prediction</h1> |
|
<p>Enter the text to predict:</p> |
|
<input type="text" id="textInput" class="form-control mb-3" placeholder="Text to predict"> |
|
<button id="predictBtn" class="btn btn-primary">Predict</button> |
|
</div> |
|
<div class="container mt-4" id="resultContainer" style="display: none;"> |
|
<h2>Prediction Result</h2> |
|
<table class="table table-bordered"> |
|
<thead> |
|
<tr> |
|
<th>Key</th> |
|
<th>Value</th> |
|
</tr> |
|
</thead> |
|
<tbody id="predictionTableBody"> |
|
</tbody> |
|
</table> |
|
<button id="showMapBtn" class="btn btn-primary">Show Map</button> |
|
<div id="map" class="mt-3" style="width: 100%; height: 400px;"></div> |
|
</div> |
|
|
|
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> |
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.js"></script> |
|
<script> |
|
$(document).ready(function() { |
|
var map = null; |
|
var predictionResult = null; |
|
|
|
$("#predictBtn").click(function() { |
|
var inputText = $("#textInput").val(); |
|
var apiUrl = "https://docfile-covid-19.hf.space/run/predict"; |
|
var requestBody = { |
|
data: [inputText] |
|
}; |
|
|
|
$.ajax({ |
|
type: "POST", |
|
url: apiUrl, |
|
headers: { "Content-Type": "application/json" }, |
|
data: JSON.stringify(requestBody), |
|
success: function(response) { |
|
predictionResult = response.data[0]; |
|
var translationMap = { |
|
"country": "Pays", |
|
"confirmed": "Confirmé", |
|
"active": "Actif", |
|
"deaths": "Décès", |
|
"recovered": "Guéris", |
|
"latitude": "Latitude", |
|
"longitude": "Longitude" |
|
|
|
}; |
|
|
|
var predictionTable = ""; |
|
|
|
for (var key in predictionResult) { |
|
var translatedKey = translationMap[key] || key; |
|
var value = predictionResult[key] === null ? "Aucun" : predictionResult[key]; |
|
predictionTable += "<tr><td>" + translatedKey + "</td><td>" + value + "</td></tr>"; |
|
} |
|
|
|
$("#predictionTableBody").html(predictionTable); |
|
$("#resultContainer").show(); |
|
}, |
|
error: function(error) { |
|
console.error("Prediction error:", error); |
|
} |
|
}); |
|
}); |
|
|
|
$("#showMapBtn").click(function() { |
|
if (map === null && predictionResult !== null) { |
|
var latitude = parseFloat(predictionResult.latitude); |
|
var longitude = parseFloat(predictionResult.longitude); |
|
|
|
map = L.map('map').setView([latitude, longitude], 10); |
|
|
|
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { |
|
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' |
|
}).addTo(map); |
|
|
|
L.marker([latitude, longitude]).addTo(map) |
|
.bindPopup('Latitude: ' + latitude + '<br>Longitude: ' + longitude) |
|
.openPopup(); |
|
} |
|
}); |
|
}); |
|
</script> |
|
</body> |
|
</html> |
|
|