#!/bin/bash ############################################################################################# # Google Earth KML to Air Navigation Pro Waypoint # v0.1a # Licensed: GPL v2 # Author: Sergi Coll (sergi at nit.cat) # # No support in your own risk. # # Changelog # # 20101207: 0.1a: very alpha pre-release # For KMZ files first rename to zip extension and unzip example.kmz.zip then execute ./kml2airnavpro doc.kml # next upload airnav__waypoint.txt with your favorite browse to iphone/ipad. # ############################################################################################# #Global Var. EXPECTED_ARGS=2 if [ $# -ne $EXPECTED_ARGS ] then echo "Usage: `basename $0` kml_file friendly_name" exit $E_BADARGS fi INPUT_FILE=$1 OUTPUT_FILE=$2.txt #Init dest.file rm -rf $OUTPUT_FILE # Header File waypoint AirNavigation Pro. Header_Items="waypoint_id waypoint_name waypoint_type waypoint_longitude waypoint_latitude waypoint_elevation waypoint_country waypoint_state waypoint_channel waypoint_frequency main_runway_orientation" for i in $Header_Items; do echo -n -e "$i\t" >>$OUTPUT_FILE; done echo >>$OUTPUT_FILE # # Processing source while read linia do if [ "$UBICACIO" = "1" ]; then match_name="" a=$linia; [[ "$a" =~ "${match_name}" ]] && waypoint_name=${linia//\} && waypoint_name=${waypoint_name//\<\/name\>}; waypoint_id=${waypoint_name:0:3}; match_coordinates=""; a=$linia; if [[ "$a" =~ "${match_coordinates}" ]]; then b=${linia//\}; b=${b//\<\/coordinates\>}; waypoint_longitude=`echo $b|cut -d ',' -f 1`; waypoint_latitude=`echo $b|cut -d ',' -f 2`; waypoint_elevation=`echo $b|cut -d ',' -f 3`; waypoint_type="1"; waypoint_country="Spain"; fi match_placemark=""; a=$linia; if [[ "$a" =~ "${match_placemark}" ]]; then if [ "$waypoint_longitude" != "" ]; then echo -e "$waypoint_id\t$waypoint_name\t$waypoint_type\t$waypoint_longitude\t$waypoint_latitude\t$waypoint_elevation\t$waypoint_country\t$waypoint_state\t$waypoint_channel\t$waypoint_frequency\t$main_runway_orientation\t$country\n" >> $OUTPUT_FILE fi unset waypoint_id waypoint_name waypoint_type waypoint_longitude waypoint_latitude waypoint_elevation waypoint_country waypoint_state waypoint_channel waypoint_frequency main_runway_orientation UBICACIO=0; fi else match_placemark=""; a=$linia; [[ "$a" =~ "${match_placemark}" ]] && UBICACIO=1 fi done < $INPUT_FILE