Example #1
0
def main():
	if len(sys.argv) < 2:
		# Can obtain country wise extracts from http://download.geofabrik.de/
		print 'Provide absolute directory path containing osm files as first argument'
		return

	directory = sys.argv[1]
	try:
		files = os.listdir(directory)
		index = 0
		for f in files:
			if f.endswith('.osm.pbf'):
				filepath = os.path.join(directory, f)
				print '\n\nInfo: Importing file, %s into Postgres' % (f,)
				os.system('osm2pgsql -d %s %s --style %s --slim --cache 4000 --number-processes 4' % (POSTGRES_DB, filepath, CARTO_STYLESHEET_PATH))

				print '\n\nInfo: Generating XML for file, %s from Postgres' % (f,)
				os.system('./generate_xml.py osm.xml  --dbname %s --host localhost --user postgres --accept-none > out.xml' % (POSTGRES_DB,))

				print '\n\nInfo: generating tiles for file, %s' % (f,)
				if index == 0:
					clear_directory(OUTPUT_DIR) # clear contents of output directory

				outdir = os.path.join(OUTPUT_DIR, str(index))
				os.mkdir(outdir)
				if not outdir.endswith('/'):
					outdir = outdir + '/'
				gt.render_tiles(bbox, 'out.xml', outdir, 1, 18)

				index += 1
	except Exception as ex:
		print ex
Example #2
0
def main(args):
    '''
    The main function
    '''
    min_zoom, max_zoom = get_args(args)

    update_data()

    rm_zoom_levels(min_zoom, max_zoom)

    render_tiles(BBOX, STYLESHEET, TILE_DIR, min_zoom, max_zoom, 'World')
Example #3
0
    def execute_generate_tiles(self):
        print "\n- Render tiles"

        # Render
        print self.task.bbox, self.task.database
        render_tiles(self.task.bbox, self.stylesheet,
                     str(self.tiles_dir), self.task.min_zoom,
                     self.task.max_zoom)

        # Delete empty folders
        self.remove_empty_directories(self.tiles_dir)
        print "Empty directories deleted."
Example #4
0
def run(min_zoom, max_zoom, bbox_code, quality, only_tiles):
    bbox_code = bbox_code.upper()
    if not hasattr(bbox_cities, bbox_code):
        print('{} bbox code not found in bbox_cities.py'.format(minus))
        sys.exit(-1)

    run_checks()

    if not os.path.isdir(TMP_DIR):
        os.mkdir(TMP_DIR)
    if not os.path.isdir(BUILD_DIR):
        os.mkdir(BUILD_DIR)

    compile_osm_styles(getattr(bbox_cities, bbox_code), min_zoom, max_zoom)

    filename = hashlib.md5('{}{}{}{}{}'.format(bbox_code,
                                               min_zoom, max_zoom, quality,
                                               datetime.now())).hexdigest()

    if not only_tiles:
        make_initial_gpkg()

    render_tiles(getattr(bbox_cities, bbox_code),
                 '{}/osm.xml'.format(STYLES_DIR),
                 TILES_DIR,
                 min_zoom,
                 max_zoom,
                 tms_scheme=True)
    print('{} tiles created'.format(plus))

    make_gpkg_from_tiles(quality, filename)

    if not only_tiles:
        execute('ogr2ogr', '-f', 'GPKG', 'tmp/out.{}.gpkg'.format(filename),
                'tmp/initial.gpkg', '-update', '-progress')

    shutil.copy('tmp/out.{}.gpkg'.format(filename), BUILD_DIR)
    print('{} Final gpkg moved to build dir'.format(plus))
Example #5
0
#!/usr/bin/python
import os
import generate_tiles

helper_file = '/home/biokys/PREPARED/helper.dat'

#bbox = (13.15, 48.61, 17.17, 50.87)
minZoom = 8
maxZoom = 14
outputDir = "/var/www/tiles2/"
#outputDir = "tiles3/"


with open(helper_file, 'rw+') as file:
    for line in file:
        data = line.split(' ')
        bbox = (float(data[1]), float(data[0]), float(data[3]), float(data[2]))
        print('Computing tiles for data: ' + str(bbox))
        generate_tiles.render_tiles(bbox, outputDir, minZoom, maxZoom)
    file.truncate(0)

Example #6
0
#!/usr/bin/python

import private

from StringIO import StringIO

from generate_tiles import render_tiles
#from generate_tiles_multiprocess import render_tiles

mapfile = 'poly-test.xml'

#mapfile = StringIO(
#	file(mapfile).read()
#)

# CONUS
bbox = (-124.728, 24.546, -66.952, 49.383)

render_tiles(bbox, mapfile, private.TILE_PATH, 0, 4, 'Lower 48', 1)
Example #7
0
#!/usr/bin/python
import os
import generate_tiles

helper_file = '/home/biokys/PREPARED/helper.dat'

#bbox = (13.15, 48.61, 17.17, 50.87)
minZoom = 8
maxZoom = 14
outputDir = "/var/www/tiles2/"
#outputDir = "tiles3/"

with open(helper_file, 'rw+') as file:
    for line in file:
        data = line.split(' ')
        bbox = (float(data[1]), float(data[0]), float(data[3]), float(data[2]))
        print('Computing tiles for data: ' + str(bbox))
        generate_tiles.render_tiles(bbox, outputDir, minZoom, maxZoom)
    file.truncate(0)
Example #8
0
#!/usr/bin/python

import private

from StringIO import StringIO

from generate_tiles import render_tiles
#from generate_tiles_multiprocess import render_tiles

mapfile = 'poly-test.xml'

#mapfile = StringIO(
#	file(mapfile).read()
#)

# CONUS
bbox = ( -124.728, 24.546, -66.952, 49.383 )

render_tiles( bbox, mapfile, private.TILE_PATH, 0, 4, 'Lower 48', 1 )
Example #9
0
#!/usr/bin/python
#
# This will precache some tiles that are used by the static maps.

import sys

MIN_ZOOM = 11
MAX_ZOOM = 12
XML_DIR = '/data/vhost/tilma.mysociety.org/osm/'
CACHE_DIR = '/data/vhost/tilma.mysociety.org/tilecache/'

sys.path.append('/data/vhost/tilma.mysociety.org/mapnik/')

from generate_tiles import render_tiles

# World
#bbox = (-180.0,-90.0, 180.0,90.0)
#render_tiles(bbox, mapfile, tile_dir, 0, 5, "World")

bbox = (-6,49.95, 1.75,60)
for layer in ('mapumental-map', 'mapumental-names', 'osm'):
    render_tiles(bbox, XML_DIR + layer + '.xml', CACHE_DIR + layer + '/', MIN_ZOOM, MAX_ZOOM)