66 lines
1.8 KiB
Python
66 lines
1.8 KiB
Python
from pathlib import Path
|
|
from typing import Any
|
|
|
|
import dearpygui.dearpygui as _dpg
|
|
|
|
import dpg_map as dpgm
|
|
|
|
dpg: Any = _dpg
|
|
|
|
|
|
def main() -> None:
|
|
cache_dir = Path(__file__).resolve().parent / ".tile-cache"
|
|
dpgm.configure(
|
|
cache_dir=cache_dir,
|
|
memory_cache_max_tiles=32,
|
|
disk_cache_max_bytes=30_000_000,
|
|
prefetch_margin_tiles=1,
|
|
user_agent="dpg-map cache_stress example",
|
|
)
|
|
|
|
dpg.create_context()
|
|
dpg.create_viewport(title="dpg-map cache stress", width=1000, height=700)
|
|
|
|
def clear_memory() -> None:
|
|
dpgm.clear_memory_cache(map_tag="cache-map")
|
|
|
|
def clear_disk() -> None:
|
|
dpgm.clear_disk_cache(map_tag="cache-map")
|
|
|
|
def refresh_stats() -> None:
|
|
stats = dpgm.get_cache_stats(map_tag="cache-map")
|
|
dpg.set_value(
|
|
"cache-stats",
|
|
(
|
|
f"memory {stats.memory_tiles}/{stats.memory_max_tiles} tiles | "
|
|
f"disk {stats.disk_bytes // 1024} KiB | "
|
|
f"hits m:{stats.memory_hits} d:{stats.disk_hits}"
|
|
),
|
|
)
|
|
|
|
with (
|
|
dpg.window(label="Cache Stress", width=-1, height=-1),
|
|
):
|
|
with dpg.group(horizontal=True):
|
|
dpg.add_button(label="Clear Memory", callback=clear_memory)
|
|
dpg.add_button(label="Clear Disk", callback=clear_disk)
|
|
dpg.add_button(label="Stats", callback=refresh_stats)
|
|
dpg.add_text("", tag="cache-stats")
|
|
with dpgm.map_widget(
|
|
tag="cache-map",
|
|
center=(47.9029, 1.9093),
|
|
zoom=14,
|
|
width=-1,
|
|
height=-1,
|
|
):
|
|
dpgm.add_marker("start", lat=47.9029, lon=1.9093, label="Orleans")
|
|
|
|
dpg.setup_dearpygui()
|
|
dpg.show_viewport()
|
|
dpg.start_dearpygui()
|
|
dpg.destroy_context()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|