How to map any arbitrary two points from image to mapview?

Hi,
Your posts are very informative and interesting, I am freelance IOS developer and stuck in a situation. I posted on many forums but still could not get answer. Would you please give me some solution abt this?

To summarise - you want to take an image of a map and then relate that map to the GPS position information displayed in Apple Maps, right?

Here’s what I think you need to do.

  1. get the image
  2. align one reference point on the image with the same point on the map
  3. scale and rotate the image so that the image matches the map
  4. check the alignment and scale of the image by comparing a second known point on the image and map.

After reading your stack overflow post I don’t think you can do this with two points - instead, position one point first and then perform the scale and rotate. Every other point on the map is your second reference as you should be able to see the image aligning with the map as you move it. In fact the more points the better, as it will more readily indicate to you if the projection used by your map image is different from the projection used by Apple.

I can see how this would be a useful app but getting it to work accurately is going to be incredibly difficult, while appearing at first glance to be a simple task!

Thanks for taking your time to suggest the solution. Well, the solution should be possible with two points cause reference app is doing this with two points.

It is possible, what I am saying is that when the user is sizing and rotating the app they can look at any points they happen to recognise. If they have selected an anchor point for the map image to rotate and it is correctly placed then a single two-finger combine zoom and rotate gesture should be enough to manipulate the map so that a second reference point is aligned.

Thanks for taking your time, users won’t interact to overlap the image over map by themselves by rotating or zooming. They would only choose two points from image and two point from map and then app would do the required scaling and rotation to coincide those points.
Please let me know your thoughts about this.

I think it is trying to be simpler but will end up working less well and will actually be more work for the user. If you look at maps (of any kind, not just Apple) there is often some variability between features that you might use to pinpoint an exact location. Add to that the metres of uncertainty that can be present in GPS output and maps are never going to align very well with just the two point solution and no manual input even if your calculations (scaling, translation) are as good as it is possible for them to be.

I would always overlay the image over the existing maps and allow for adjustment any time the user notices something isn’t exactly right. Sure there could be GPS issues that make the map pointer appear a little way from where they can see they are standing but I don’t think users think like that. If standing on a crossroads they want the pointer to show they are on a crossroads. Having the ability to tune the image position at any time might be a really good user experience. If it was me I would like to pick one point that they can tell is correct and appears on both built-in maps and the image to overlay and then adjust with a simple gesture.

Here are those points’ text in case reference would be more available.

Step 1: Take a picture of your map or use a photo from your photo library. Ensure North is up.
Step 2: Choose a point on the paper map and locate it on the standard map.
Step 3: Repeat for another point. Points that are farther apart give better results.
Step 4: Preview the map and check alignment. Adjust the transparency if required.
Finish: Now you can see your current location on the paper map.