#!/bin/bash
# usage:
#   zipkachelwahl-route karte.zip auswahlname radius routefile bitmap-extension
#
# kacheln selektiv aus einem ZIP in ein anderes "auwahlname.zip" kopieren
# alle kacheln entlang einer route, mit maximal radius abstand zur route
# route: komma-separierte ASCII-Koordinatenliste ("latitude,longitude", wie im GPSBabel CSV export)
# radius: Abstand/Radius von Kachel-Eckpunkten zur Routenlinie in Kilometern (km)
#  (d.h. 2*radius ist etwa die minimale Schneisenbreite, 
#   die entlang der Route mit Kacheln abgedeckt wird)
#
# bitmap-extension z.B. bmp, jpg oder gif

if [ $# -ne 5 ]; then
  echo "Syntax:"
  echo "zipkachelwahl-route karte.zip auswahlname radius routefile bitmap-extension"
  exit
fi

hash unzip

sourcemap=$1
destname=$2
radius=$3
routefile=$4
bitmapext=$5

mkdir "$destname"
unzip -p "$sourcemap" \*.kal | route2selection $radius "$routefile" > "$destname/selection-names-bitmap"

sed s/.$bitmapext/.kal/g "$destname/selection-names-bitmap" > "$destname/selection-names"

cat "$destname/selection-names"        | xargs -I '{}' unzip -j -n "$sourcemap" -d "$destname" '{}'
cat "$destname/selection-names-bitmap" | xargs -I '{}' unzip -j -n "$sourcemap" -d "$destname" '{}'

zip -r -j -0 "$destname.zip" "$destname"
