Add an exit for the case 2 or more than 3 commans exist in grid

pull/2425/head
phl0 2023-08-23 14:48:49 +02:00
rodzic 77edb72d2c
commit 61e2461646
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 48EA1E640798CA9A
1 zmienionych plików z 30 dodań i 26 usunięć

Wyświetl plik

@ -164,34 +164,38 @@ function get_bearing($lat1, $lon1, $lat2, $lon2) {
}
function qra2latlong($strQRA) {
if (substr_count($strQRA, ',') == 3) {
// Handle grid corners
$grids = explode(',', $strQRA);
$coords = array(0, 0);
for($i=0; $i<4; $i++) {
$cornercoords[$i] = qra2latlong($grids[$i]);
$coords[0] += $cornercoords[$i][0];
$coords[1] += $cornercoords[$i][1];
}
return array (round($coords[0]/4), round($coords[1]/4));
} else if (substr_count($strQRA, ',') == 1) {
// Handle grid lines
$grids = explode(',', $strQRA);
$coords = array(0, 0);
for($i=0; $i<2; $i++) {
$linecoords[$i] = qra2latlong($grids[$i]);
}
if ($linecoords[0][0] != $linecoords[1][0]) {
$coords[0] = round((($linecoords[0][0] + $linecoords[1][0]) / 2),1);
if (substr_count($strQRA, ',') > 0) {
if (substr_count($strQRA, ',') == 3) {
// Handle grid corners
$grids = explode(',', $strQRA);
$coords = array(0, 0);
for($i=0; $i<4; $i++) {
$cornercoords[$i] = qra2latlong($grids[$i]);
$coords[0] += $cornercoords[$i][0];
$coords[1] += $cornercoords[$i][1];
}
return array (round($coords[0]/4), round($coords[1]/4));
} else if (substr_count($strQRA, ',') == 1) {
// Handle grid lines
$grids = explode(',', $strQRA);
$coords = array(0, 0);
for($i=0; $i<2; $i++) {
$linecoords[$i] = qra2latlong($grids[$i]);
}
if ($linecoords[0][0] != $linecoords[1][0]) {
$coords[0] = round((($linecoords[0][0] + $linecoords[1][0]) / 2),1);
} else {
$coords[0] = round($linecoords[0][0],1);
}
if ($linecoords[0][1] != $linecoords[1][1]) {
$coords[1] = round(($linecoords[0][1] + $linecoords[1][1]) / 2);
} else {
$coords[1] = round($linecoords[0][1]);
}
return $coords;
} else {
$coords[0] = round($linecoords[0][0],1);
return false;
}
if ($linecoords[0][1] != $linecoords[1][1]) {
$coords[1] = round(($linecoords[0][1] + $linecoords[1][1]) / 2);
} else {
$coords[1] = round($linecoords[0][1]);
}
return $coords;
}
if ((strlen($strQRA) % 2 == 0) && (strlen($strQRA) <= 8)) { // Check if QRA is EVEN (the % 2 does that) and smaller/equal 8