Issue #47: add UI for tile generation.

This commit is contained in:
Sergey Vartanov 2021-06-11 00:49:28 +03:00
parent 9ed5b1a645
commit 20d753fb9f
2 changed files with 20 additions and 7 deletions

View file

@ -26,6 +26,7 @@ from roentgen.point import Point
from roentgen.scheme import LineStyle, Scheme from roentgen.scheme import LineStyle, Scheme
from roentgen.ui import error, parse_options from roentgen.ui import error, parse_options
from roentgen.util import MinMax from roentgen.util import MinMax
from roentgen import tile
def main(argv) -> None: def main(argv) -> None:
@ -178,5 +179,7 @@ if __name__ == "__main__":
draw_element(sys.argv[1], sys.argv[2]) draw_element(sys.argv[1], sys.argv[2])
elif len(sys.argv) == 2 and sys.argv[1] == "icons": elif len(sys.argv) == 2 and sys.argv[1] == "icons":
draw_icons() draw_icons()
elif len(sys.argv) > 1 and sys.argv[1] == "tile":
tile.ui(sys.argv[2:])
else: else:
main(sys.argv) main(sys.argv)

View file

@ -1,3 +1,4 @@
import argparse
from dataclasses import dataclass from dataclasses import dataclass
from pathlib import Path from pathlib import Path
from typing import Tuple, Optional from typing import Tuple, Optional
@ -132,11 +133,20 @@ class Tile:
svg.write(output_file) svg.write(output_file)
if __name__ == '__main__': def ui(args) -> None:
directory = Path("tiles") """
Simple user interface for tile generation.
"""
parser: argparse.ArgumentParser = argparse.ArgumentParser()
parser.add_argument("-lat", required=True)
parser.add_argument("-lon", required=True)
parser.add_argument("-s", required=True)
options = parser.parse_args(args)
directory: Path = Path("tiles")
directory.mkdir(exist_ok=True) directory.mkdir(exist_ok=True)
tile18 = Tile.from_coordinates(np.array((55.73, 37.62)), 18) tile: Tile = Tile.from_coordinates(
tile18.draw(directory) np.array((float(options.lat), float(options.lon))), int(options.s)
Tile(tile18.x + 1, tile18.y + 0, 18).draw(directory) )
Tile(tile18.x + 0, tile18.y - 1, 18).draw(directory) tile.draw(directory)
Tile(tile18.x + 1, tile18.y - 1, 18).draw(directory) print(tile.get_carto_address())