CanvaMap – Custom Interactive Mapping with Tkinter -WIP-¶
CanvaMap is a Python library for embedding dynamic map tiles and interactive geospatial layers within a tkinter.Canvas
. It provides a modular architecture for building lightweight desktop applications that incorporate OpenStreetMap-based mapping functionality.
Overview¶
Designed for environments where full GIS platforms are unnecessary or impractical, CanvaMap allows developers to integrate interactive maps directly into Python desktop applications. The framework supports layered rendering, feature-based interaction, and seamless integration into existing Tkinter interfaces.
CanvaMap is particularly suited to scenarios requiring lightweight geospatial visualization, such as research tools, historical applications, and domain-specific data viewers.
Features -WIP-¶
- Tile-based rendering using OpenStreetMap tile services
- Support for custom point layers with label offset options
- Clickable elements with per-feature interaction handling
- Real-time coordinate tracking of the map's central viewport
- Easily embeddable in standard
tkinter
applications
Implementation Details¶
CanvaMap is structured as a Python package and designed for extensibility. Core components include a canvas-based tile renderer, a feature-layer system, and an event handling interface for user interaction. The codebase separates UI, logic, and rendering concerns to simplify integration and maintenance.
The project is distributed as an editable install and is managed using a pyproject.toml
configuration for reproducibility and development workflow consistency.
Installation¶
To install the library in development mode:
```bash git clone https://github.com/SiottoTamat/CanvaMap.git cd CanvaMap pip install -e .