A few suggestions

Dec 24, 2008 at 4:02 PM

Thanks again for the incredible project!  Your work has allowed me to quickly port an existing mapping application over from Google Maps API into Silverlight with stunning results.

I do however have a two suggestions in regards to zoom that I have come up with while playing with the mapper control.

The first suggestion is exponential mouse-wheel scrolling.  Currently it seems you zoom out too fast at the higher levels and not fast enough at the lower levels.  An option allowing some sort of exponential speed in scrolling between zoom levels would be quite nice.  Since the area of the place being viewed almost quadruples for a square view while zooming out, you can get a feel that you're zooming out too quickly and lose focus on the area being zoomed.  Perhaps some small exponent between 1 and 2x as fast as the previous level while zooming in (or the same exponent divided off the speed when zooming out on levels) would help alleviate some of this issue.  This could be a purely optional property.  Obviously setting it to 1 would retain the existing functionality and setting it between 0 (but not 0) and 1 would give the inverse being described.

The second suggestion is a set of properties to limit the minimum and maximum zoom levels.  Currently it seems the defaults are 1 to 19.  The mapping application I have goes from 1 to 12.  At zoom level 19, imagery from zoom level 12 can become very distorted making the application essentially useless at these levels.  So introducing properties for limiting zoom levels would be great to prevent users from zooming in too closely.

I will give adding these features to the base control myself and will post any resulting code back here on this discussion.


Joshua R.
Dec 24, 2008 at 6:08 PM
For point 1, the zoom levels actually are already exponential.  Math.Power(level, 2).  I suppose you could increase this if you wanted.  However, I don't think you will have good results.  Most tile providers are have cut their tiles to line up with these levels, and going off this you will end up constantly between levels giving a blury image most of the time.  For point 2.  You can should be able to do this by overriding the properties for MinZoom, and MaxZoom.
Dec 24, 2008 at 7:49 PM
Thanks for the replies.  I'll definitely look into these.  I didn't know if the speed at which you zoom in was related to the zoom level or not.  As for the second one, I guess I should have looked at the code more closely.