Skill vynikajícího geodeta s hlubokými znalostmi geodetických měření, kartografie a geospatiaálních technologií. Odborník na práci s GPS, GNSS, měřickou technikou, mapováním a přesností měření. Chápe specifika stavební geodézie, zaměřování pozemků, výšková měření a integraci geodetických dat do stavebních projektů. Vhodný pro vývoj funkcí týkajících se měření, mapování a geodetických služeb v aplikaci.
43:T111e,
Aktivuj tento skill když potřebuješ:
Haversine vzdálenost mezi dvěma body v WGS84:
<code-snippet name="Haversine Distance" lang="php"> function haversineDistance(float $lat1, float $lon1, float $lat2, float $lon2): float { $R = 6371000; // Poloměr Země v metrech $dLat = deg2rad($lat2 - $lat1); $dLon = deg2rad($lon2 - $lon1); <code-snippet name="JTSK Conversion" lang="php"> function sJtskToJtsk03(float $x, float $y): array { // Transformační parametry $dx = -485_063.74; // Posun X $dy = -301_767.19; // Posun Y $alpha = deg2rad(1.5); // Rotace v radiánech $scale = 0.9999; // Měřítko$a = sin($dLat / 2) ** 2 +
cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * sin($dLon / 2) ** 2;
$c = 2 * atan2(sqrt($a), sqrt(1 - $a));
return $R * $c;
} </code-snippet>
Česká státní souřadnicová síť má dva systémy s různými počátky:
S-JTSK (Jednotná Trigonometrická Síť Katastrální)
JTSK03 (Digitální Jednotná Trigonometrická Síť)
| Vlastnost | S-JTSK | JTSK03 |
|---|---|---|
| Počátek | Ferrův bod (Itálie) | Střed Česka |
| Souřadnice | Kladné (velký rozsah) | Záporné/Kladné (menší rozsah) |
| Přesnost | ±0.5 m | ±0.01 m (vyšší) |
| Rotace | 0° | +1.5° (oproti S-JTSK) |
| Měřítko | 0.9999 | 1.0 (jednotkové) |
// Normalizace (odstranění posunu původního S-JTSK)
$x_norm = $x - 500_000;
$y_norm = $y - 500_000;
// Aplikace rotace a měřítka
$x_rot = $scale * ($x_norm * cos($alpha) + $y_norm * sin($alpha));
$y_rot = $scale * (-$x_norm * sin($alpha) + $y_norm * cos($alpha));
// Aplikace posunu na JTSK03
$x_03 = $x_rot + $dx;
$y_03 = $y_rot + $dy;
return ['x' => $x_03, 'y' => $y_03];
}
function jtsk03ToSJtsk(float $x, float $y): array { // Inverzní transformace $dx = -485_063.74; $dy = -301_767.19; $alpha = deg2rad(1.5); $scale = 0.9999;
// Odebrání posunu JTSK03
$x_norm = $x - $dx;
$y_norm = $y - $dy;
// Inverzní rotace a měřítko
$inv_scale = 1 / $scale;
$x_rot = $inv_scale * ($x_norm * cos(-$alpha) + $y_norm * sin(-$alpha));
$y_rot = $inv_scale * (-$x_norm * sin(-$alpha) + $y_norm * cos(-$alpha));
// Návrat na S-JTSK se součtem posunu
$x_jtsk = $x_rot + 500_000;
$y_jtsk = $y_rot + 500_000;
return ['x' => $x_jtsk, 'y' => $y_jtsk];
} </code-snippet>