2022-05-29 21:40:41 +02:00
|
|
|
<?php
|
|
|
|
|
2022-06-19 16:06:01 +02:00
|
|
|
include 'vendor/autoload.php';
|
|
|
|
|
|
|
|
$client = new \GuzzleHttp\Client();
|
|
|
|
|
|
|
|
$response = $client->request('GET', 'http://www.mise.gov.it/images/exportCSV/anagrafica_impianti_attivi.csv');
|
|
|
|
file_put_contents('anagrafica_impianti_attivi.csv', $response->getBody() );
|
|
|
|
|
|
|
|
$response = $client->request('GET', 'http://www.mise.gov.it/images/exportCSV/prezzo_alle_8.csv');
|
|
|
|
file_put_contents('prezzo_alle_8.csv', $response->getBody());
|
2022-05-29 21:40:41 +02:00
|
|
|
|
|
|
|
// Header file geojson finale
|
|
|
|
$geojson = [
|
|
|
|
"type" => "FeatureCollection",
|
|
|
|
];
|
|
|
|
|
|
|
|
// Lettura 2 CSV
|
|
|
|
$csvDistributori = fopen('anagrafica_impianti_attivi.csv', 'r');
|
|
|
|
$csvPrezzi = fopen('prezzo_alle_8.csv', 'r');
|
|
|
|
|
|
|
|
|
|
|
|
// Cache prezzi per distributore
|
|
|
|
$prezzi = [];
|
|
|
|
|
|
|
|
// Salto le 2 inutili prime righe
|
|
|
|
fgetcsv($csvPrezzi);
|
|
|
|
fgetcsv($csvPrezzi);
|
|
|
|
|
|
|
|
while (($line = fgetcsv($csvPrezzi, 0, ';')) !== false) {
|
|
|
|
$idimpianto = $line[0];
|
|
|
|
$tipo = $line[1];
|
2022-05-30 19:36:00 +02:00
|
|
|
$prezzo = (float)$line[2];
|
2022-05-29 21:40:41 +02:00
|
|
|
$isSelf = (int)$line[3];
|
|
|
|
$ultimo_aggiornamento = $line[4];
|
|
|
|
|
|
|
|
$prezzi[ $idimpianto ][] = [
|
|
|
|
'tipo' => strtoupper($tipo),
|
|
|
|
'prezzo' => $prezzo,
|
|
|
|
'isSelf' => $isSelf,
|
|
|
|
'ultimo_aggiornamento' => $ultimo_aggiornamento,
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
fclose($csvPrezzi);
|
|
|
|
|
|
|
|
|
|
|
|
// Salto le 2 inutili prime righe
|
|
|
|
fgetcsv($csvDistributori);
|
|
|
|
fgetcsv($csvDistributori);
|
|
|
|
|
|
|
|
// Costruzione dati geojson
|
|
|
|
while(($line = fgetcsv($csvDistributori, 0, ';')) !== FALSE){
|
|
|
|
$idimpianto = $line[0];
|
|
|
|
$name = $line[2];
|
|
|
|
$lat = $line[8] !== 'NULL' ? $line[8] : null;
|
|
|
|
$lon = $line[9] !== 'NULL' ? $line[9] : null;
|
|
|
|
$ultimo_aggiornamento = '';
|
|
|
|
$description = [];
|
|
|
|
|
|
|
|
if (!empty($lat) && !empty($lon)) {
|
|
|
|
$description[] = '**GESTORE:**
|
|
|
|
'.$line[1].'
|
|
|
|
';
|
|
|
|
|
|
|
|
if (isset($prezzi[$idimpianto])) {
|
|
|
|
foreach ($prezzi[$idimpianto] as $idx => $prezzo) {
|
|
|
|
$description[] = '**'.$prezzo['tipo'].($prezzo['isSelf'] ? ' (self)' : '').':**
|
|
|
|
'.number_format($prezzo['prezzo'], 3, ',', '.').'
|
|
|
|
';
|
|
|
|
|
|
|
|
// Tengo lo stesso per il diverso tipo di carburante
|
|
|
|
$ultimo_aggiornamento = $prezzo['ultimo_aggiornamento'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$description[] = 'Ultimo aggiornamento: '.$ultimo_aggiornamento;
|
|
|
|
|
|
|
|
$geojson['features'][] = [
|
|
|
|
"type" => "Feature",
|
|
|
|
"properties" => [
|
|
|
|
"idImpianto" => $idimpianto,
|
|
|
|
"description" => implode("\n", $description),
|
|
|
|
"name" => $name
|
|
|
|
],
|
|
|
|
"geometry" => [
|
|
|
|
"type" => "Point",
|
|
|
|
"coordinates" => [
|
|
|
|
$lon,
|
|
|
|
$lat
|
|
|
|
]
|
|
|
|
]
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Chiusura CSV originale
|
|
|
|
fclose($csvDistributori);
|
|
|
|
|
2022-06-19 16:06:01 +02:00
|
|
|
$json_response = json_encode($geojson, JSON_PRETTY_PRINT);
|
2022-05-29 21:40:41 +02:00
|
|
|
|
|
|
|
// Salvataggio file geojson
|
2022-06-19 16:06:01 +02:00
|
|
|
if (isset($_GET['response'])) {
|
|
|
|
echo $json_response;
|
|
|
|
} else {
|
|
|
|
file_put_contents( 'data.geojson', $json_response );
|
|
|
|
}
|