streetcomplete / StreetComplete

Easy to use OpenStreetMap editor for Android
https://streetcomplete.app
GNU General Public License v3.0
3.83k stars 348 forks source link

Explore migration from tangram to MapLibre #3123

Closed smichel17 closed 1 month ago

smichel17 commented 3 years ago

Originally posted by @westnordost in https://github.com/streetcomplete/StreetComplete/issues/1892#issuecomment-889991925

MapLibre (ex Mapbox SDK) now supports Metal, so an iOS port would probably (need to) use MapLibre instead of tangram-es. This requres to

  • create a mapstyle for mapbox / maplibre (for jawg.io map tiles) that matches the map style for tangram
  • check it out, see if it has all features required by StreetComplete (probably yes)

As tangram is not really developed further, it might be a good choice to change to using the maplibre SDK for Android too. Or - bluesky - use/create a map view that directly renders the OSM data.

Additionally, there's issues like https://github.com/streetcomplete/StreetComplete/issues/3101 which are complicated to fix due to working around tangram limitations.

From the parts I am familiar with, I think StreetComplete already has a decent wrapper around Tangram (e.g. KtMapController), so in many places it would "just" be a matter of swapping out the implementation of those interfaces, and then plugging any leaks in the abstraction. There's also the scene files; I don't yet know how they map to MapLibre features. And any other tangram features we use that I'm not familiar with.

riQQ commented 5 months ago

All the issues related to Tangram ES that I could find.

Might help with

Could be reopened, no more investment in old renderer

Should resolve

Caused by zoom limitation

already worked around, but migration fixes performance hit

already worked around, workaround can probably be removed

westnordost commented 5 months ago

I went through the list and took the liberty to add strikethrough for issues that will not be touched by migration to maplibre.

westnordost commented 5 months ago

I searched in the issue tracker for "maplibre" and further found the following issues:

Could be revisited (that it can be solved with maplibre is not guaranteed)

Resolved

westnordost commented 5 months ago

I searched for "tangram" and looked at issues down to # 3000. You missed some, I added them to your post.

westnordost commented 5 months ago

Thank you, I looked through the list and added them to the changelog here.

The Caused by zoom limitation-stuff plus #179, #869, #1264 I did not add yet, because we did not implement quest clustering yet, which may or may not solve the issue of several quests at the same position but (ofc) only one being selectable.

westnordost commented 3 months ago

We are basically done with this now, see the todo list to the top of the PR.

Final integration is blocked by two critical bugs in MapLibre and (maybe) by a to-be-reported issue - at least we'd need to work around that if it is not fixed.

https://github.com/Helium314/SCEE/pull/516

westnordost commented 3 months ago

Anyone who would like to see this going forward and knows C++: MapLibre is always on the lookout for contributors.