I have a question for you all.
I just discovered an unexpected (to me) behavior of explore mode in gism. I thought explore mode only tried to fill the display window with the rendered map. However, it also changes the region resolution as you zoom in and out. To give an example:
Start with the 30m DEM in Spearfish and set the region to match the DEM
Zoom in and the resolution increases to 10m, 5m, 1m
Zoom out and the resolution decreases to 60m, 90m, etc
Essentially, it is changing so that a constant number of grid cells are represented in the display window.
I first thought this was a bug and have been trying to find where it is located over the past day. I found it and discovered that it is intentional. So here’s the question.
Is this the way we want zooming to work in this special mode? If so, we need to change the mouse over help to make sure this is clear. If not, we need to change how explore mode works so that it does not change resolution. I can see advantages and disadvantages of each.
I’ve included the code of the relevant function below.
Michael
Michael Barton, Professor of Anthropology
School of Human Evolution & Social Change
Center for Social Dynamics and Complexity
Arizona State University
phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton
— relevant function of mapcanvas.tcl with code lines marked that change resolution.
proc MapCanvas::currentzoom { mon } {
variable zoom_attrs
variable exploremode
variable monitor_zooms
global canvas_w
global canvas_h
Fetch the current zoom settings
set region {}
foreach attr $zoom_attrs {
lappend region $monitor_zooms($mon,1,$attr)
}
If explore mode is engaged blow up the region to match the canvas
if {$exploremode($mon) == 1} {
Set the region to the smallest region no smaller than the canvas
set canvas_ar [expr {1.0 * $canvas_w($mon) / $canvas_h($mon)}]
set expanded_nsew [MapCanvas::shrinkwrap 1 [lrange $region 0 3] $canvas_ar]
puts “expanded = $expanded_nsew”
foreach {n s e w} $expanded_nsew {break}
Calculate the resolutions
—> lappend expanded_nsew [expr {1.0 * ($n - $s) / $canvas_h($mon)}]
—> lappend expanded_nsew [expr {1.0 * ($e - $w) / $canvas_w($mon)}]
set region $expanded_nsew
}
return $region
}