Skip to main content

Map widget for Dear PyGui

Project description

dearpygui-map

Map widget for Dear PyGui

Installation

Requirements

  • Python >= 3.10
  • Dear PyGui >= 1.3.1

Option 1 - pip

You can install this package from pip, with

pip install dearpygui-map

Option 2 - Local install from sources

Clone code repository from your local machine, install from there. Poetry is required.

git clone https://github.com/mkouhia/dearpygui-map.git
cd dearpygui-map
poetry build
# take note of the build step output, install package from the dist folder
pip install dist/PRODUCED_PACKAGE.whl

Usage

This basic example creates a map widget with defined size, initial center point (latitude, longitude) and initial zoom level. The zoom levels are same as on tiled maps, for example 12 could represent a town-sized view. Larger is more zoomed in.

import dearpygui.dearpygui as dpg
import dearpygui_map as dpg_map

dpg.create_context()

with dpg.window(label="Map demo"):
    dpg_map.add_map_widget(
        width=700,
        height=500,
        center=(60.1641, 24.9402),
        zoom_level=12)

dpg.create_viewport(title="Dear PyGui map widget demo", width=800, height=600)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()

The function add_map_widget places a Dear PyGui drawlist with map contents, return value is the drawlist tag.

By default, OpenStreetMap is used as the map tile source. This can be configured with add_map_widget argument tile_source, with similar source definition:

OpenStreetMap = TileServer(
    name="OpenStreetMap",
    base_url="http://{subdomain}.tile.openstreetmap.org/{z}/{x}/{y}.png",
    subdomains=["a", "b", "c"],
    max_zoom_level=19,
    license_text="© OpenStreetMap contributors",
    thread_limit=2,
)

Technical details

Tiles are downloaded from the supplier on a background thread. Whenever map is zoomed or moved, more tiles are downloaded. The tiles are cached to local storage path in user cache directory - for different platforms, cache directories are:

Windows:    C:\Users\<username>\AppData\Local\dearpygui_map\Cache
Mac OS X:   ~/Library/Caches/dearpygui_map
Other:      ~/.cache/dearpygui_map

Known issues

As for now, dearpygui-map is in its early design phase and contains some items that may not be acceptable in production environments. These issues will be addressed later

  • Tile download threads are created every time TileManager.draw_layer is called.
  • Non-visible tiles are not removed from dearpygui
  • Zooming and panning leads to wait times before tiles are ready to be shown.

Development

Environment

Poetry is required for development (see installation instructions)

  1. Create development environment with poetry install
  2. Enter environment with poetry shell

Code quality and testing

All code is to be formatted with black:

black dearpygui_map

and code quality checked with pylint:

pylint dearpygui_map

Tests should be written in pytest, targeting maximum practical code coverage. Tests are run with:

pytest

and test coverage checked with

pytest --cov

Optionally, html test coverage reports can be produced with

pytest --cov dearpygui_map --cov-report html

Contributions

Contributions are welcome. Please also see GitHub issues and milestones.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dearpygui_map-0.1.1.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

dearpygui_map-0.1.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file dearpygui_map-0.1.1.tar.gz.

File metadata

  • Download URL: dearpygui_map-0.1.1.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.2 Linux/5.13.0-44-generic

File hashes

Hashes for dearpygui_map-0.1.1.tar.gz
Algorithm Hash digest
SHA256 cf50bec0fefac33622589c00893405aebf6937255889e13875586edddda15dd1
MD5 7861ac40889743f0a7af067830dd2726
BLAKE2b-256 09c5aa2652f24d91fd89edd7b95e6de865ff24b5c0166fb11c1f1f45033ea384

See more details on using hashes here.

File details

Details for the file dearpygui_map-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: dearpygui_map-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.2 Linux/5.13.0-44-generic

File hashes

Hashes for dearpygui_map-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 79760104326ba054f352e103ff06ddea513c65a0651dc33a6e983d28a60df1ac
MD5 d59f8126155fcfaeded531ec7a9de6ae
BLAKE2b-256 698c32a1f1fac0d519bd71cb981911b140822832491570e4fe8bd7705ed7eb8c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page