Changeset 3748 for TI05-delivery/ows_framework/branches/ows_framework-refactor/ows_common/ows_common/pylons/wms_controller.py
- Timestamp:
- 03/04/08 15:45:26 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TI05-delivery/ows_framework/branches/ows_framework-refactor/ows_common/ows_common/pylons/wms_controller.py
r3697 r3748 104 104 dims = {} 105 105 for dimName, dim in layer.dimensions.items(): 106 dims[dimName] = Dimension(valuesUnit=dim.units, 106 dimParam = self._mapDimToParam(dimName) 107 dims[dimParam] = Dimension(valuesUnit=dim.units, 107 108 unitSymbol=dim.units, 108 109 possibleValues= … … 169 170 return format 170 171 172 _escapedDimNames = ['width', 'height', 'version', 'request', 173 'layers', 'styles', 'crs', 'srs', 'bbox', 174 'format', 'transparent', 'bgcolor', 175 'exceptions'] 176 def _mapDimToParam(self, dimName): 177 """ 178 Dimension names might clash with WMS parameter names, making 179 them inaccessible in WMS requests. This method maps a 180 dimension name to a parameter name that appears in the 181 capabilities document and WMS requests. 182 183 """ 184 if dimName.lower() in self._escapedDimNames: 185 return dimName+'_dim' 186 else: 187 return dimName 188 189 def _mapParamToDim(self, dimParam): 190 """ 191 Maps a dimension parameter name to it's real dimension name. 192 193 @see: _mapDimToParam() 194 195 """ 196 try: 197 dimName = re.match(r'(.*)_dim$', dimParam).group(1) 198 if dimName.lower() in self._escapedDimNames: 199 return dimName 200 else: 201 return dimParam 202 except AttributeError: 203 return dimParam 204 205 171 206 #------------------------------------------------------------------------- 172 207 # OWS Operation methods … … 209 244 for dimName, dim in layerObj.dimensions.items(): 210 245 defaultValue = dim.extent[0] 211 dimValues[dimName] = self.getOwsParam(dimName, default=defaultValue) 246 dimParam = self._mapDimToParam(dimName) 247 dimValues[dimName] = self.getOwsParam(dimParam, default=defaultValue) 212 248 213 249 #--------------------------------------------------------------------- … … 333 369 for dimName, dim in layerObj.dimensions.items(): 334 370 defaultValue = dim.extent[0] 335 dimValues[dimName] = self.getOwsParam(dimName, default=defaultValue) 371 dimParam = self._mapDimToParam(dimName) 372 dimValues[dimName] = self.getOwsParam(dimParam, default=defaultValue) 336 373 # Get pixel location 337 374 i = int(self.getOwsParam('i'))
Note: See TracChangeset
for help on using the changeset viewer.