from typing import Any import dearpygui.dearpygui as _dpg import dpg_map as dpgm dpg: Any = _dpg def main() -> None: dpgm.configure(user_agent="dpg-map custom_provider example") provider = dpgm.TileProvider( name="carto-light", url_template="https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png", subdomains=("a", "b", "c", "d"), attribution="(c) OpenStreetMap contributors (c) CARTO", file_extension="png", ) if "carto-light" not in dpgm.list_providers(): dpgm.register_provider(provider) dpg.create_context() dpg.create_viewport(title="dpg-map custom provider", width=900, height=600) def use_osm() -> None: dpgm.set_provider("osm", map_tag="custom-provider-map") def use_carto() -> None: dpgm.set_provider("carto-light", map_tag="custom-provider-map") with dpg.window(label="Custom Provider", width=-1, height=-1): with dpg.group(horizontal=True): dpg.add_button(label="OSM", callback=use_osm) dpg.add_button(label="Carto", callback=use_carto) with dpgm.map_widget( tag="custom-provider-map", provider="carto-light", center=(47.9029, 1.9093), zoom=13, width=-1, height=-1, ): dpgm.add_marker("orleans", lat=47.9029, lon=1.9093, label="Orleans") dpg.setup_dearpygui() dpg.show_viewport() dpg.start_dearpygui() dpg.destroy_context() if __name__ == "__main__": main()