kopia lustrzana https://github.com/sp9skp/spdxl
149 wiersze
4.2 KiB
Bash
149 wiersze
4.2 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
# file created by aprsmap of a list of tiles to fetch
|
||
|
ORIGFN="gettiles"
|
||
|
|
||
|
# map directory path specified by aprsmap
|
||
|
#DIR="osm"
|
||
|
DIR=$2
|
||
|
|
||
|
# move the original file to a temporary file to prevent a race
|
||
|
# condition with aprsmap where aprsmap sometimes attempts to write
|
||
|
# to the original file before this script completes processing.
|
||
|
FN=`mktemp`
|
||
|
mv $ORIGFN $FN
|
||
|
|
||
|
# 3 sec timeout, 3 sec wait between retries, 1 retry
|
||
|
WGETCMDBASE="wget -q -T 3 -w 3 -t 1 "
|
||
|
|
||
|
OSMSERVERS="\
|
||
|
http://a.tile.openstreetmap.org \
|
||
|
http://b.tile.openstreetmap.org \
|
||
|
http://c.tile.openstreetmap.org \
|
||
|
http://osm.oe2xzr.ampr.at/osm/tiles \
|
||
|
"
|
||
|
|
||
|
OSMSERVERSTOPO="\
|
||
|
http://a.tile.thunderforest.com/landscape \
|
||
|
http://b.tile.thunderforest.com/landscape \
|
||
|
http://c.tile.thunderforest.com/landscape \
|
||
|
http://osm.oe2xzr.ampr.at/osm/tiles_topo \
|
||
|
"
|
||
|
|
||
|
OSMSERVERSCYCLE="\
|
||
|
http://a.tile.opencyclemap.org/cycle \
|
||
|
http://b.tile.opencyclemap.org/cycle \
|
||
|
http://osm.oe2xzr.ampr.at/osm/tiles_cyclemap \
|
||
|
"
|
||
|
|
||
|
OSMSERVERSTRANSPORT="\
|
||
|
http://a.tile.opencyclemap.org/transport \
|
||
|
http://b.tile.opencyclemap.org/transport \
|
||
|
"
|
||
|
|
||
|
# note: mapquest sat and quest tile servers are no longer providing direct access
|
||
|
OSMSERVERSSAT="\
|
||
|
http://osm.oe2xzr.ampr.at/osm/tiles_sat \
|
||
|
http://otile1.mqcdn.com/tiles/1.0.0/sat \
|
||
|
http://otile2.mqcdn.com/tiles/1.0.0/sat \
|
||
|
http://otile3.mqcdn.com/tiles/1.0.0/sat \
|
||
|
http://otile4.mqcdn.com/tiles/1.0.0/sat \
|
||
|
"
|
||
|
|
||
|
OSMSERVERSQUEST="\
|
||
|
http://otile1.mqcdn.com/tiles/1.0.0/osm \
|
||
|
http://otile2.mqcdn.com/tiles/1.0.0/osm \
|
||
|
http://otile3.mqcdn.com/tiles/1.0.0/osm \
|
||
|
http://otile4.mqcdn.com/tiles/1.0.0/osm \
|
||
|
"
|
||
|
|
||
|
#--------------------------------------------------------------------------------------------------
|
||
|
|
||
|
# if the tiles directory does not exist then create one
|
||
|
if ! [ -d $DIR ]; then
|
||
|
mkdir $DIR
|
||
|
fi
|
||
|
|
||
|
# if tiles directory found
|
||
|
if [ -d $DIR ] ; then
|
||
|
# search zero-size files and destroy them
|
||
|
#echo -n "cleanup zero-files ... "
|
||
|
#find $DIR/tiles -size 0 -delete
|
||
|
#echo "done."
|
||
|
# while true; do
|
||
|
for i in 1 2 3 4 5 6 7 8 9 10; do
|
||
|
|
||
|
if [ -r $FN ] ; then
|
||
|
while read mapa mapb mapc mapd ; do
|
||
|
if ! [ -d $DIR/$mapa ] ; then
|
||
|
mkdir $DIR/$mapa
|
||
|
fi
|
||
|
if ! [ -d $DIR/$mapa/$mapb ] ; then
|
||
|
mkdir $DIR/$mapa/$mapb
|
||
|
fi
|
||
|
if ! [ -d $DIR/$mapa/$mapb/$mapc ] ; then
|
||
|
mkdir $DIR/$mapa/$mapb/$mapc
|
||
|
fi
|
||
|
|
||
|
if [ tiles = $mapa ]; then
|
||
|
SERVERS=$OSMSERVERS
|
||
|
EXTENT="png"
|
||
|
|
||
|
elif [ tiles_topo = $mapa ]; then
|
||
|
SERVERS=$OSMSERVERSTOPO
|
||
|
EXTENT="png"
|
||
|
|
||
|
elif [ tiles_cyclemap = $mapa ]; then
|
||
|
SERVERS=$OSMSERVERSCYCLE
|
||
|
EXTENT="png"
|
||
|
|
||
|
elif [ tiles_transport = $mapa ]; then
|
||
|
SERVERS=$OSMSERVERSTRANSPORT
|
||
|
EXTENT="png"
|
||
|
|
||
|
# note: mapquest sat and quest tile servers are no longer providing direct access
|
||
|
elif [ tiles_sat = $mapa ]; then
|
||
|
SERVERS=$OSMSERVERSSAT
|
||
|
EXTENT="jpg"
|
||
|
|
||
|
elif [ tiles_quest = $mapa ]; then
|
||
|
SERVERS=$OSMSERVERSQUEST
|
||
|
EXTENT="png"
|
||
|
fi
|
||
|
|
||
|
MAPFILE=$DIR/$mapa/$mapb/$mapc/$mapd.$EXTENT
|
||
|
echo "Loading tile: $MAPFILE ..."
|
||
|
for OSMSERVER in $SERVERS ; do
|
||
|
echo -n "-> from $OSMSERVER - "
|
||
|
$WGETCMDBASE -O $MAPFILE "$OSMSERVER/$mapb/$mapc/$mapd.png"
|
||
|
if [ -s $MAPFILE ] ; then
|
||
|
echo "done."
|
||
|
if [ jpg = $EXTENT ]; then
|
||
|
jpegtopnm $MAPFILE | pnmtopng > $DIR/$mapa/$mapb/$mapc/$mapd.png
|
||
|
rm -f $MAPFILE
|
||
|
fi
|
||
|
break
|
||
|
else
|
||
|
# rm $MAPFILE
|
||
|
# echo -n "Zero-length file, using alternative URL - "
|
||
|
# $WGETCMDBASE -O $MAPFILE "$OSMSERVER/$mapa/$mapb/$mapc/$mapd.png"
|
||
|
# if [ -s $MAPFILE ] ; then
|
||
|
# echo "done."
|
||
|
# break
|
||
|
# else
|
||
|
rm $MAPFILE
|
||
|
echo "Zero-length file, trying next mirror."
|
||
|
# fi
|
||
|
fi
|
||
|
done
|
||
|
done < $FN
|
||
|
rm -f $FN
|
||
|
fi
|
||
|
done
|
||
|
else
|
||
|
echo Directory $DIR not found.
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
exit 0
|