Changeset 4290


Ignore:
Timestamp:
Mar 28, 2014, 4:41:07 PM (11 years ago)
Author:
ldelgass
Message:

Validate that map extents always require a projection to be specified

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gui/scripts/map.tcl

    r4288 r4290  
    5050        # defined below
    5151    }
     52
     53    public method isGeocentric {}
    5254    public method layers {}
    5355    public method layer { name }
     
    122124        set child [$_tree insert $parent -label $name]
    123125        $_tree set $child "title" [$layers get $layer.label]
    124         set type [$layers get $layer.type]
    125         if { ![info exists _layerTypes($type)] } {
    126             error "invalid layer type \"$type\": should be one of [array names _layerTypes]"
    127         }
    128         $_tree set $child "type" $type
     126        set layerType [$layers get $layer.type]
     127        if { ![info exists _layerTypes($layerType)] } {
     128            error "invalid layer type \"$layerType\": should be one of [array names _layerTypes]"
     129        }
     130        $_tree set $child "type" $layerType
    129131        foreach key { label description url } {
    130132            $_tree set $child $key [$layers get $layer.$key]
     
    137139    }
    138140    $_tree set root "label"       [$map get "about.label"]
    139     $_tree set root "extents"     [$map get "extents"]
    140141
    141142    set projection [$map get "projection"]
     143    set extents    [$map get "extents"]
    142144    if { $projection  == "" } {
     145        if {$extents != ""} {
     146            error "cannot specify extents without a projection"
     147        }
    143148        set projection "global-mercator"; # Default projection.
    144149    }
    145150    # FIXME: Verify projection is valid.
    146151    $_tree set root "projection" $projection
    147 
    148     set type [$map get "type"]
    149     if { $type == "" } {
    150         set type "projected";           # Default type is "projected".
     152    $_tree set root "extents"    $extents
     153
     154    set mapType [$map get "type"]
     155    if { $mapType == "" } {
     156        set mapType "projected";           # Default type is "projected".
    151157    }
    152     if { ![info exists _mapTypes($type)] } {
     158    if { ![info exists _mapTypes($mapType)] } {
    153159        error "unknown map type \"$mapType\": should be one of [array names _mapTypes]"
    154160    }
    155     $_tree set root "type" $type
     161    $_tree set root "type" $mapType
    156162
    157163    foreach {key path} {
     
    198204}
    199205
     206# ----------------------------------------------------------------------
     207# Returns if the map is geocentric (1) or projected (0)
     208# ----------------------------------------------------------------------
     209itcl::body Rappture::Map::isGeocentric {} {
     210    return [expr {[hints "type"] eq "geocentric"}]
     211}
Note: See TracChangeset for help on using the changeset viewer.