ThinkGeo.com    |     Documentation    |     Premium Support

Map-Refresh issues

Hello ThinkGeo-Team,


i have two issues when refreshing the Map-Conrol (v.5.5.62.0).


1.) If I refresh my overlay using one of the following methods. I recognized that the Map-Control only raises the OverlayDrawing event. The OverlaysDrawing event only occurs on the first load of the map data or if I change map extent.



    WPFMAP.Refresh(WPFMAP.Overlays("OSM"))
    WPFMAP.Overlays("OSM").Refresh()
 
 

I think this is not the behaviour you describe in your documentation -> "Occurs before all overlays are drawing."


2.) To activate the Caching system at runtime I use the following code.


If I set TileType property of overlay to MultipleTile everything works fine. But if I change it to SingleTile and activate the caching system an exception is thrown.



 Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click
    If ToolStripButton2.Checked Then
      DirectCast(WPFMAP.Overlays("OSM"), ThinkGeo.MapSuite.WpfDesktopEdition.LayerOverlay).TileType = ThinkGeo.MapSuite.WpfDesktopEdition.TileType.SingleTile
    Else
      DirectCast(WPFMAP.Overlays("OSM"), ThinkGeo.MapSuite.WpfDesktopEdition.LayerOverlay).TileType = ThinkGeo.MapSuite.WpfDesktopEdition.TileType.MultipleTile
    End If
  End Sub
 
 

Thomas



Hello Thomas, 



Thanks for your post. 



Yes the description of OverlaysDrawing is not right, we will fix it. 



For your second question, sorry to say, we don't support cache in single tile mode, because in single tile mode, every time you try to drag the map, even a little distance, it will request the server for new image, which means you need to create a new cache for this "new" image, it will be a lot of cache if you do this way. 



Any more questions please feel free to let us know. 



Regards, 



Gary



Hello Gary, 
  
 does this mean that I can’t use the OverlaysDrawing event to catch the begin of maps drawing process? What does OverlaysDrawing do? What is the right description? 
  
 On my second question: 
 If I enable the TileCache of LayerOverlay in SingleTile-Mode it throws an exception. But if I ignore the exception the caching systems works fine also in the SingleTile-Mode - speed is much better and tiles are stored in the cache directory. I do not know what you mean by ‘…you need to create an new cache for this “new” image…’. I think caching system also works in “SingleTile” mode. I made some more tests and recognized that the exception is thrown when calling oLayerOverlay.Refresh() after setting the TileCache property of WPFMAP. When calling Map.Refresh(oLayerOverlay) everything works fine. I think this is a bug! 
  
 Thomas

Thomas, 
  
 I don’t get exception when I enable TileCache in SingleTile mode so I couldn’t recreate the second problem, could you provide more code to help us recreate it, meanwhile I will try to contact with Gary to check if he had more information or not. 
  
 Thanks, 
 James

Hello James,


here is a sample application where you can recreate my problem.


1. Click on TileMode Single


2. Click on Enable Cache


Thomas



GISWPF_BingMaps2.zip (277 KB)

Thomas, 
  
   Relating to one of your question regarding the event.  We will make changes so that the Map.Refresh overloads will ensure that the OverlaysDrawing event will fire.  Currently is you call the Refresh with any parameters it will not get raised.  I will still need to look into the other issue. 
  
 David

Thomas, 
  
  The event changes are in to handle the OverlaysDrawing issue, get the build 5.5.75.0 for that.  I am still working on the cache issue. 
  
 David

Thomas, 
  
   In playing with your sample I am able to re-create the issue.  Interestingly enough though if you start with multi-tile and turn on caching and then switch to single tile mode then single tile works and no error is thrown.  Interesting…  More to come… 
  
 David

Thomas, 
  
   I wanted to let you know I have not had time to work on this yet and it may be tomorrow to figure out the last item relating to the cache. 
  
 David

Thomas, 
  
   This is still in the queue and will most likely be looked at Monday. 
  
 David

Hello Thomas, 
  
 Sorry for waiting and thanks for your patience, our product team is working on this problem now, I will post the result here as soon as we fix this problem. 
  
 Sorry for the inconvenience. 
  
 Regards, 
  
 Gary