67 lines
1.6 KiB
Bash
67 lines
1.6 KiB
Bash
#!/bin/bash
|
|
|
|
# Nearest Position On Track
|
|
|
|
FILE=$1
|
|
LAT=$2
|
|
LON=$3
|
|
|
|
echo "
|
|
$0 track.gpx 50.12666 8.76599
|
|
|
|
Bspw
|
|
Jakobsbrunnenstraße 14: 50.12666 8.76599
|
|
Campingplatz Bürgel: 50.12582 8.77139
|
|
"
|
|
|
|
if [ "$LAT" == "" ]; then LAT=50.12582; fi
|
|
if [ "$LON" == "" ]; then LON=8.77139; fi
|
|
if [ "$FILE" == "" ]; then exit; fi
|
|
|
|
A=`perl -e '$f=$ARGV[0]; $f =~ s/,/\./; $f=int($f*100000)/100000; printf "%2.5f\n", $f' $LAT`
|
|
O=`perl -e '$f=$ARGV[0]; $f =~ s/,/\./; $f=int($f*100000)/100000; printf "%2.5f\n", $f' $LON`
|
|
echo "
|
|
Prüfe 5 Nachkommastellen LAT $A LON $O"
|
|
cat $FILE | grep -n "$A" | grep "$O"
|
|
if [ "$?" == "0" ]
|
|
then
|
|
echo "nearest point"
|
|
exit
|
|
fi
|
|
|
|
A=`perl -e '$f=$ARGV[0]; $f =~ s/,/\./; $f=int($f*10000)/10000; printf "%2.4f\n", $f' $LAT`
|
|
O=`perl -e '$f=$ARGV[0]; $f =~ s/,/\./; $f=int($f*10000)/10000; printf "%2.4f\n", $f' $LON`
|
|
echo "
|
|
Prüfe 4 Nachkommastellen LAT $A LON $O"
|
|
cat $FILE | grep -n "$A" | grep "$O"
|
|
if [ "$?" == "0" ]
|
|
then
|
|
echo "nearest point"
|
|
exit
|
|
fi
|
|
|
|
|
|
A=`perl -e '$f=$ARGV[0]; $f =~ s/,/\./; $f=int($f*1000)/1000; printf "%2.3f\n", $f' $LAT`
|
|
O=`perl -e '$f=$ARGV[0]; $f =~ s/,/\./; $f=int($f*1000)/1000; printf "%2.3f\n", $f' $LON`
|
|
echo "
|
|
Prüfe 3 Nachkommastellen LAT $A LON $O"
|
|
cat $FILE | grep -n "$A" | grep "$O"
|
|
if [ "$?" == "0" ]
|
|
then
|
|
echo "nearest point"
|
|
exit
|
|
fi
|
|
|
|
A=`perl -e '$f=$ARGV[0]; $f =~ s/,/\./; $f=int($f*100)/100; printf "%2.2f\n", $f' $LAT`
|
|
O=`perl -e '$f=$ARGV[0]; $f =~ s/,/\./; $f=int($f*100)/100; printf "%2.2f\n", $f' $LON`
|
|
echo "
|
|
Prüfe 2 Nachkommastellen LAT $A LON $O"
|
|
cat $FILE | grep -n "$A" | grep "$O"
|
|
if [ "$?" == "0" ]
|
|
then
|
|
echo "nearest point"
|
|
exit
|
|
fi
|
|
|
|
echo "nearest point is too far"
|