ThinkGeo.com    |     Documentation    |     Premium Support

Export BingMapsLayer to Bitmap

 


I am currently trying to export maps (without displaying them on the screen) that include a bingmapslayer using the gdiplusgeocanvas and the Layer.Draw() method.  This seems to work wonderfully for about half the maps i do, but for the other half I see half drawn tiles (i am using single tile) on the bingmapslayer, or my point layer will be off by a couple hundred miles from where the bing layer is, putting points in oceans and other countries occasionally. I do not have these issues when i do not use the bing maps overlay and use shapefiles instead. It looks to me as almost if the binglayer is still panning/zooming to my extent when the rendering process occurs for the bitmap. Does anybody know of a way that wait for the binglayer to catch up before I end drawing on my geocanvas, or know any other clues to what is going on? I can try to come up with some snippets of code to show what I am doing for clarification if neccasary.


Thanks,


Steven



Hello Steven, 
  
 Thanks for your post. 
  
 "my point layer will be off by a couple hundred miles from where the bing layer is, putting points in oceans and other countries occasionally" this problem looks like a projection problem, have you set the projection to your layer to fit the bingmapsoverlay? Because the bing map use the map unit as meter not decimal degrees. 
  
 " but for the other half I see half drawn tiles (i am using single tile) on the bingmapslayer", does this happen every time or just some time?  
  
 If you can provide a self-contained sample recreate the problem, that will helps a lot. 
  
 Regards, 
  
 Gary

Gary,


Sorry I took so long with my reply. I wrote up a quick app that demonstrates the issue I have been having.


Thanks in Advance for your reply,


Steven



BulkMapExample.zip (244 KB)

Gary,


I just wanted to clarify that I only see these issues when rendering off screen. When I use the map control inside an application (instead of exporting jpegs) the projection seem to work great.


Thanks Again,


Steven



Hello Steven,


Thanks for your further information and sample.


So for your two questions:


Frist, "my point layer will be off by a couple hundred miles from where the bing layer is, putting points in oceans and other countries occasionally", I have uploaded the result I made use your sample to your ftp folder, could you please pick up the image which conform this problem and upload here? I can compare it and get the result.


Second, Please see this image, is this "but for the other half I see half drawn tiles (i am using single tile) on the bingmapslayer"?



Thanks for your help, regards,


Gary



Gary,


The example app I should produce two copies of every map labled bing(number) and shape(number). So for example bing1.jpg should look the same as shape1.jpg. The errors should all be in the bing versions.  The points plotted are all US cities, so ocean points are erroneaus points. Off the top of my head two really good examples should be Bing87 (showing a half tile) and Bing32 (showing ocean points). Does this answer your question? Is there any more information I can provide that would be helpful.


Thanks,


Steven



Gary,


Here are the jpgs I am seeing for the examples I mentioned above. Just in case you aren't seeing the same results I am.


 


Thanks Again,


Steven



 



Hello Steven,


Thanks for the further information, here is the image of Bing87 and Bing32, I can't find the problem, any more suggestion?




Regards,


Gary



Gary,


Wow, I can't believe it. Could it possibly a hardware difference or network latency causing the disparity between our results? I am currently on a 70 Mbit connection, is your signifigantly more? If it is a latency problem, do you have any ideas on how to compensate?


Thanks,


Steven



Gary, 
 Are you seeing errors on any of the maps produced on your end? Could it just be that because of all the variables affecting bing’s response times, we just have different maps with errors? I have run my copy several times, and I always get maps with errors, but not always the same ones. 
  
 Thanks, 
 Steven

duplicate posts, my apologies



 



 



Hello Steven,  
  
 Here is the link you can download my test result: download.thinkgeo.com/forums/BingMapExport.zip 
  
 And I didn’t change any of your code, my internet connection won’t be better than yours, my hardware isn’t very good, I don’t see any errors at the end, I think a biggest difference is we use the different bingmap key. 
  
 I’m not sure what’s the root cause, we need find it out. 
  
 Regards, 
  
 Gary

Hello Steven, 
  
 I can find some image looks like your bing87, didn’t render all tile, I can recreate this problem, but it’s not the same image, so it looks like some problem from bing map server side. 
  
 Regards, 
  
 Gary

Gary,


Is there anything that I can try on my end to avoid or handle these errata.  Also, if this is a server side error from bing how come it doesn't thow or draw an exception?


Thanks Again,


Steven 



Hello Steven, 
  
 Could you please get my result file and see if there is some points location is wrong? Then our product team can dig in it. 
  
 Regards, 
  
 Gary

Gary,


I have looked through your posted batch of output maps and I am unable to find any of the "translation" errors in , only the half tile issue. However I think I have discovered a new factor in that determines how frequent the errors show up. If you increase the size of the map, it greatly increases the likelyhood of mis-drawn maps.  I discovered this today comparing my example code I have posted on this forum to my actual application. If I alter the example code I upload to render the map at 1440x850(+50 px label to make an image of 1440x900) instead of the 500x300 my example application orginally rendered, I can make virtually every map have a mis-drawing.  Possibly this could help you recreate my issue on your end. I suppose this discovery could present a possible way to reduce the likelyhood of incident on my end, if I output a low resolution map and blow up the resulting bitmap to be larger in the jpeg. However I am seeing reletively frequent occurance at 500x300 (which is pretty low) and my application for the maps really benefits from the higher resolution imagery. Would it help your product team if I repost my code with the map resoltion increased?


Thanks,


Steven



Gary,


I have taken the liberty of uploading my newest revision of my example code.


Thanks,


Steven



001_BulkMapExample.zip (245 KB)