-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathwallmapper.py
66 lines (54 loc) · 1.61 KB
/
wallmapper.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from mapbox_client import MapboxClient
import argparse
'''
Defaults
'''
# Nexus 5
DEFAULT_WIDTH = 1080 * 2
DEFAULT_HEIGHT = 1920
# Washington, DC
DEFAULT_LATITUDE = 38.91010
DEFAULT_LONGITUDE = -77.0485
DEFAULT_ZOOM = 17
# Some beautiful basemap to start with -- see /examples for more
DEFAULT_BASEMAP = 'eleanor.mnyzxgvi' # Max zoom 21
# Output file
DEFAULT_OUTPUT = 'wallmapper.png'
# Stats
DEFAULT_STATS = True
'''
Parser
'''
parser = argparse.ArgumentParser(
prog='Wallmapper',
description='Create high resolution wallpapers from Mapbox maps.',
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
add_help=True)
parser.add_argument('--width',
type=int, default=DEFAULT_WIDTH, help='Wallpaper width')
parser.add_argument('--height',
type=int, default=DEFAULT_HEIGHT, help='Wallpaper height')
parser.add_argument('--latitude',
type=float, default=DEFAULT_LATITUDE, help='Latitude')
parser.add_argument('--longitude',
type=float, default=DEFAULT_LONGITUDE, help='Longitude')
parser.add_argument('--zoom',
type=int, default=DEFAULT_ZOOM, help='Zoom level')
parser.add_argument('--basemap',
type=str, default=DEFAULT_BASEMAP, help='Mapbox basemap')
parser.add_argument('--output',
type=str, default=DEFAULT_OUTPUT, help='Output filename')
parser.add_argument('--stats',
type=bool, default=DEFAULT_STATS, help='Print some raw statistics')
args = vars(parser.parse_args())
'''
Mapbox client
'''
try:
print 'Generating wallpaper...'
mapbox_client = MapboxClient(**args)
mapbox_client.generate_wallpaper()
except Exception as e:
print 'Error:', str(e)
else:
print 'Done.'