summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/getmap/osmimage
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/scripts/getmap/osmimage')
-rw-r--r--Master/texmf-dist/scripts/getmap/osmimage224
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