Beispiel #1
0
function geobox_maps($param, $coords_param)
{
    global $GeoBoxDefaultFormat, $GeoBoxLinks;
    $c = geobox_parse_coords($coords_param);
    if (empty($c['result'])) {
        return "[Invalid \"{$coords_param}\"]";
    }
    $params = geobox_parse_params($param);
    $cformat = $params['format'];
    if (!empty($params['azimuth']) || !empty($params['distance'])) {
        if (is_numeric($params['azimuth']) && is_numeric($params['distance'])) {
            $c = geobox_projection($c[0], $c[1], $params['azimuth'], $params['distance']);
        } else {
            return "[Invalid azimuth \"{$params['azimuth']}\" or distance \"{$params['distance']}\"]";
        }
    }
    $c = geobox_convert_coords($c);
    if (empty($cformat)) {
        $cformat = $GeoBoxDefaultFormat;
    }
    if (strpos($cformat, "s") !== false) {
        $COORDS = geobox_build_link('$NSig$Ndi°$Nmi\'$Ns" $ESig$Edi°$Emi\'$Es"', $c);
        // DMS
    } else {
        if (strpos($cformat, "m") !== false) {
            $COORDS = geobox_build_link('$NSig$Ndi°$Nm\' $ESig$Edi°$Em\'', $c);
            // DM
        } else {
            $COORDS = geobox_build_link('$NSig$Nd° $ESig$Ed°', $c);
            //
        }
    }
    $result = "{$COORDS}";
    if (is_array($GeoBoxLinks) && !empty($GeoBoxLinks)) {
        $result .= " - ";
        foreach ($GeoBoxLinks as $t => $l) {
            $l = geobox_build_link($l, $c);
            $result .= " [[{$l} | {$t}]]";
        }
    }
    return $result;
}
$r[] = "50.5906+7,14.3815,PRE";
$c[] = "50°35.4' 14°22'";
$r[] = "50.59,14.36+7,PRE";
$c[] = "50.3°35.4'44\" 14.1°22'22\"";
$r[] = "50.902+,14.4727+8,PRE";
$c[] = "50.3°35.4'44\"; 14.1°22'22\"";
$r[] = "50.902+,14.4727+8,PRE";
$c[] = "N 50.3°35.4'44'' E14.1°22'22''";
$r[] = "50.902+,14.4727+8,PRE";
$c[] = "N 50.3°35.4'44'', E14.1°22'22''";
$r[] = "50.902+,14.4727+8,PRE";
$c[] = " 50.3°35.4'44''N 14.1°22'22''W";
$r[] = "50.902+,-14.4727+8,POST";
$c[] = "50.3°35.4'44''N, 14.1°22'22''W";
$r[] = "50.902+,-14.4727+8,POST";
$c[] = "50.3°35.4'44''N ; 14.1°22'22''W";
$r[] = "50.902+,-14.4727+8,POST";
foreach ($c as $coord) {
    echo "<div>Str: \"{$coord}\n";
    $res = geobox_parse_coords($coord);
    $resstr = "{$res[0]},{$res[1]},{$res['result']}";
    echo "  ->  [{$resstr}] </div>\n";
    $rx = array_shift($r);
    if (!preg_match("/^{$rx}\$/", $resstr)) {
        echo "ERROR: '{$resstr}' not match to: {$rx}\n";
    }
}
?>
</body>
</html>