#!/bin/sh

HOME=/myhome
MAPHOME=$HOME/Maps/OSM

EDITED=0 #put 1 or anything different than 0 when you set up the HOME and MAPHOME directory as wanted
if [ "$EDITED" -eq "0" ]
then
        echo "You need to set up the HOME, MAPHOME and EDITED variables. Exiting..."
        exit 1
fi

x=y=0;

if [ $# != 4 ]
then
	echo "Usage ./dl.sh <zoomlevel> <xcoord> <ycoord> <depthlevel>"
	echo "---Example--- :  ./dl 7 62 44 10"
	exit 1
fi

if [ ! -d $MAPHOME ]
then
        mkdir -p $MAPHOME
fi
cd $MAPHOME
if [ ! -d $1/$2 ]
then
	mkdir -p $1/$2
fi
cd $1/$2
wget http://a.tile.openstreetmap.org/$1/$2/$3.png  > /dev/null 2>&1
cd $MAPHOME

zinit=$(($1 + 1 ))
xinit=$((2*$2))
xend=$((2*$2 + 1))
yinit=$((2*$3))
yend=$((2*$3 + 1))
zend=$4

echo "Starting..."

zdyn=$zinit
xinitdyn=$xinit
xenddyn=$xend
yinitdyn=$yinit
yenddyn=$yend

if [ ! -d $zinit ]
then
	mkdir $zinit
fi
cd $zinit

function download () {
	echo -n "Downloading $zdyn/$x/$y"
	wget http://tile.openstreetmap.org/$zdyn/$x/$y.png > /dev/null 2>&1
	echo "....OK"
}

while [ "$zdyn" -le "$zend" ]; do
	echo "Entering level $zdyn"
	for ((x=$xinitdyn;x<=$xenddyn;x++));
	do
		if [ ! -d $x ]
		then
			mkdir $x
		fi
		cd $x
		for ((y=$yinitdyn;y<=$yenddyn;y++));
		do
			download 
		done
		cd ../
	done
	zdyn=$(($zdyn +1))
	cd $MAPHOME
	if [ ! -d $zdyn ]
	then
		mkdir $zdyn
	fi
	cd $zdyn
	xinitdyn=$((2*$xinitdyn))
	xenddyn=$((2*$xenddyn + 1))
	yinitdyn=$((2*$yinitdyn))
	yenddyn=$((2*$yenddyn + 1))
done
echo "Finished"

