ThinkGeo.com    |     Documentation    |     Premium Support

Shapefile Projection not correct on Bing Maps

Hello ThinkGeo,



a while ago I had problems with data projection on GoogleMaps-Layer.



gis.thinkgeo.com/Support/Dis...fault.aspx



Now I'm facing the same offset problem with BingMaps.



I tried my solution from the upper post but it does not work.



Also I have a second problem you can see here: screencast.com/t/klPr3T98h

In the video I try to center on the position where the river makes a loop. When  zooming to scale values smaller than 18023 the maps center point jumps to  incorrect positions and BingMap does not show the expected background. Is this a  bug in BingMaps-Layer?



I have attached a small sample application where you can see my issues.



Any solution?

Thomas



GISWPF_BingMaps.zip (276 KB)

Thomas,


  If you have your data projection working with Google Map, there is no reason it would not work with Bing Map. Google Map and Bing Map use the exact same projection (Spherical Mercator) as OpenStreetMap does. Before we spend time and effort on this projection issue, I want to make sure that you are using the latest bug release. The latest version is 5.5.0.61. I believe that the Developement team fixed a bug related to Bing Map in the Wpf edition lately. Please, try the latest version and let us know how it goes. If the problem is still there, we will thouroughly look at the problem. Thank you.



Val,


I tried it again with 5.5.0.61 and as a result of the new version the offset is much bigger now. 


If you try my sample application you also have to comment out this line (line number 16).


oBingLayer.CacheDirectory = Nothing


This line worked with 5.5.0.49. In 5.5.0.61 it throws an exception.


Thomas



Thomas,


  I could test myself and I also notced the problem with BingMap. This is a Bing Map specific problem. I tested with some other data in geodetic and I can clearly see the problem in Bing Map and not in other background maps such as Open Street Map as you can see in the screen shots below.


 


With Bing Map, offset problem:



 


With Open Street Map, No problem:



 


 I tested with the latest version of both the production and developement edtions. I contacted the Development team to see what is the status on fixing this bug. Thank you for reporting this.



Thomas,


  Actually, there is no bug. You need to set the property Map1.ZoomLvelSet to BingMapsZoomLevelSet. Since Bing Map uses a different set of zoom levels compared to the default one of Map Suite Map, you need to change ZoomLevelSet property to the zoom levels of Bing Map:


Map1.ZoomLevelSet = new BingMapsZoomLevelSet();


 You csn see the result in the screen shot below with your shapefile aligning fine with Bing Map:




Val,


thanks for reply.


But your solution did not solve the problem. If you look at the following screenshots you can see that Bing-Maps always has an offset compared to Google (also to OSM).



Also I want to know how about the exception if I set oBingLayer.CacheDirectory = nothing


Moreover the Zoomlevelset for BingMaps is another challenge for me. We have many Layers where we work with activated FileBitmapTileCache. This means we can't use the cached data for BingMaps because the tiles are created to match scales from your default Zoomlevelset.


Does this mean we have to create additional cache data for BingMaps-Scales? Is there another solution or can I expect a solution in the future when you have implemented reprojection of raster data.


Thanks Thomas


 



Thomas,


 I think you are right. I setup my maps in the same conditions as yours and I could also see the offset problem on Bing Map. Bing Map seems to be incorrectly offset a few meters to the north west. Let us investigate this a little bit more and I will let you know as soon as I have something more concrete on this case. Thank you for spotting this.



Thomas,


  We could recreate the problem that you described and this problem occurs with BingMapsLayer in the Wpf edition and not in the Desktop edition which is strange. We are going to need more time to fix the problem. In the meantime, have you tried BingMapsTileOverlay as a workaround? We created this class as an alternative of BingMapsOverlay with specific optimizations for Wpf.


 For the CacheDirectory exception, we fixed the issue in the latest version. You will need the version 5.5.71.0 or higher. If it is not available today, it should be tomorrow.


 I let you know that we are working on improving BingMaps related classes so that in the future they can be used like Google Map without having to set a specific zoomlevelset to the map.


Thank you.



Thomas,


  We could recreate the problem that you described and this problem occurs with BingMapsLayer in the Wpf edition and not in the Desktop edition which is strange. We are going to need more time to fix the problem. In the meantime, have you tried BingMapsTileOverlay as a workaround? We created this class as an alternative of BingMapsOverlay with specific optimizations for Wpf.


 For the CacheDirectory exception, we fixed the issue in the latest version. You will need the version 5.5.71.0 or higher. If it is not available today, it should be tomorrow.


 I let you know that we are working on improving BingMaps related classes so that in the future they can be used like Google Map without having to set a specific zoomlevelset to the map.


Thank you.



Thomas,


 The offset problem has been improved. Please, see the screenshots below. Please, get the build 5.5.0.72 or later. We are still working on the issue and will provide the complete solution in a later build. Thank you.


With Google Map:



 


With Bing Map:




Val, 
  
 thanks for reply. I will continue my work on BingMaps until you have solved the specific zoomlevel issue. 
  
 Please inform me if you have completed your solution. 
  
 Thomas

Thomas,


  As we are working on completely fixing this issue, can you help us by giving us your feedback? With the latest 5.5.0.72 build, how much improvment have you seen? By how much and in what direction can you still see the offset problem? Thank you for helping us in improving our products.



Val,


I can see your improvement but there is still an offset <10m. If you look at your posted images you can see the direction of the offset. I also have attached new images where you can see the difference between Google and Bing. I think there is still an offset to lower right.




Thomas



Thomas,


  Thank you for sharing that information. It is going to help us for fixing completely this issue. We are working on it and we will let you know when we will have it ready. Thank you.



Thomas,


  We have done some more research and it appears that there might be a slight difference between Bing Map and Google. We tested by calling directly the API for Bing Map and Google Map for a 512*512 bitmap, at the same zoom level and at the same center point. You can see in the image below that there is a slight difference beteen the two.


BingMaps:

dev.virtualearth.net/REST/v1...12&key=




GoogleMaps:

maps.google.com/maps/api/sta...nsor=false


 We are still working on this issue. We also contacted Microsoft and posted a thread on MSDN forum on this subject.

 




Thomas,


  Based on the response we got from Microsoft forum, it turns out that the difference that we can observe between Bing Map and Google map is due to different data sources they are using. The aerial imagery is shot at different angles which explains why there will be some difference between them. The difference is around 5-6 meters which is pretty insignificant for most application but we wanted to know exactely what was going on. Thank you for pointing that out to us and you can read the full explaination from Microsoft on that forum: social.msdn.microsoft.com/Fo...cf9836d723


Thank you.