unfallkarte/statistics/kreis_details.php

356 lines
10 KiB
PHP
Raw Normal View History

2023-10-09 19:14:10 +02:00
<?php
require_once("../config.php");
2023-10-09 20:46:26 +02:00
require_once("../lib/attributes.php");
2023-10-10 18:45:24 +02:00
require_once("functions.php");
2023-10-09 19:14:10 +02:00
$numLand=5; // NRW
$numRegbez=(isset($_GET['regbez'])) ? (int)$_GET['regbez'] : 1;
$numKreis=(isset($_GET['kreis'])) ? (int)$_GET['kreis'] : 1;
2023-10-11 13:13:53 +02:00
2023-10-10 18:45:24 +02:00
$numJahr=$numLatestYear;
2023-10-11 13:13:53 +02:00
$strName = "xxxx";
2023-10-09 19:14:10 +02:00
// Name, Population und Fläche der Gemeinde
2023-10-11 13:13:53 +02:00
$result= $db->prepare("SELECT sum(Flaeche) as Flaeche, sum(Einwohner) as Einwohner, UREGBEZ, UKREIS
FROM community WHERE ULAND=:land AND UREGBEZ=:regbez AND UKREIS=:kreis");
2023-10-09 19:14:10 +02:00
$result->bindParam(":land",$numLand);
$result->bindParam(":regbez",$numRegbez);
$result->bindParam(":kreis",$numKreis);
$result->execute();
if ($row = $result->fetch(PDO::FETCH_ASSOC)) {
2023-10-11 13:13:53 +02:00
$numFlaeche=round($row['Flaeche'],1);
2023-10-09 19:14:10 +02:00
$numPopulation=$row['Einwohner'];
2023-10-10 11:04:06 +02:00
$numRegbez=$row['UREGBEZ'];
$numKreis=$row['UKREIS'];
} else {exit;}
2023-10-09 19:14:10 +02:00
2023-10-11 13:13:53 +02:00
$result=$db->query("SELECT district,title FROM district WHERE UREGBEZ=$numRegbez AND UKREIS=$numKreis AND ULAND=$numLand");
if ($row = $result->fetch(PDO::FETCH_ASSOC)){
$strName=$row['title'];
$strDistrict=$row['district'];
}
$strLocation=" AND ULAND=$numLand AND UREGBEZ=$numRegbez AND UKREIS=$numKreis ";
2023-10-10 11:04:06 +02:00
$resultUnfallzahlen = get_unfallzahlen($numJahr,$strLocation);
$resultUnfallart = get_unfallart($numJahr,$strLocation);
$resultUnfalltyp = get_unfalltyp($numJahr,$strLocation);
$resultBeteiligte = get_beteiligte($numJahr,$strLocation);
2023-10-10 18:45:24 +02:00
$resultVerlauf = get_verlauf($strLocation);
2023-10-10 11:04:06 +02:00
$numGesamt=0;
2023-10-09 20:46:26 +02:00
2023-10-09 19:14:10 +02:00
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Fahrrad-Unfallstatistik NRW</title>
<link rel="stylesheet" href="../css/bootstrap.min.css"/>
<script src="../js/jquery.min.js"></script>
2023-10-11 13:13:53 +02:00
<script src="../js/bootstrap.min.js"></script>
2023-10-10 18:45:24 +02:00
<script src="../js/highcharts.js"></script>
2023-10-09 19:14:10 +02:00
<style>
.rechts {text-align:right;background-color:#eee;}
.l {border-left: 1px solid black; }
</style>
</head>
<body>
2023-10-11 13:13:53 +02:00
<?php include("navbar.php"); ?>
2023-10-09 19:14:10 +02:00
<div class="container" style="margin-top:4em;">
2023-10-10 20:31:22 +02:00
<h1>Fahrradunfälle in <?=$strName?></h2>
2023-10-10 18:45:24 +02:00
<p>Einwohnerzahl: <?=$numPopulation?>&nbsp;&nbsp; Fläche: <?=$numFlaeche?> km<sup>2</sup></p>
2023-10-11 13:13:53 +02:00
<p><a class='btn btn-primary' href="../index.php?d=<?=$strDistrict?>">Zur Unfallkarte</a></p>
2023-10-10 18:45:24 +02:00
<!-- Unfallverlauf -->
<div class="row">
<div class="col-5">
2023-10-10 20:31:22 +02:00
<h4>Unfallverlauf von <?=$numLatestYear?> bis <?=$numStartYear?></h4>
2023-10-10 18:45:24 +02:00
<table class='table table-sm'>
<tr><th></th><th>2022</th><th>2021</th><th>2020</th><th>2019</th></tr>
<tr><td><?= $arrCategory[1]?></td><?= get_row($resultVerlauf,1) ?></tr>
<tr><td><?= $arrCategory[2]?></td><?= get_row($resultVerlauf,2) ?></tr>
<tr><td><?= $arrCategory[3]?></td><?= get_row($resultVerlauf,3) ?></tr>
<tr><th>Gesamt</th><?= get_row($resultVerlauf,0) ?></tr>
</table>
</div>
<div class="col-7">
<div id="c_unfallverlauf"></div>
</div>
</div>
2023-10-10 11:37:55 +02:00
<!-- Unfallzahlen -->
2023-10-09 20:46:26 +02:00
<div class="row">
2023-10-10 18:45:24 +02:00
<div class="col-5">
2023-10-10 20:29:18 +02:00
<h4>Unfallzahlen <?=$numJahr?></h4>
2023-10-09 20:46:26 +02:00
<table class="table table-sm">
2023-10-10 11:04:06 +02:00
<?php
//DEBUG echo "<pre>"; print_r($resultUnfallzahlen);echo "</pre>";
$numGesamt=0;
foreach ($resultUnfallzahlen as $row) {
echo "<tr><td>".$arrCategory[$row['UKATEGORIE']]."</td><td>".$row['anz']."</td></tr>\n";
$numGesamt+=$row['anz'];
}
?>
2023-10-09 20:46:26 +02:00
<tr><th>Gesamt</th><td><strong><?=$numGesamt?></strong></td></tr>
</table>
2023-10-10 11:37:55 +02:00
<table class="table table-sm">
2023-10-09 20:46:26 +02:00
<tr><th>Quote pro Tausend Einwohner</th><td><?= round($numGesamt/$numPopulation*1000,2) ?></td></tr>
<tr><th>Quote pro Fläche</th><td><?= round($numGesamt/$numFlaeche,1) ?> /km<sup>2</sup></td></tr>
</table>
</div>
2023-10-10 12:23:12 +02:00
<div class="col-7">
2023-10-10 11:37:55 +02:00
<div id="c_unfallzahlen"></div>
</div>
2023-10-09 20:46:26 +02:00
</div>
2023-10-10 11:37:55 +02:00
<!-- Unfallbeteilgte -->
2023-10-09 20:46:26 +02:00
<div class="row">
<div class="col-5">
<h4>Unfallbeteiligte</h4>
2023-10-10 11:04:06 +02:00
<table class='table table-sm'>
2023-10-09 20:46:26 +02:00
<?php
2023-10-10 11:04:06 +02:00
// DEBUG: echo "<pre>"; print_r($resultBeteiligte);echo "</pre>";
foreach ($resultBeteiligte as $key => $numCount) {
echo "<tr><td>".$arrBeteiligte[$key]."</td><td>".$numCount."</td></tr>\n";
}
?>
</table>
2023-10-09 20:46:26 +02:00
</div>
2023-10-10 12:22:16 +02:00
<div class="col-7">
<div id="c_unfallbeteiligte"></div>
</div>
2023-10-09 20:46:26 +02:00
</div>
2023-10-10 11:54:57 +02:00
<!-- Unfalltyp -->
2023-10-09 20:46:26 +02:00
<div class="row">
<div class="col-5">
<h4>Unfalltyp</h4>
2023-10-10 11:04:06 +02:00
<table class='table table-sm'>
2023-10-09 20:46:26 +02:00
<?php
2023-10-10 11:04:06 +02:00
foreach ($resultUnfalltyp as $row) {
echo "<tr><td>".$arrUnfalltyp[$row['UTYP1']]."</td><td>".$row['anz']."</td></tr>\n";
}
2023-10-09 20:46:26 +02:00
?>
2023-10-10 11:04:06 +02:00
</table>
2023-10-09 20:46:26 +02:00
</div>
2023-10-10 11:54:57 +02:00
<div class="col-7">
<div id="c_unfalltyp"></div>
</div>
2023-10-09 20:46:26 +02:00
</div>
2023-10-10 11:37:55 +02:00
<!-- Unfallarten -->
2023-10-09 20:46:26 +02:00
<div class="row">
<div class="col-5">
<h4>Unfallart</h4>
2023-10-10 11:04:06 +02:00
<table class='table table-sm'>
2023-10-09 20:46:26 +02:00
<?php
2023-10-10 11:04:06 +02:00
foreach ($resultUnfallart as $row) {
echo "<tr><td>".$arrUnfallart[$row['UART']]."</td><td>".$row['anz']."</td></tr>\n";
}
?>
</table>
2023-10-09 20:46:26 +02:00
</div>
2023-10-10 11:54:57 +02:00
<div class="col-7">
<div id="c_unfallarten"></div>
</div>
2023-10-09 20:46:26 +02:00
</div>
2023-10-09 19:14:10 +02:00
</div>
2023-10-10 11:37:55 +02:00
</body>
<script>
Highcharts.chart('c_unfallzahlen', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: 'Unfallzahlen',
2023-10-10 11:54:57 +02:00
align: 'center'
2023-10-10 11:37:55 +02:00
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
accessibility: {
point: {
valueSuffix: '%'
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f} %'
}
}
},
series: [{
name: 'Unfallzahlen',
colorByPoint: true,
2023-10-10 11:54:57 +02:00
data: <?= get_series($resultUnfallzahlen,$arrCategory,"UKATEGORIE") ?>
}]
});
Highcharts.chart('c_unfallarten', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: 'Unfallarten',
align: 'center'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
accessibility: {
point: {
valueSuffix: '%'
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f} %'
}
}
},
series: [{
name: 'Unfallarten',
colorByPoint: true,
data: <?= get_series($resultUnfallart,$arrUnfallart,"UART") ?>
2023-10-10 11:37:55 +02:00
}]
});
2023-10-10 11:54:57 +02:00
Highcharts.chart('c_unfalltyp', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
2023-10-10 12:22:16 +02:00
text: 'Unfalltypen',
2023-10-10 11:54:57 +02:00
align: 'center'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
accessibility: {
point: {
valueSuffix: '%'
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f} %'
}
}
},
series: [{
name: 'Unfallarten',
colorByPoint: true,
data: <?= get_series($resultUnfalltyp,$arrUnfalltyp,"UTYP1") ?>
}]
});
2023-10-10 12:22:16 +02:00
Highcharts.chart('c_unfallbeteiligte', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: 'Unfallbeteiligte',
align: 'center'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
accessibility: {
point: {
valueSuffix: '%'
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f} %'
}
}
},
series: [{
name: 'Unfallarten',
colorByPoint: true,
data: <?= get_series_beteiligte($resultBeteiligte,$arrBeteiligte) ?>
}]
});
2023-10-10 18:45:24 +02:00
Highcharts.chart('c_unfallverlauf', {
chart: {
type: 'column'
},
title: {
text: 'Verlauf der Fahrradunfälle',
align: 'center'
},
xAxis: {
categories: ['2022','2021','2020','2019']
},
yAxis: {
min: 0,
title: {
text: 'Jahr'
},
stackLabels: {
enabled: true
}
},
legend: {
align: 'left',
2023-10-11 13:13:53 +02:00
x: 400,
2023-10-10 18:45:24 +02:00
verticalAlign: 'top',
y: 30,
floating: true,
backgroundColor:
Highcharts.defaultOptions.legend.backgroundColor || 'white',
borderColor: '#CCC',
borderWidth: 1,
shadow: false
},
tooltip: {
headerFormat: '<b>{point.x}</b><br/>',
pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
},
plotOptions: {
column: {
stacking: 'normal',
dataLabels: {
enabled: true
}
}
},
series: <?=get_series_verlauf($resultVerlauf,$arrCategory)?>
});
2023-10-10 11:37:55 +02:00
</script>
2023-10-09 19:14:10 +02:00
</html>