#!/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"