- Timestamp:
- Mar 28, 2014 9:56:19 AM (10 years ago)
- Location:
- trunk/gui/scripts
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gui/scripts/map.tcl
r4281 r4288 25 25 itcl::class Rappture::Map { 26 26 private variable _tree ""; # Tree of information about the map. 27 private variable _isGeocentric 0;28 27 private variable _isValid 0; 29 28 private variable _nextLayer 0; # Counter used to generate unique … … 31 30 private common _layerTypes 32 31 private common _mapTypes 33 32 array set _layerTypes { 33 "raster" 0 34 "elevation" 1 35 "polygon" 2 36 "points" 3 37 "circle" 4 38 "line" 5 39 } 40 array set _mapTypes { 41 "geocentric" 0 42 "projected" 1 43 } 34 44 protected method Parse { xmlobj path } 35 45 … … 40 50 # defined below 41 51 } 42 public method isGeocentric {}43 52 public method layers {} 44 53 public method layer { name } … … 54 63 return [$_tree get $id "type" ""] 55 64 } 56 public method style { name } {57 set id [$_tree findchild root->"layers" $name]58 if { $id < 0 } {59 error "unknown layer \"$name\""60 }61 return [$_tree get $id "style" ""]62 }63 65 } 64 66 … … 70 72 error "bad value \"$xmlobj\": should be LibraryObj" 71 73 } 72 array set _layerTypes {73 "raster" 074 "elevation" 175 "polygon" 276 "points" 377 "circle" 478 "line" 579 }80 array set _mapTypes {81 "geocentric" 082 "projected" 183 }84 85 74 Parse $xmlobj $path 86 75 } … … 149 138 $_tree set root "label" [$map get "about.label"] 150 139 $_tree set root "extents" [$map get "extents"] 151 $_tree set root "projection" [$map get "projection"]152 140 153 set mapType [$map get "type"] 154 if { $mapType == "" } { 155 set mapType "projected" 141 set projection [$map get "projection"] 142 if { $projection == "" } { 143 set projection "global-mercator"; # Default projection. 144 } 145 # FIXME: Verify projection is valid. 146 $_tree set root "projection" $projection 147 148 set type [$map get "type"] 149 if { $type == "" } { 150 set type "projected"; # Default type is "projected". 156 151 } 157 158 if { ![info exists _mapTypes($mapType)] } { 152 if { ![info exists _mapTypes($type)] } { 159 153 error "unknown map type \"$mapType\": should be one of [array names _mapTypes]" 160 } elseif {$mapType == "geocentric"} {161 set _isGeocentric 1162 154 } 163 $_tree set root "type" $ mapType155 $_tree set root "type" $type 164 156 165 157 foreach {key path} { … … 206 198 } 207 199 208 # ----------------------------------------------------------------------209 # Returns if the map is geocentric (1) or projected (0)210 # ----------------------------------------------------------------------211 itcl::body Rappture::Map::isGeocentric {} {212 return $_isGeocentric213 } -
trunk/gui/scripts/mapviewer.tcl
r4287 r4288 613 613 614 614 foreach layer [$dataobj layers] { 615 set layerType [$dataobj type $layer] 616 switch -- $layerType { 617 "elevation" { 618 set _haveTerrain 1 619 } 620 } 615 if { [$dataobj type $layer] == "elevation" } { 616 set _haveTerrain 1 617 break 618 } 621 619 } 622 620 } … … 863 861 864 862 if { $_mapsettings(type) == "geocentric" } { 865 SendCmd "map reset geocentric" 866 } else { 863 SendCmd [list map reset "geocentric"] 864 } else { 865 set proj $_mapsettings(projection) 867 866 if { $_mapsettings(extents) == "" } { 868 if { $_mapsettings(projection) == "" } { 869 SendCmd "map reset projected global-mercator" 870 } else { 871 SendCmd "map reset projected {$_mapsettings(projection)}" 872 } 867 SendCmd [list map reset "projected" $proj] 873 868 } else { 874 SendCmd "map reset projected {$_mapsettings(projection)} $_mapsettings(extents)" 869 foreach {x1 y1 x2 y2} $_mapsettings(extents) break 870 SendCmd [list map reset "projected" $proj $x1 $y1 $x2 $y2] 875 871 } 876 872 } … … 879 875 terrain-wireframe 880 876 } 877 # FIXME: need to specify initial layer in one command 878 SendCmd "map layer delete base" 881 879 SendCmd "imgflush" 882 880 } … … 1579 1577 set _visibility($tag) 1 1580 1578 1581 set type [$dataobj type $layer] 1582 set style [$dataobj style $layer] 1583 switch -- $type { 1579 array set info [$dataobj layer $layer] 1580 switch -- $info(type) { 1584 1581 "elevation" { 1585 1582 array set settings { … … 1591 1588 -wireframe 0 1592 1589 } 1593 array set settings $style 1590 if { [info exists info(style)] } { 1591 array set settings $info(style) 1592 } 1594 1593 SendCmd "map terrain edges $settings(-edges)" 1595 1594 set _settings(terrain-edges) $settings(-edges)
Note: See TracChangeset
for help on using the changeset viewer.