Aug-02-2023, 01:26 AM
This does save and restore.
import tkinter as tk from tkintermapview import TkinterMapView class MyWindow(tk.Tk): """A window that displays a map.""" def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.map = TkinterMapView(self, width=800, height=600, corner_radius=0) self.map.pack(expand=True, fill=tk.BOTH) self.map.set_position(60.03345, 11.35806) # Norway self.map.set_address("fjellvegen 4, auli, norway", marker=True) self.map.set_zoom(16) self.save() # Create save and restore buttons for saving/restoring map position and zoom. frame = tk.Frame(self) frame.pack(expand=True, fill=tk.X) button = tk.Button(frame, text="Save", command=self.save, font=(None, 24)) button.pack(side=tk.LEFT, expand=True, fill=tk.X) button = tk.Button(frame, text="Restore", command=self.restore, font=(None, 24)) button.pack(side=tk.LEFT, expand=True, fill=tk.X) # Bind arrow keys to zooming in/out. self.zoom_keys = {"Up": 1, "Right": 1, "Down": -1, "Left": -1} for key in self.zoom_keys: self.bind(f"<{key}>", self.arrow_zoom) def arrow_zoom(self, event): """Zoom map using arrow keys.""" increment = self.zoom_keys.get(event.keysym, 0) self.map.set_zoom(self.map.zoom + increment) def save(self): """Save zoom and position so map can be restored later.""" self.saved_info = (self.map.zoom, self.map.get_position()) def restore(self): """Restore map to saved zoom and position.""" zoom, position = self.saved_info self.map.set_zoom(zoom) self.map.set_position(*position) MyWindow().mainloop()