diff options
Diffstat (limited to 'Master/texmf-dist/scripts/getmap/osmimage')
-rw-r--r-- | Master/texmf-dist/scripts/getmap/osmimage | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/Master/texmf-dist/scripts/getmap/osmimage b/Master/texmf-dist/scripts/getmap/osmimage new file mode 100644 index 00000000000..82ddf3da8da --- /dev/null +++ b/Master/texmf-dist/scripts/getmap/osmimage @@ -0,0 +1,224 @@ +#!/bin/bash +# +# osmimage [options] +# +# downloads an OpenStreetMap map specified by [options] +# by using http://developer.mapquest.com/ web service +# +# License: LPPL +# +pversion() +{ + echo "`basename $0` $VERSION" + echo "(C) Josef Kleber License: LPPL" + exit 0; +} +# +function phelp() +{ + echo -e \ + "\n `basename $0` [options]\n\n"\ + " downloads an OpenStreetMap map specified by [options]\n"\ + " by using http://developer.mapquest.com/ web service\n\n"\ + " Options:\n\n"\ + " -k key registered at http://developer.mapquest.com/\n"\ + " default (Example key from web site)!\n"\ + " Please register and use your own key!\n\n"\ + " -l specify a location\n"\ + " e.g. 'Bergheimer Straße 110A, 69115 Heidelberg, Germany'\n\n"\ + " -x specify a xsize (800)\n\n"\ + " -y specify a ysize (400)\n\n"\ + " -S short form to specify a size, e.g. 800,400\n\n"\ + " -s specify a scale factor in the range 1692-221871572 (3385 = -z 17)\n"\ + " see: http://open.mapquestapi.com/staticmap/zoomToScale.html\n\n"\ + " -z specify a zoom in the range 1-18 (zoom overrides scale!)\n\n"\ + " -t specify map type {map|sat|hyb} (map)\n\n"\ + " -i specify image type {jpeg|jpg|gif|png} (png)\n\n"\ + " -c specify icon color (yellow_1)\n"\ + " see: http://open.mapquestapi.com/staticmap/icons.html\n\n"\ + " -n specify the icon number (1)\n\n"\ + " -o specify output basename without file extension (osmimage.IMAGETYPE)\n\n"\ + " -q quiet; no output!\n\n"\ + " -v prints version information\n\n"\ + " -h prints help information\n\n" + pversion +} +# +osmimage_error() +{ + local exitcode="$1" + local errortext="$2" + echo "Error ($exitcode): $errortext" >&2 + exit $exitcode +} +# +osmimage_warning() +{ + local warningtext="$1" + echo -e "WARNING: $warningtext\n" >&2 +} +# +check_prog() +{ + local prog="$1" + hash $prog 2>/dev/null || osmimage_error 1 "$prog not installed! Aborting." +} +# +check_number() +{ + local var="$1" + local varname="$2" + local number='^[0-9]+$' + if ! [[ $var =~ $number ]] + then + osmimage_error 2 "$varname can't be $var! Not a number!" + fi +} +# +check_range() +{ + local var="$1" + local min="$2" + local max="$3" + local exitcode="$4" + local varname="$5" + check_number $var $varname + if [ $var -lt $min ] + then + osmimage_error $exitcode "$varname = $var; must be in the range of $min-$max" + fi + if [ $var -gt $max ] + then + osmimage_error $exitcode "$varname = $var; must be in the range of $min-$max" + + fi +} +# +check_prog wget +# +URL="http://open.mapquestapi.com/staticmap/v4/getplacemap" +KEY="" +LOCATION="" +XSIZE="" +YSIZE="" +SCALE="" +ZOOM="" +TYPE="" +IMAGETYPE="" +COLOR="" +NUMBER="" +OFILE="osmimage" +QUIET="false" +VERSION="v1.2 (23/05/2014)" +# +while getopts "k:l:x:y:S:s:z:t:i:c:n:o:qvh" flag +do + case "$flag" in + k) KEY="$OPTARG";; + l) LOCATION="$OPTARG";; + x) XSIZE="$OPTARG";; + y) YSIZE="$OPTARG";; + S) SIZE="$OPTARG";; + s) SCALE="$OPTARG";; + z) ZOOM="$OPTARG";; + t) TYPE="$OPTARG";; + i) IMAGETYPE="$OPTARG";; + c) COLOR="$OPTARG";; + n) NUMBER="$OPTARG";; + o) OFILE="$OPTARG";; + q) QUIET="true";; + v) pversion;; + h) phelp;; + esac +done +# +if [ "$QUIET" = "true" ] +then + exec 1>/dev/null + exec 2>/dev/null +fi +# +if [ -z $KEY ] +then + KEY="Kmjtd%7Cluu7n162n1%2C22%3Do5-h61wh" + osmimage_warning "KEY not specified; using mapquest example key as default!" +fi +# +if [ -z $LOCATION ] +then + LOCATION="Bergheimer Straße 110A, 69115 Heidelberg, Germany" + osmimage_warning "LOCATION not specified; using Dante e.V. Office as default!" +fi +# +if [ -z $XSIZE ] +then + XSIZE=800 + osmimage_warning "XSIZE not specified; using XSIZE=800 as default!" +fi +check_range $XSIZE 1 3840 11 XSIZE +# +if [ -z $YSIZE ] +then + YSIZE=400 + osmimage_warning "YSIZE not specified; using YSIZE=400 as default!" +fi +check_range $YSIZE 1 3840 12 YSIZE +# +if [ -z $SIZE ] +then + SIZE="$XSIZE,$YSIZE" +fi +# +if [ -z $SCALE ] +then + if [ -z $ZOOM ] + then + SCALE=3385 + osmimage_warning "SCALE not specified, using SCALE=3385 as default!" + fi +else + check_range $SCALE 1692 221871572 13 SCALE +fi +# +if [ -z $TYPE ] +then + TYPE="map" + osmimage_warning "TYPE not specified; using map as default!" +fi +# +if [ -z $IMAGETYPE ] +then + IMAGETYPE="png" + osmimage_warning "IMAGETYPE not specified; using png as default!" +fi +# +if [ -z $COLOR ] +then + COLOR="yellow_1" + osmimage_warning "COLOR not specified; using yellow_1 as default!" +fi +if [ -z $NUMBER ] +then + NUMBER=1 + osmimage_warning "NUMBER not specified; using 1 as default!" +fi +check_number $NUMBER NUMBER +# +ULOCATION="&location=$LOCATION" +USIZE="&size=$SIZE" +if [ -z $ZOOM ] +then + USCALEZOOM="&scale=$SCALE" +else + check_range $ZOOM 1 18 14 ZOOM + USCALEZOOM="&zoom=$ZOOM" +fi +UTYPE="&type=$TYPE" +UIMAGETYPE="&imagetype=$IMAGETYPE" +USHOWICON="&showicon=${COLOR}-${NUMBER}" +UOFILE="${OFILE}.${IMAGETYPE}" +# +IMGURL="${URL}?key=${KEY}${ULOCATION}${USIZE}${USCALEZOOM}${UTYPE}${UIMAGETYPE}${USHOWICON}" +# +wget "$IMGURL" -O "$UOFILE" +exit 0 |