Added initial version of KML to Tiles converter
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python3
|
||||
import importlib.util
|
||||
import json
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
MODULE = Path(__file__).resolve().parents[1] / "scripts" / "build-tiles.py"
|
||||
SPEC = importlib.util.spec_from_file_location("build_tiles", MODULE)
|
||||
build_tiles = importlib.util.module_from_spec(SPEC)
|
||||
assert SPEC.loader is not None
|
||||
SPEC.loader.exec_module(build_tiles)
|
||||
|
||||
|
||||
class BuildTilesTests(unittest.TestCase):
|
||||
def test_rotation_changes_extent_and_keeps_area(self):
|
||||
plain = {"north": 40.1, "south": 39.7, "east": 25.5, "west": 25.0, "rotation": 0.0}
|
||||
rotated = {**plain, "rotation": 10.0}
|
||||
plain_corners = build_tiles.rotated_corners(plain)
|
||||
rotated_corners = build_tiles.rotated_corners(rotated)
|
||||
self.assertNotEqual(plain_corners, rotated_corners)
|
||||
self.assertAlmostEqual(build_tiles.polygon_area(plain_corners), build_tiles.polygon_area(rotated_corners), places=2)
|
||||
|
||||
def test_source_override_precedes_global(self):
|
||||
config = {"global": {"minzoom": 7, "maxzoom": 12}, "sources": {"Altis.kmz": {"minzoom": 9, "maxzoom": 14}}}
|
||||
self.assertEqual(build_tiles.effective_zooms(11, "Altis.kmz", config), (9, 14, True))
|
||||
|
||||
def test_config_normalizes_source_key(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
path = Path(directory) / "maps.json"
|
||||
path.write_text(json.dumps({"global": {}, "sources": {"nested\\map.kmz": {"minzoom": 8}}}))
|
||||
self.assertIn("nested/map.kmz", build_tiles.read_config(path)["sources"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user