Quantcast
Viewing all articles
Browse latest Browse all 2341

New Post: Zooming Using Trackbar

This works great for me, sorry not VB. Zooming in, then out, or vice-versa, will take you back to where you started.
    private void trackZoom_ValueChanged(object sender, EventArgs e) {
        // If we are not showing jpegs/rasters we can update the zoom for each
        //click of track bar. This code is duplicated in the mouseup event
        //where we handle zooming if jpegs are being displayed.
        //if (!Globals.Globals.ShowJPGs) {
            int trackMovedAmount = trackZoom.Value - trackZoomPreviousValue;

            if (trackMovedAmount != 0) {
                // Get existing extents
                Extents extOld = new Extents();
                extOld = (Extents)map.Extents;
                Extents extNew = new Extents();

                // Save new value
                trackZoomPreviousValue = trackZoom.Value;

                if (trackMovedAmount > 0) { //zoom in
                    double zoomFactor = 0.2;
                    for (int i = 0; i < trackMovedAmount; i++) {
                        extNew.SetBounds(extOld.xMin + (double)zoomFactor * (extOld.xMax - extOld.xMin), extOld.yMin + (double)zoomFactor * (extOld.yMax - extOld.yMin), 0, extOld.xMax - (double)zoomFactor * (extOld.xMax - extOld.xMin), extOld.yMax - (double)zoomFactor * (extOld.yMax - extOld.yMin), 0);
                        extOld = extNew;
                    }

                }
                else { //zoom out
                    double zoomFactor = 0 - 0.3333333; 
                    for (int i = 0; i < (0 - trackMovedAmount); i++) {
                        extNew.SetBounds(extOld.xMin + (double)zoomFactor * (extOld.xMax - extOld.xMin), extOld.yMin + (double)zoomFactor * (extOld.yMax - extOld.yMin), 0, extOld.xMax - (double)zoomFactor * (extOld.xMax - extOld.xMin), extOld.yMax - (double)zoomFactor * (extOld.yMax - extOld.yMin), 0);
                        extOld = extNew;
                    }
                }
                map.Extents = extNew; //Required to have new extents take effect
                mapWidth = DistanceAcrossMap();
        }
  }
Don
Readfield, ME US

Viewing all articles
Browse latest Browse all 2341

Trending Articles