I am looking to overlay a PNG map image on top of a mapping service such as MapBox or Google Maps. The map PNG is a custom design to suit the application but is not geographically accurate (not too far out, but is not a simple shift or resize etc). The issue is when trying to show the user's location on top of this map, it would show the location pin correctly on the accurate map, but would not appear correctly on the PNG map.
To get the map to line up, I have previously used QGIS to best align the maps.
My understanding is that it could perhaps be solved by applying some sort of skew algorithm on the user's coordinates to match up with the PNG map. Does QGIS offer a solution to this, or is there an existing algorithm or program to help with this?
I imagine that the solution would allow a user to select reference points on both maps to build a list of coordinate mappings, and then would generate a function that would take the user's coordinates and output coordinates that fit on the PNG map.