Use type icons as map markers
At the moment on a geomap all geo objects (persons, organizations, ...) are visualized by the same marker icon, a blue pin:
The result is supposed to look much like OpenStreetMap's brown object icons.
Notice that in this example 2 of the 5 objects have the same icon:
To determine a geo object's icon the Geomaps plugin is supposed to read out the respective type's View Configuration (as configured in the topic type's View tab):
Handling of "multi spots"
There is the particularity that several geo objects are located at the same geo coordinate.
This is what the Geomaps plugin does at the moment to handle these "multi spots":
- On the geomap display only one blue pin (as a placeholder so to say).
- Once the blue pin is clicked: display an overlay that lists all geo objects located there, grouped by type.
- Once clicked a geo object in that list: replace the overlay with the object details.
One question arises: how should multi spots be visualized on a geomap?
This is to be discussed.
My suggestion: leave it exactly as is. No change required.
This means in the face of multi spots a geomap still displays blue pins (or any other icon of our choice).
The content of open Geomaps is synched between clients (via WebSockets): when a user creates a geo object interactively (e.g. a Person with an Address) a new marker appears immediately in all open geomaps, across clients.
The Geomaps plugin supports client-sync already.
This functionality is supposed to continue to work.
The task described in this ticket is solely about geo object marker icons. The status quo of other aspects is not touched, in particular:
- A geomap displays all geo coordinates existing in the DB (more precisely: readable by the current user). No filters.
- Icons are by-type, not by-instance. That is geo objects of the same type appear with the same icon. No individual icons.
- Suggestion: multi spots are still visualized by the blue pin icon (or any other icon of our choice).
@gev I'll provide you with more technical hints soon.