#!/bin/bash
# usage:
#   kal2kmzsuperoverlay "*.kal" opacity minLodPixels maxLodPixels superoverlay.kmz
#
# Glopus-Kartenkacheln in ein GoogleEarth-Superoverlay packen
# mit Transparenzwert opacity [0..255]
# Die Kacheln werden bei einer Pixelgre (Wurzel aus Flche) 
# zwischen minLodPixels maxLodPixels dargestellt.
# Z.b. minLodPixels=500 (halbe Kachelgre), maxLodPixels=-1
# Nicht zu viele Kacheln gleichzeitig darstellen (>100), sonst strzt Google ab.
# Kacheln ausserhalb des Sichtbereiches und Zoomlevel werden nicht aktiviert.
#
# Die 4 Kalibrierpunkte sollen in den 4 Kachelecken liegen.
# In den KAL-Dateien sollen nur die Grafikdateinamen und keine Pfade stehen.
# Die Grafikdateien sollen im aktuellen Verzeichnis liegen
# Die Anfhrungszeichen im Wildcard "*.kal" sind obligatorisch

if [ $# -ne 5 ]; then
  echo 'Syntax:   kal2kmzsuperoverlay "*.kal" opacity minLodPixels maxLodPixels superoverlay.kmz'
  echo 'Beispiel: kal2kmzsuperoverlay "heimat_*.kal" 255 500 -1 heimatoverlay.kmz'
  exit
fi

wildcard=$1
opacity=$2
minLodPixels=$3
maxLodPixels=$4
kmzfile=$5

tempdir=`mktemp -d`
mkdir $tempdir/archive
mkdir $tempdir/archive/tiles

cat $wildcard | kal2kmlsuperoverlay.exe $opacity $minLodPixels $maxLodPixels tiles/ "" $tempdir/archive/tiles $tempdir/archive/doc.kml

# grafikdateinamen extrahieren
for name in $wildcard; do
	cat "$name" | grep "Bitmap =" | cut -b 10- | crrem | xargs -I '{}' cp -t $tempdir/archive/tiles '{}'
done

# KMZ-Archive packen
rm "$kmzfile"
bash -c "cd $tempdir/archive ; zip -9 -r archive.kmz doc.kml tiles"
mv $tempdir/archive/archive.kmz "$kmzfile"

rm -r $tempdir
