Пример #1
0
def tilelist(data,zooms):   
        if (data["filetype"]):
            coordinates = MBTiles.list_tiles(data["filename"])
    
        else:
            lat1, lon1, lat2, lon2 = data["bbox"]
            south, west = min(lat1, lat2), min(lon1, lon2)
            north, east = max(lat1, lat2), max(lon1, lon2)
    
            northwest = Location(north, west)
            southeast = Location(south, east)
            
            osm = Provider()
    
            ul = osm.locationCoordinate(northwest)
            lr = osm.locationCoordinate(southeast)
    
            for (i, zoom) in enumerate(zooms):
                if not zoom.isdigit():
                    raise KnownUnknown('"%s" is not a valid numeric zoom level.' % zoom)
    
                zooms[i] = int(zoom)
            
            if data["padding"] < 0:
                raise KnownUnknown('A negative padding will not work.')
    
            coordinates = generateCoordinates(ul, lr, zooms, data["padding"])
            return coordinates
Пример #2
0
def tilesetCoordinates(filename):
    """ Generate a stream of (offset, count, coordinate) tuples for seeding.
    
        Read coordinates from an MBTiles tileset filename.
    """
    coords = MBTiles.list_tiles(filename)
    count = len(coords)
    
    for (offset, coord) in enumerate(coords):
        yield coord
Пример #3
0
def tilesetCoordinates(filename):
    """ Generate a stream of (offset, count, coordinate) tuples for seeding.
    
        Read coordinates from an MBTiles tileset filename.
    """
    coords = MBTiles.list_tiles(filename)
    count = len(coords)
    
    for (offset, coord) in enumerate(coords):
        yield coord
Пример #4
0
                    '"%s" is not a layer I know about. Here are some that I do know about: %s.'
                    % (options.layer, ', '.join(
                        sorted(config_dict['layers'].keys()))))

            layer_dict = config_dict['layers'][options.layer]
            layer_dict[
                'write_cache'] = True  # Override to make seeding guaranteed useful.

        # override parts of the config and layer if needed

        extension = options.extension

        if options.mbtiles_input:
            layer_dict['provider'] = dict(name='mbtiles',
                                          tileset=options.mbtiles_input)
            n, t, v, d, format, b = MBTiles.tileset_info(options.mbtiles_input)
            extension = format or extension

        # determine or guess an appropriate tile extension

        if extension is None:
            provider_name = layer_dict['provider'].get('name', '').lower()

            if provider_name == 'mapnik grid':
                extension = 'json'
            elif provider_name == 'vector':
                extension = 'geojson'
            else:
                extension = 'png'

        # override parts of the config and layer if needed
Пример #5
0
        else:
            config_dict, config_dirpath = parseConfigfile(options.config)
            
            if options.layer not in config_dict['layers']:
                raise KnownUnknown('"%s" is not a layer I know about. Here are some that I do know about: %s.' % (options.layer, ', '.join(sorted(config_dict['layers'].keys()))))
            
            layer_dict = config_dict['layers'][options.layer]
            layer_dict['write_cache'] = True # Override to make seeding guaranteed useful.
        
        # override parts of the config and layer if needed
        
        extension = options.extension

        if options.mbtiles_input:
            layer_dict['provider'] = dict(name='mbtiles', tileset=options.mbtiles_input)
            n, t, v, d, format, b = MBTiles.tileset_info(options.mbtiles_input)
            extension = format or extension
        
        # determine or guess an appropriate tile extension
        
        if extension is None:
            provider_name = layer_dict['provider'].get('name', '').lower()
            
            if provider_name == 'mapnik grid':
                extension = 'json'
            elif provider_name == 'vector':
                extension = 'geojson'
            else:
                extension = 'png'
        
        # override parts of the config and layer if needed
Пример #6
0
def tilesetCoordinates(filename):
    """ Generate a stream of (offset, count, coordinate) tuples for seeding.
    
        Read coordinates from an MBTiles tileset filename.
    """
    coords = MBTiles.list_tiles(filename)
    count = len(coords)
    
    for (offset, coord) in enumerate(coords):
        yield coord

if __name__ == '__main__':
    options, zooms = parser.parse_args()

    if bool(options.mbtiles_input):
        coordinates = MBTiles.list_tiles(options.mbtiles_input)

    else:
        lat1, lon1, lat2, lon2 = options.bbox
        south, west = min(lat1, lat2), min(lon1, lon2)
        north, east = max(lat1, lat2), max(lon1, lon2)

        northwest = Location(north, west)
        southeast = Location(south, east)
        
        osm = Provider()

        ul = osm.locationCoordinate(northwest)
        lr = osm.locationCoordinate(southeast)

        for (i, zoom) in enumerate(zooms):
Пример #7
0
def tilesetCoordinates(filename):
    """ Generate a stream of (offset, count, coordinate) tuples for seeding.
    
        Read coordinates from an MBTiles tileset filename.
    """
    coords = MBTiles.list_tiles(filename)
    count = len(coords)
    
    for (offset, coord) in enumerate(coords):
        yield coord

if __name__ == '__main__':
    options, zooms = parser.parse_args()

    if bool(options.mbtiles_input):
        coordinates = MBTiles.list_tiles(options.mbtiles_input)

    else:
        lat1, lon1, lat2, lon2 = options.bbox
        south, west = min(lat1, lat2), min(lon1, lon2)
        north, east = max(lat1, lat2), max(lon1, lon2)

        northwest = Location(north, west)
        southeast = Location(south, east)
        
        osm = Provider()

        ul = osm.locationCoordinate(northwest)
        lr = osm.locationCoordinate(southeast)

        for (i, zoom) in enumerate(zooms):
Пример #8
0
                '"%s" is not a layer I know about. Here are some that I do know about: %s.'
                % (options.layer, ", ".join(sorted(config.layers.keys())))
            )

        layer = config.layers[options.layer]
        layer.write_cache = True  # Override to make seeding guaranteed useful.

        verbose = options.verbose
        extension = options.extension
        enable_retries = options.enable_retries
        progressfile = options.progressfile
        src_mbtiles = options.mbtiles_input

        if src_mbtiles:
            layer.provider = MBTiles.Provider(layer, src_mbtiles)
            n, t, v, d, format, b = MBTiles.tileset_info(src_mbtiles)
            extension = format or extension

        if options.outputdirectory and options.mbtiles_output:
            cache1 = Disk(options.outputdirectory, dirs="portable", gzip=[])
            cache2 = MBTiles.Cache(options.mbtiles_output, extension, options.layer)
            config.cache = Multi([cache1, cache2])

        elif options.outputdirectory:
            config.cache = Disk(options.outputdirectory, dirs="portable", gzip=[])

        elif options.mbtiles_output:
            config.cache = MBTiles.Cache(options.mbtiles_output, extension, options.layer)

        lat1, lon1, lat2, lon2 = options.bbox
        south, west = min(lat1, lat2), min(lon1, lon2)
Пример #9
0
        if options.layer not in config.layers:
            raise KnownUnknown(
                '"%s" is not a layer I know about. Here are some that I do know about: %s.'
                % (options.layer, ', '.join(sorted(config.layers.keys()))))

        layer = config.layers[options.layer]
        layer.write_cache = True  # Override to make seeding guaranteed useful.

        verbose = options.verbose
        extension = options.extension
        enable_retries = options.enable_retries
        progressfile = options.progressfile
        src_mbtiles = options.mbtiles_input

        if src_mbtiles:
            layer.provider = MBTiles.Provider(layer, src_mbtiles)
            n, t, v, d, format, b = MBTiles.tileset_info(src_mbtiles)
            extension = format or extension

        if options.outputdirectory and options.mbtiles_output:
            cache1 = Disk(options.outputdirectory, dirs='portable', gzip=[])
            cache2 = MBTiles.Cache(options.mbtiles_output, extension,
                                   options.layer)
            config.cache = Multi([cache1, cache2])

        elif options.outputdirectory:
            config.cache = Disk(options.outputdirectory,
                                dirs='portable',
                                gzip=[])

        elif options.mbtiles_output: