ThinkGeo.com    |     Documentation    |     Premium Support

Set zoom level based on distance

Hello,


I'm using VB.NET 2010 and Map Suite Desktop Edition.  I'm converting an old VB6 application that used MapInfo MapX component.  The map in MapX had a Zoom property which allowed you to set the zoom level based on a distance.  Is there some way I could duplicate this functionality using Map Suite Desktop Edition?  I've looked at all of the examples and discussion forum topics, haven't found anything.  All of the zooming seems to be based on scale and zoom levels.


Thanks,


Serena



Hi Serena,


Thanks for your question!



Some of this might depend on what the distance value represents, can you provide me some additional information on what the distance value represents in your current application?


You have a couple of options but they will both involve the modification of existing ZoomLevel.Scale values.


For your first option you could setup a new ZoomLevelSet but you will need to apply this new ZoomLevelSet to the map and all of your Layers. If you setup a new ZoomLevelSet you are using an advanced feature set and thus will need to set each of your Layers up to use this new ZoomLevelSet 'manually'.


I would actually recommend modifying the default ZoomLevelSet by simply setting up custom Scales for each ZoomLevel. This way you don't have to remember to set each of your Layers to use 'myCustomZoomLevelSet' and can just the default ZoomLevelSet already in the API.


You might want to check out our Wiki which contains two potentially helpful sample applications regarding custom ZoomLevels:

wiki.thinkgeo.com/wiki/Map_S...rtitioning

wiki.thinkgeo.com/wiki/Map_S...oom_Levels

 



The distance value represents miles.  So the user can enter something like 1.5 in the miles text box, and it will set the zoom level/scale so that the distance across the map is 1.5 miles.


I will take a look at the examples.  Thanks!



You are so welcome, please feel free to let us know if there is any problem. 
  
 Thanks, 
 Johnny