I would appreciate if you can help me to find an elegant solution to the issue of having lots of markers in nearly the same position of a map. Clustering is not a good solution in this case given the fact that, even on a street-level zoom, you can see lots of them. I was thinking on creating a scrollable list of elements next to the map, but I prefer to check some suggestions first.
Having the cartographic point of view, in my opionion, clustering can definitely be the way to go in such a case.
In the following example, points which are very close to each other:
spread out when clicking on them: (screenshot source)
You can also combine it with the "traditional" way of clustering. This means, when you reach your maximal zoom level and the objects are still too close to each other you can click on the cluster symbol and the objects spread out and you can click on them separately: (screenshot source)
Additionally you can give your users the ability to control which categories they want to see, which would increase the usability of your map probably even without any form of clustering.
I found Instagram really handy when it came to its map functionality. Maybe you could use something similar to this one since
- it seems less cluttered
- it is clear how many items there are
- when you click, you could show on the right or left part of the screen the list of the places that they are there
Before jumping to the conclusion that clustering is or is not the way to go, the question is what the user need(s) is/are.
There are potentially two needs when using a map:
- Exploration: What is out there?
- Location: Where is it?
Some language: The user is looking for an "item", e.g. the restaurant "Delicious". An "item" belongs to an "item category", e.g. "Restaurant". Other item categories can be "Movie Theater", "Art Gallery", "Bars" etc.
Exploration need: A user is exploring items of an item category (e.g. restaurants) in a certain map area. It makes sense to display all items in a certain map area. The user needs the ability to access all single items of the selected item category.
Location need: A user is looking for a specific item (the restaurant "Delicious") of a specific item category ("Restaurant"). The user has some idea where it is. The user needs the ability to access all single items of the selected item category. For the location need, a direct access, e.g. via a search field is effective (the user could enter "Delicious" and the map displays the hits).
In both cases: If there are too many items so that they overlap on the map (as shown in the problem statement), the use of an item cluster helps to avoid overlaps. The item cluster should also work as a category filter, so when selected, items from other item categories are not displayed.
I attached a diagram which indicates how a user interface can support the search (exploration and location).
The proposed solution is similar to @tallistroan, it shows the flow between the item clusters and the items and emphasizes the use of item clusters as filters. The result list with the bread crumb path is optional, but helpful to support targeted navigation between the levels.
Hopefully, this helps.