ThinkGeo.com    |     Blog    |     Wiki    |     Support

Bing Imagery geolocation appears shifted in latest release

I’m not sure which exact build version this starts in, but when I use the latest ThinkGeo.MapSuite (version 10.6.*), I am seeing the map imagery appear shifted by 10-20 meters in a northwest direction from my actual GPS position (see attached screenshots). This is occurring using a BingMapOverlay on my map view. I have not yet worked back to determined which version this works correctly in.

Here’s images with my GPS position shown correct on Apple maps, and shifted in my app using a BingMapsOverlay…
Note: the satellite imagery in Apple maps is newer and shows 2 extra houses, while the Bing imagery in my app only shows one. But you should be able to correlate the GPS positions from each image by looking at other features, like the road for example.

Incorrect GPS position using BingMapOverlay:

Correct GPS position using Apple maps:

Hi Doug,

Thanks to let us know your question.

I want to double check whether your code hadn’t get changed but after upgrade package to 10.6.* the same position looks shift.

We tried in our sample but hadn’t notice the same problem, for locate where is the problem, could you please create a simple sample which can reproduce this shift with your render logic, so our developer can look into it?

And for previous version number, if we know a range for example it’s version 9 or version 10 should be also helpful.

Regards,

Ethan

Hi Doug,

Our developer check the history and found that’s because we enhanced the default scale strategy for better performance.

Please try the solution as below:

        ZoomLevelSet zoomLevelSet = new ZoomLevelSet();
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(295829355.45 * 2));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(295829355.450));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(147914677.73));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(73957338.86));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(36978669.43));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(18489334.72));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(9244667.36));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(4622333.68));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(2311166.84));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(1155583.42));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(577791.71));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(288895.85));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(144447.93));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(72223.96));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(36111.98));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(18055.99));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(9028.00));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(4514.00));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(2257.00));
        zoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(1128.50));

I hope that helps resolve the issue for you.

Regards,

Ethan

Hi Ethan,

Sorry I have not had time to respond sooner… I’ve been tied up with other tasks. But I should be able to try your solution later today. I will let you know if it works.

Thanks!
-Doug

Hi Doug,

Thanks for let us know it, your coming feedback is welcome.

Regards,

Ethan

Ethan,

It took a little later to get to test this, but I just implemented your code and did some testing. That seems to fix it and get my GPS position showing correctly. Thanks for the help!

-Doug

Hi Doug,

Thanks for your feedback, I am glad to hear that’s helpful.

Any question please let us know.

Regards,

Ethan