GeoPHP/obdelava.php

509 lines
18 KiB
PHP
Raw Normal View History

2024-07-06 03:02:08 +02:00
<?php
// Version: 1.1
// Made by: Boris Bilc
// For learning and experimental use only
?>
2024-07-03 00:25:50 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<title>TPS1100 Convert Online</title>
<meta content="text/html" charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<style>
pre {
overflow-x: auto;
max-width: 60vw;
}
pre code {
word-wrap: normal;
white-space: pre;
}
body {
background-color: rgba(0, 0, 0, 100.0);
color: #e0e0e0;
padding: 10px;
font-family: 'Courier New', Courier, monospace;
font-size: 12pt;
}
h3 {
color: #FFDB23;
font-size: 1.3em;
}
table {
color: #E0E0E0 !important;
}
2024-07-06 03:02:08 +02:00
.meas {
2024-07-03 00:25:50 +02:00
color: #d1f200 !important;
}
2024-07-06 03:02:08 +02:00
.station {
2024-07-03 00:25:50 +02:00
color: #e00000 !important;
}
2024-07-06 03:02:08 +02:00
.orient {
2024-07-03 00:25:50 +02:00
color: #d1f200 !important;
}
2024-07-06 03:02:08 +02:00
.reference {
2024-07-03 00:25:50 +02:00
color: #c9c9c9 !important;
}
.indicator {
border: 1px solid #383737;
border-radius: 8px;
margin-left: 8px;
margin-right: 8px;
margin-bottom: -4px;
height: 16px;
width: 16px;
background-color: #4f4f4f;
display: inline-block;
}
.indicatorOn {
background-color: #d1f200;
box-shadow: 0px 0px 8px 0px #edff7b, inset 1px 10px 1px #d1f200, inset 0px -1px 10px 1px #95ac00;
}
.indicatorOff {
background-color: red;
box-shadow: 0px 0px 8px 0px #ff3131, inset 1px 10px 1px #e63a3a, inset 0px -1px 10px 1px #a80808;
}
.indicatorDisconn {
background-color: #c9c9c9;
box-shadow: 0px 0px 8px 0px #e0e0e0, inset 1px 10px 1px #c9c9c9, inset 0px -1px 10px 1px #9b9b9b;
}
</style>
</head>
<html>
<body>
<?php
use Vtiful\Kernel\Format;
// Obdelava GSI datoteke
$target_dir = "upload/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$target_dirarc = "archive/";
$target_filearc = $target_dirarc . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$datFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if (isset($_POST["submit"])) {
if ($datFileType != "gsi") {
echo "Napaka! Izberi datoteko GSI...<br>";
$uploadOk = 0;
} else {
2024-07-06 03:02:08 +02:00
echo "Branje datoteke... <b>" . basename($target_file) . "</b><br><br>";
2024-07-03 00:25:50 +02:00
$uploadOk = 1;
}
}
// // Check if file already exists
// if (file_exists($target_file)) {
// echo "Sorry, file already exists.";
// $uploadOk = 0;
// }
// // Check file size
// if ($_FILES["fileToUpload"]["size"] > 500000) {
// echo "Sorry, your file is too large.";
// $uploadOk = 0;
// }
// // Allow certain file formats
// if($datFileType != "gsi") {
// echo "Napaka! Nalozi datoteko GSI.";
// $uploadOk = 0;
// }
class ObdelavaGsi
{
// Properties
public $obdelavaTocke;
public $obdelavaZap;
2024-07-06 03:16:46 +02:00
// Funkcija za izvoz koordinat točk (GSI z kodami)
2024-07-03 00:25:50 +02:00
function izvoz_tocke($name)
{
2024-07-06 03:02:08 +02:00
$down_dir = "convert/";
$down_datime = $down_dir . basename($_FILES["fileToUpload"]["name"]);
$datnova_tip = $_POST['tipdat'];
if ($datnova_tip == "koo") {
$down_datnova = str_replace(".GSI", "_tocke.KOO", $down_datime);
} else {
$down_datnova = str_replace(".GSI", "_tocke.TXT", $down_datime);
}
$down_url = "https://gps.multibox.nohost.me/points/";
$down_daturl = $down_url . $down_datnova;
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>";
print "--------------------------------------------<br>";
// If the user file in existing directory already exist, delete it
if (file_exists($down_datnova)) {
unlink($down_datnova);
}
$this->obdelavaTocke = $name;
$file_handle = fopen($name, "rb");
$merjene = 0;
$stojisce = 0;
$kode_ok = 0;
while (!feof($file_handle)) {
$line_of_text = fgets($file_handle);
$parts = explode(' ', $line_of_text);
$word_index = substr($parts[0], 1, 2);
if ($word_index == 41) {
$kode_ok = 1;
$koda = ltrim(substr($parts[0], 8), "0");
if ($koda == 99) {
$merjene = 2;
$stojisce = 0;
} elseif ($koda >= 90) {
$merjene = 1;
$stojisce = 0;
} elseif ($koda >= 80) {
$merjene = 3;
$stojisce = 0;
} elseif ($koda < 80) {
$merjene = 0;
$stojisce = 1;
} else {
$merjene = 0;
$stojisce = 0;
}
}
if ($word_index == 11 && $merjene >= 1) {
$pointid = ltrim(substr($parts[0], 8), "0");
foreach ($parts as $datpart) {
$data_index = substr($datpart, 0, 2);
if ($data_index == 81) {
$pointE = substr($datpart, 6) / 1000;
}
if ($data_index == 82) {
$pointN = substr($datpart, 6) / 1000;
}
if ($data_index == 83) {
$pointH = substr($datpart, 6) / 1000;
}
}
if ($merjene == 1) {
2024-07-06 03:16:46 +02:00
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\r\n";
2024-07-06 03:02:08 +02:00
print $lineout . "<br>";
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
}
if ($merjene == 2) {
2024-07-06 03:16:46 +02:00
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\r\n";
2024-07-06 03:02:08 +02:00
print $lineout . "<br>";
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
}
if ($merjene == 3) {
2024-07-06 03:16:46 +02:00
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\r\n";
2024-07-06 03:02:08 +02:00
print $lineout . "<br>";
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
}
}
if ($word_index == 11 && $stojisce == 1) {
$pointid = ltrim(substr($parts[0], 8), "0");
$pointSta = 0;
foreach ($parts as $datpart) {
$data_index = substr($datpart, 0, 2);
if ($data_index == 25) {
$pointSta = 1;
}
if ($data_index == 84) {
$pointE = substr($datpart, 6) / 1000;
}
if ($data_index == 85) {
$pointN = substr($datpart, 6) / 1000;
}
if ($data_index == 86) {
$pointH = substr($datpart, 6) / 1000;
}
}
if ($pointSta == 1) {
2024-07-06 03:16:46 +02:00
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\r\n";
2024-07-06 03:02:08 +02:00
print $lineout . "<br>";
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
}
$pointSta = 0;
}
}
fclose($file_handle);
if ($kode_ok == 0) {
print "Ni podatkov... je datoteka kodirana?";
}
print "<br>";
if (!file_exists($down_datnova)) { // file does not exist
die('file not found');
} else {
print "--------------------------------------------<br>";
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>";
}
}
2024-07-06 03:16:46 +02:00
// Funkcija za izvoz koordinat točk z klasifikacijo (GSI z kodami)
2024-07-06 03:02:08 +02:00
function izvoz_tockeklas($name)
{
$down_dir = "convert/";
$down_datime = $down_dir . basename($_FILES["fileToUpload"]["name"]);
$datnova_tip = $_POST['tipdat'];
if ($datnova_tip == "koo") {
$down_datnova = str_replace(".GSI", "_tocke-klas.KOO", $down_datime);
} else {
$down_datnova = str_replace(".GSI", "_tocke-klas.TXT", $down_datime);
}
$down_url = "https://gps.multibox.nohost.me/points/";
$down_daturl = $down_url . $down_datnova;
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>";
print "--------------------------------------------<br>";
// If the user file in existing directory already exist, delete it
if (file_exists($down_datnova)) {
unlink($down_datnova);
}
2024-07-03 00:25:50 +02:00
$this->obdelavaTocke = $name;
$file_handle = fopen($name, "rb");
$merjene = 0;
$stojisce = 0;
2024-07-06 03:02:08 +02:00
$kode_ok = 0;
2024-07-03 00:25:50 +02:00
while (!feof($file_handle)) {
$line_of_text = fgets($file_handle);
$parts = explode(' ', $line_of_text);
$word_index = substr($parts[0], 1, 2);
if ($word_index == 41) {
2024-07-06 03:02:08 +02:00
$kode_ok = 1;
2024-07-03 00:25:50 +02:00
$koda = ltrim(substr($parts[0], 8), "0");
if ($koda == 99) {
$merjene = 2;
$stojisce = 0;
} elseif ($koda >= 90) {
$merjene = 1;
$stojisce = 0;
} elseif ($koda >= 80) {
$merjene = 3;
$stojisce = 0;
} elseif ($koda < 80) {
$merjene = 0;
$stojisce = 1;
} else {
$merjene = 0;
$stojisce = 0;
}
}
if ($word_index == 11 && $merjene >= 1) {
$pointid = ltrim(substr($parts[0], 8), "0");
foreach ($parts as $datpart) {
$data_index = substr($datpart, 0, 2);
if ($data_index == 81) {
$pointE = substr($datpart, 6) / 1000;
}
if ($data_index == 82) {
$pointN = substr($datpart, 6) / 1000;
}
if ($data_index == 83) {
$pointH = substr($datpart, 6) / 1000;
}
}
if ($merjene == 1) {
2024-07-06 03:16:46 +02:00
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tMEAS\r\n";
2024-07-06 03:02:08 +02:00
print '<div style="color: aqua">'. $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
2024-07-03 00:25:50 +02:00
}
if ($merjene == 2) {
2024-07-06 03:16:46 +02:00
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tREF\r\n";
2024-07-06 03:02:08 +02:00
print '<div style="color: orange">'. $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
2024-07-03 00:25:50 +02:00
}
if ($merjene == 3) {
2024-07-06 03:16:46 +02:00
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tORI\r\n";
2024-07-06 03:02:08 +02:00
print '<div style="color: lightgreen">'. $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
}
}
if ($word_index == 11 && $stojisce == 1) {
$pointid = ltrim(substr($parts[0], 8), "0");
$pointSta = 0;
foreach ($parts as $datpart) {
$data_index = substr($datpart, 0, 2);
if ($data_index == 25) {
$pointSta = 1;
}
if ($data_index == 84) {
$pointE = substr($datpart, 6) / 1000;
}
if ($data_index == 85) {
$pointN = substr($datpart, 6) / 1000;
}
if ($data_index == 86) {
$pointH = substr($datpart, 6) / 1000;
}
}
if ($pointSta == 1) {
2024-07-06 03:16:46 +02:00
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\tSTA\r\n";
2024-07-06 03:02:08 +02:00
print '<div style="color: #d1f200">'. $lineout . '</div>';
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
}
$pointSta = 0;
}
}
fclose($file_handle);
if ($kode_ok == 0) {
print "Ni podatkov... je datoteka kodirana?";
}
print "<br>";
if (!file_exists($down_datnova)) { // file does not exist
die('file not found');
} else {
print "--------------------------------------------<br>";
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>";
}
}
2024-07-06 03:16:46 +02:00
// Funkcija za izvoz koordinat točk (GSI brez kodiranja)
2024-07-06 03:02:08 +02:00
function izvoz_tockebrez($name)
{
$down_dir = "convert/";
$down_datime = $down_dir . basename($_FILES["fileToUpload"]["name"]);
$datnova_tip = $_POST['tipdat'];
if ($datnova_tip == "koo") {
$down_datnova = str_replace(".GSI", "_tocke-vse.KOO", $down_datime);
} else {
$down_datnova = str_replace(".GSI", "_tocke-vse.TXT", $down_datime);
}
$down_url = "https://gps.multibox.nohost.me/points/";
$down_daturl = $down_url . $down_datnova;
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>";
print "--------------------------------------------<br>";
// If the user file in existing directory already exist, delete it
if (file_exists($down_datnova)) {
unlink($down_datnova);
}
$this->obdelavaTocke = $name;
$file_handle = fopen($name, "rb");
$merjene = 1;
$stojisce = 0;
while (!feof($file_handle)) {
$line_of_text = fgets($file_handle);
$parts = explode(' ', $line_of_text);
$word_index = substr($parts[0], 1, 2);
$word_index2 = substr($parts[1], 1, 2);
if ($word_index2 == 25) {
$merjene = 0;
$stojisce = 1;
} else {
$merjene = 1;
$stojisce = 0;
}
if ($word_index == 11 && $merjene == 1) {
$pointid = ltrim(substr($parts[0], 8), "0");
foreach ($parts as $datpart) {
$data_index = substr($datpart, 0, 2);
if ($data_index == 81) {
$pointE = substr($datpart, 6) / 1000;
}
if ($data_index == 82) {
$pointN = substr($datpart, 6) / 1000;
}
if ($data_index == 83) {
$pointH = substr($datpart, 6) / 1000;
}
2024-07-03 00:25:50 +02:00
}
2024-07-06 03:16:46 +02:00
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\r\n";
2024-07-06 03:02:08 +02:00
print $lineout . "<br>";
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
2024-07-03 00:25:50 +02:00
}
if ($word_index == 11 && $stojisce == 1) {
$pointid = ltrim(substr($parts[0], 8), "0");
$pointSta = 0;
foreach ($parts as $datpart) {
$data_index = substr($datpart, 0, 2);
if ($data_index == 25) {
$pointSta = 1;
}
if ($data_index == 84) {
$pointE = substr($datpart, 6) / 1000;
}
if ($data_index == 85) {
$pointN = substr($datpart, 6) / 1000;
}
if ($data_index == 86) {
$pointH = substr($datpart, 6) / 1000;
}
}
if ($pointSta == 1) {
2024-07-06 03:16:46 +02:00
$lineout = $pointid . "\t" . number_format($pointE, 3, ".", "") . "\t" . number_format($pointN, 3, ".", "") . "\t" . number_format($pointH, 3, ".", "") . "\r\n";
2024-07-06 03:02:08 +02:00
print $lineout . "<br>";
file_put_contents($down_datnova, $lineout, FILE_APPEND | LOCK_EX);
2024-07-03 00:25:50 +02:00
}
$pointSta = 0;
}
}
fclose($file_handle);
print "<br>";
2024-07-06 03:02:08 +02:00
if (!file_exists($down_datnova)) { // file does not exist
die('file not found');
} else {
print "--------------------------------------------<br>";
print "Nova datoteka: " . basename($down_datnova) . " (<a href='" . $down_daturl . "' target='_blank'><b>Prenos</a>)<br>Uporabi desni-klik in izberi opcijo 'Skrani kot.../Save As...'</b><br><br>";
}
2024-07-03 00:25:50 +02:00
}
2024-07-06 03:02:08 +02:00
2024-07-03 00:25:50 +02:00
function get_name()
{
return $this->obdelavaTocke;
}
}
2024-07-06 03:02:08 +02:00
2024-07-03 00:25:50 +02:00
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Postopek je bil prekinjen.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
$datime = basename($_FILES["fileToUpload"]["name"]);
$datimenova = str_replace(".GSI", ".TXT", $datime);
//echo "Datoteka: " . htmlspecialchars($datime) . "<br>";
//echo "Nova Datoteka: " . htmlspecialchars($datimenova) . "<br><br>";
$datTocke = new ObdelavaGsi();
2024-07-06 03:02:08 +02:00
if ($_POST['obdelava'] == "tockeklas") {
$datTocke->izvoz_tockeklas($target_file);
} elseif ($_POST['obdelava'] == "tocke") {
2024-07-03 00:25:50 +02:00
$datTocke->izvoz_tocke($target_file);
2024-07-06 03:02:08 +02:00
} elseif ($_POST['obdelava'] == "tockebrez") {
$datTocke->izvoz_tockebrez($target_file);
} else {
echo "Izbrana opcija ni na voljo. Se opravičujemo.";
2024-07-03 00:25:50 +02:00
}
} else {
2024-07-06 03:02:08 +02:00
echo "Napaka!";
2024-07-03 00:25:50 +02:00
}
}
?>
</body>
</html>