Frontmatter
| id | 6610 |
| title | main.addon.OpenStreetMaps |
| state | Open |
| labels | enhancementno auto close |
| assignees | tobiu |
| createdAt | Apr 1, 2025, 10:01 PM |
| updatedAt | Aug 3, 2025, 2:27 PM |
| githubUrl | https://github.com/neomjs/neo/issues/6610 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
main.addon.OpenStreetMaps

I think this can be done with the OpenLayers library. The markers would be created as a vector layer on top of a tile layer pulled from OpenStreetMaps as described in this example. It appears that there's no need for an api key to pull tiles from OSM.
I would be interested in working on this.

@TomDakan You are very welcome to give it a try! I think this specific topic should be fun (a great learning experience), since it covers a wrapper component, a new main thread addon, RPC based cross-thread communication, and the potential for using the new intercept remotes pattern for addons (e.g. easily queue a request to create a map instance until the map lib is loaded).
It might even work to use LLMs (like Gemini CLI) here.
I did use MapboxGL (also based on top of OSM) for the Covid Apps. Feel free to explore existing addons and wrapper components first, and explore how they work (or feed an LLM with it).
One very strong recommendation when it comes to PRs: Keep them as small and targeted as possible. E.g. create sub tickets, like "create the addon base class file" => PR, accepted. Next sub: "add logic for adding markers" => PR.
Submitting a massive PR which would e.g. resolve 8 tickets, but introduce 2 new bugs might end up in a lot of reasoning back and forth to get to a merge-ready state. This could lead to frustration, which can easily get avoided with smaller PRs.
Feel free to ask questions on Slack / Discord, and I can give you more pointers.
Best regards, Tobias
In case this is the case, I would like to create a new addon which is roughly on feature parity with
main.addon.GoogleMaps.