beeware / beeware/toga

Mapview pin setting icons on the way to full Marker functionality

Open
#3,326 8 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
5.4k
Forks
827
Avg merge
15h 39m
Merged PRs (30d)
40

Description

### What is the problem or limitation you are having?

I'd like to see the full-on marker functionality in the map view widget in addition to the MapPin() the current implementation has.

Basically you would be able to set an icon for a Pin.

This would require a different implementation on the Apple Maps clients as opposed to the OSM clients.

### Describe the solution you'd like

Ideally you would have a subclass of MapPin, probably called MapMarker, that would have an additional icon field that would represent the icon to display for that location.

### Describe alternatives you've considered

Right now I can't see any way to force a MapPin to have a different icon than the default one. If there is it isn't obvious from either the documentation or inspecting MapPin objects.

### Additional context

Eventually you'd want to have the full suite of Marker functionality including Marker Clustering. This is supported by mapping APIs in one form or another so it should be at least possible.

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing MapPin and map view APIs, then compare the Apple Maps and OSM client implementations mentioned in the issue. Define how a MapMarker icon should be exposed consistently across those clients, and consider how the design could support the future marker functionality and clustering described. Done means a documented, cross-client marker icon API with coverage for the supported implementations.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.