ThinkGeo.com    |     Documentation    |     Premium Support

BingTileOverlay

Hi Guys,


I am trying to use the BingMapsTileOverlay. I see that you also have a BangMapOverlay but I am getting errors when I try to use that while the BingMapsTileOverlay does seem to work as far as bringing up a roadmap. But I am finding with the BingMapsTileOverlay that  the MapStyle property doesn't seem to be working when it is set to anything other then RoadMap.


This is the code:



BingMapsTileOverlay



 bingMapsOverlay = new BingMapsTileOverlay("our key");

bingMapsOverlay.MapStyle =


bingMapsOverlay.LogoMode =


_map.Overlays.Add(


BingMapsMapType.Aerial;BingMapsLogoMode.NoLogo;"BING", bingMapsOverlay);

Thanks,


Chris



 



That code didn’t paste in correctly but there isn’t anything to it anyway- 
  
 BingMapsTileOverlay bingMapsOverlay =  
                 new BingMapsTileOverlay(“our key”); 
             bingMapsOverlay.MapStyle = BingMapsMapType.Aerial; 
             bingMapsOverlay.LogoMode = BingMapsLogoMode.Default; 
             _map.Overlays.Add(“BING”, bingMapsOverlay);

Hello Christopher. 
  
 Which version are you using? In our newest version, we don’t have MapStyle anymore, instead it we are using 
  
  bingMapsOverlay.MapType = BingMapsStyle.Aerial; 
  
 Could you please update to the new version and have a try? 
  
 Regards, 
  
 Gary

Hi Gary, 
  
 So this is interesting I made the change that I think you are suggesting here is the code now -  
  
 BingMapsOverlay bingMapsOverlay = 
                 new BingMapsOverlay(“our key”); 
 bingMapsOverlay.MapType = BingMapsMapType.Aerial; 
 bingMapsOverlay.CacheDirectory = @“C:\Temp\BING”; 
 _map.Overlays.Add(“BING”, bingMapsOverlay); 
  
 This does seem to work as far as downloading tiles to the specified tile cache but as soon as I start panning I get this error - 
  
 The process cannot access the file ‘C:\Temp\BING\BingMapsMetadata.xml’ because it is being used by another process. 
  
 I am using version 5.5.0.96 of the wpf desktop edition. 
  
 And here is the call stack - 
  
 > mscorlib.dll!System.IO.__Error.WinIOError(int errorCode = -2147024864, string maybeFullPath = “C:\Temp\BING\BingMapsMetadata.xml”) + 0x321 bytes  
   mscorlib.dll!System.IO.FileStream.Init(string path, System.IO.FileMode mode, System.IO.FileAccess access = Write, int rights, bool useRights = false, System.IO.FileShare share, int bufferSize = 4096, System.IO.FileOptions options, Microsoft.Win32.Win32Native.SECURITY_ATTRIBUTES secAttrs, string msgPath, bool bFromProxy, bool useLongPath) + 0x477 bytes  
   mscorlib.dll!System.IO.FileStream.FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) + 0x54 bytes  
   System.Xml.dll!System.Xml.XmlDocument.Save(string filename) + 0x8b bytes  
   MapSuiteCore.dll!ThinkGeo.MapSuite.Core.BingMapsLayer.KVw=(string Klw= = “C:\Temp\BING\BingMapsMetadata.xml”) + 0x185 bytes  
   MapSuiteCore.dll!ThinkGeo.MapSuite.Core.BingMapsLayer.KFw=() + 0xa2 bytes  
   MapSuiteCore.dll!ThinkGeo.MapSuite.Core.BingMapsLayer.OpenCore() + 0x3d bytes  
   MapSuiteCore.dll!ThinkGeo.MapSuite.Core.Layer.Open() + 0x3a bytes  
   WpfDesktopEdition.dll!ThinkGeo.MapSuite.WpfDesktopEdition.LayerTile.DrawCore(ThinkGeo.MapSuite.Core.GeoCanvas geoCanvas = {ThinkGeo.MapSuite.Core.GdiPlusGeoCanvas}) + 0x257 bytes  
   WpfDesktopEdition.dll!ThinkGeo.MapSuite.WpfDesktopEdition.Tile.Draw(ThinkGeo.MapSuite.Core.GeoCanvas geoCanvas = {ThinkGeo.MapSuite.Core.GdiPlusGeoCanvas}) + 0xbd bytes  
   WpfDesktopEdition.dll!ThinkGeo.MapSuite.WpfDesktopEdition.Tile.KxU=(object LBU= = {ThinkGeo.MapSuite.Core.GdiPlusGeoCanvas}) + 0xe6 bytes  
   mscorlib.dll!System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(object state) + 0x2d bytes  
   mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool ignoreSyncCtx) + 0xb0 bytes  
   mscorlib.dll!System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() + 0x5a bytes  
   mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch() + 0x147 bytes  
   mscorlib.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() + 0x2d bytes  
  
 Thanks, 
 Chris

Also if I run the app and then let it try and load the tiles without doing any panning, most of the tiles will show up but then I will get  this error -


Parameter is not valid.


here is the callstack -


 System.Drawing.dll!System.Drawing.Bitmap.Bitmap(string filename) + 0x86 bytes 

  MapSuiteCore.dll!ohM=.S14=.Ohw=(object n14= = {System.Drawing.Graphics}) + 0xc7 bytes 

  mscorlib.dll!System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(object state) + 0x2d bytes 

  mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool ignoreSyncCtx) + 0xb0 bytes 

  mscorlib.dll!System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() + 0x5a bytes 

  mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch() + 0x147 bytes 

  mscorlib.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() + 0x2d bytes 

 



Hello Christopher, 
  
 Thanks for your further information. 
  
 Are you using multipletile like: bingMapsOverlay.TileType = TileType.MultipleTile ? 
  
 Sorry I can’t recreate your problem, your code didn’t have any problem, could you please provide a self-contained sample that can recreate the problem? 
  
 Thanks for your help and patience. 
  
 Regards, 
  
 Gary