#!/bin/bash
# usage:
#   zipgmfkachelwahl karte.zip karte.gmf auswahlbereich.ovl bitmap-extension
#
# kacheln selektiv aus einem ZIP-Kartenarchiv in eine Glopus-Karte karte.gmf
# zusammenfassen
#
# die geografischen Bereiche werden durch Flchen bzw. eingrenzende Polygone (auch mehrere)
# im ASCII-OVL-Format gekennzeichnet (Geogrid-Overlay-Format, evtl. mit GPSBabel und csv2ovl konvertieren)
#
# bitmap-extension z.B. bmp, jpg oder gif

if [ $# -ne 4 ]; then
  echo "Syntax:"
  echo "zipgmfkachelwahl karte.zip karte.gmf auswahlbereich.ovl bitmap-extension"
  exit
fi

hash unzip

sourcemap=$1
destname=$2
selection=$3
bitmapext=$4

mkdir "$destname.kacheln"

unzip -p "$sourcemap" \*.kal | kal2selection "$selection" > "$destname.kacheln/selection-names"

cat "$destname.kacheln/selection-names" | xargs -I '{}' unzip -j -n "$sourcemap" -d "$destname.kacheln" '{}'
sed s/.$bitmapext/.kal/g "$destname.kacheln/selection-names"  | xargs -I '{}' unzip -j -n "$sourcemap" -d "$destname.kacheln" '{}'

# evtl spter, wenn kal-namen herausgefiltert werden
# kal2mapname < "$destname/selection-names" | unzip -j -n "$sourcemap" -@ -d "$destname"

bash -c "cd \"$destname.kacheln\" ; kal2index ; GlopusMapFile.exe"
mv "$destname.kacheln/00index.kmz" "$destname-index.kmz"
mv "$destname.kacheln/out.gmf" "$destname"
rm -r "$destname.kacheln"
