def _run_bbox_bounds(zoom, row, col, command=None, grid="geodetic", metatiling=1, pixelbuffer=0, tile_size=256, output_format="WKT"): tile = TilePyramid(grid, metatiling=metatiling, tile_size=tile_size).tile(zoom, row, col) result = CliRunner().invoke(tmx, [ "--pixelbuffer", str(pixelbuffer), "--metatiling", str(metatiling), "--grid", grid, "--tile_size", str(tile_size), "--output_format", output_format, command, str(zoom), str(row), str(col) ]) assert result.exit_code == 0 if command == "bounds": assert result.output.strip() == " ".join( map(str, tile.bounds(pixelbuffer))) elif output_format == "WKT": assert wkt.loads(result.output.strip()).almost_equals( tile.bbox(pixelbuffer)) elif output_format == "GeoJSON": assert shape(geojson.loads(result.output.strip())).almost_equals( tile.bbox(pixelbuffer))
def _run_tile(zoom, point, grid="geodetic", metatiling=1, pixelbuffer=0, tile_size=256, output_format="WKT"): x, y, = point tile = TilePyramid(grid, metatiling=metatiling, tile_size=tile_size).tile_from_xy(x, y, zoom) result = CliRunner().invoke(tmx, [ "--pixelbuffer", str(pixelbuffer), "--metatiling", str(metatiling), "--grid", grid, "--tile_size", str(tile_size), "--output_format", output_format, "tile", str(zoom), str(x), str(y) ]) assert result.exit_code == 0 if output_format == "Tile": assert result.output.strip() == " ".join(map(str, tile.id)) elif output_format == "WKT": assert wkt.loads(result.output.strip()).almost_equals( tile.bbox(pixelbuffer)) elif output_format == "GeoJSON": feature = geojson.loads(result.output.strip())["features"][0] assert shape(feature["geometry"]).almost_equals(tile.bbox(pixelbuffer))
def tile(ctx, point, zoom): """Print Tile containing POINT..""" tile = TilePyramid( ctx.obj["grid"], tile_size=ctx.obj["tile_size"], metatiling=ctx.obj["metatiling"], ).tile_from_xy(*point, zoom=zoom) if ctx.obj["output_format"] == "Tile": click.echo("%s %s %s" % tile.id) elif ctx.obj["output_format"] == "WKT": click.echo(tile.bbox(pixelbuffer=ctx.obj["pixelbuffer"])) elif ctx.obj["output_format"] == "GeoJSON": click.echo( geojson.dumps( geojson.FeatureCollection([ geojson.Feature( geometry=tile.bbox(pixelbuffer=ctx.obj["pixelbuffer"]), properties=dict(zoom=tile.zoom, row=tile.row, col=tile.col), ) ])))