mirror of
https://github.com/enzet/map-machine.git
synced 2025-06-09 14:21:50 +02:00
Issue #69: fix zoom level.
This commit is contained in:
parent
119d6ffaa1
commit
37c97f46c6
2 changed files with 10 additions and 11 deletions
|
@ -49,8 +49,6 @@ class Handler(SimpleHTTPRequestHandler):
|
||||||
file_obj=input_file, write_to=str(png_path)
|
file_obj=input_file, write_to=str(png_path)
|
||||||
)
|
)
|
||||||
logging.info(f"SVG file is rasterized to {png_path}.")
|
logging.info(f"SVG file is rasterized to {png_path}.")
|
||||||
if zoom != 18:
|
|
||||||
return
|
|
||||||
if png_path.exists():
|
if png_path.exists():
|
||||||
with png_path.open("rb") as input_file:
|
with png_path.open("rb") as input_file:
|
||||||
self.send_response(200)
|
self.send_response(200)
|
||||||
|
|
|
@ -263,11 +263,9 @@ class Tiles:
|
||||||
if self.tiles_exist(directory):
|
if self.tiles_exist(directory):
|
||||||
return
|
return
|
||||||
|
|
||||||
input_path: Path = cache_path / (
|
|
||||||
self.boundary_box.get_format() + ".png"
|
|
||||||
)
|
|
||||||
self.draw_image(cache_path)
|
self.draw_image(cache_path)
|
||||||
|
|
||||||
|
input_path: Path = self.get_file_path(cache_path).with_suffix(".png")
|
||||||
with input_path.open("rb") as input_file:
|
with input_path.open("rb") as input_file:
|
||||||
image: Image = Image.open(input_file)
|
image: Image = Image.open(input_file)
|
||||||
|
|
||||||
|
@ -286,15 +284,18 @@ class Tiles:
|
||||||
)
|
)
|
||||||
logging.info(f"Tile {tile.scale}/{tile.x}/{tile.y} is created.")
|
logging.info(f"Tile {tile.scale}/{tile.x}/{tile.y} is created.")
|
||||||
|
|
||||||
|
def get_file_path(self, cache_path: Path) -> Path:
|
||||||
|
"""Get path of the output SVG file."""
|
||||||
|
return cache_path / f"{self.boundary_box.get_format()}_{self.scale}.svg"
|
||||||
|
|
||||||
def draw_image(self, cache_path: Path) -> None:
|
def draw_image(self, cache_path: Path) -> None:
|
||||||
"""
|
"""
|
||||||
Draw all tiles as one picture.
|
Draw all tiles as one picture.
|
||||||
|
|
||||||
:param cache_path: directory for temporary SVG file and OSM files
|
:param cache_path: directory for temporary SVG file and OSM files
|
||||||
"""
|
"""
|
||||||
output_path: Path = cache_path / (
|
output_path: Path = self.get_file_path(cache_path)
|
||||||
self.boundary_box.get_format() + ".svg"
|
|
||||||
)
|
|
||||||
if not output_path.exists():
|
if not output_path.exists():
|
||||||
cache_file_path: Path = (
|
cache_file_path: Path = (
|
||||||
cache_path / f"{self.boundary_box.get_format()}.osm"
|
cache_path / f"{self.boundary_box.get_format()}.osm"
|
||||||
|
@ -306,8 +307,8 @@ class Tiles:
|
||||||
latitude_1, longitude_2 = Tile(
|
latitude_1, longitude_2 = Tile(
|
||||||
self.tile_2.x + 1, self.tile_2.y + 1, self.scale
|
self.tile_2.x + 1, self.tile_2.y + 1, self.scale
|
||||||
).get_coordinates()
|
).get_coordinates()
|
||||||
min_ = np.array((latitude_1, longitude_1))
|
min_: np.ndarray = np.array((latitude_1, longitude_1))
|
||||||
max_ = np.array((latitude_2, longitude_2))
|
max_: np.ndarray = np.array((latitude_2, longitude_2))
|
||||||
|
|
||||||
flinger: Flinger = Flinger(MinMax(min_, max_), self.scale)
|
flinger: Flinger = Flinger(MinMax(min_, max_), self.scale)
|
||||||
extractor: ShapeExtractor = ShapeExtractor(
|
extractor: ShapeExtractor = ShapeExtractor(
|
||||||
|
@ -331,7 +332,7 @@ class Tiles:
|
||||||
else:
|
else:
|
||||||
logging.debug(f"File {output_path} already exists.")
|
logging.debug(f"File {output_path} already exists.")
|
||||||
|
|
||||||
png_path: Path = cache_path / f"{self.boundary_box.get_format()}.png"
|
png_path: Path = self.get_file_path(cache_path).with_suffix(".png")
|
||||||
if not png_path.exists():
|
if not png_path.exists():
|
||||||
with output_path.open() as input_file:
|
with output_path.open() as input_file:
|
||||||
cairosvg.svg2png(file_obj=input_file, write_to=str(png_path))
|
cairosvg.svg2png(file_obj=input_file, write_to=str(png_path))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue