ThinkGeo.com    |     Documentation    |     Premium Support

How to dynamically add a new zoom level

I have a WPF map that uses the MicrosoftMapLayerExtension. There are 20 zoom levels. After the user zooms to the 20th level, I clear the map's overlays and then load a high-resolution image of the same extent using GdiPlusRasterLayer. Since the image is high-resolution, the user should  be able to zoom several levels further into the image. The problem I have is that after I clear the overlay containing the MicrosoftMapLayerExtension, and load the overlay with the GdiPlusRasterLayer, the image displays at zoom level 20 and I cannot zoom any further into high-resolution image.


How can I dynamically add the new zoom levels to the map?



Hi Gregory, 
  
 To add more zoom levels to zoom on the map, you can simply add more scales into the ZoomLevelScales collection on the map. For example the code below. You can find that the PanZoomBar on the upper left corner has two more levels available to zoom in. Just remember to add using System.Linq to make it compiled.  
  
 Map1.ZoomLevelScales.Add(Map1.ZoomLevelScales.Min() / 2); 
 Map1.ZoomLevelScales.Add(Map1.ZoomLevelScales.Min() / 2); 
  
 On the other hand, Bing maps supports 23 levels of cache images. I don’t think it’s good to make your level count beyond 23. Also in WPF, we have a new BingMapsTileOverlay which has better performance than using Layer; please have a try. 
  
 Thanks and let us know if you have more queries, 
 Howard

Should I be using the  BingMapsTileOverlay for my WPF client instead of the MicrosoftMapLayerExtension? Coupla things - we are using a custom MicrosoftMapLayer extension DLL that calls a web  service instead of the Bing server, and we have to support offline access (that is, tiles cached temporarilly on the WPF  client)

Hi Gregory, 
  
 BingMapsTileOverlay is suitable if using local cached tiles is the only specialized thing you need, because it inherits from TileOverlay and that makes it support cache. But if you are using a different server address, then maybe keep using your costumed layer would be a better choice. 
  
 Regards, 
 Tsui