Ignore:
Timestamp:
21/02/08 15:36:03 (12 years ago)
Author:
mkochan
Message:

Added support for storing datetimes in the WMSCapabilities.BottomWMSLayer class. Added a convertor class WMSCapabilities.WmsLayersConvertor? for conversion into KML.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • DPPP/kml/csml2kml/python/csml2kml/csml2kml/kmlfeatures.py

    r3459 r3497  
    124124        It will be a KMLFolder object, containing KMLGroundOverlay objects -- each of them stands for  
    125125        a grid for a single time step. 
    126         [MORE EXPLANATION] 
    127         [RESOLVE VISIBILITY] 
    128126        ''' 
    129127        if self.description: 
     
    176174        return kmlFeatureFolder 
    177175 
    178     def exportFeature(self, viewConfig): 
    179         ''' method to output KML as ElementTree instance - returns a 'Folder' element which can be put into a KML Document element ''' 
    180  
    181         featureElement=Element('Folder') 
    182         if self.description: 
    183             SubElement(featureElement, 'name').text=self.description  # come up with a feature folder name 
    184         else: 
    185             SubElement(featureElement, 'name').text=self.name 
    186         SubElement(featureElement, 'open').text='0' 
    187         SubElement(featureElement, 'visibility').text='0' 
    188  
    189         if self.splitTimeStepsBy == None: 
    190  
    191             for timeStep in self.timeSteps: 
    192                 goElement = self.buildGroundOverlayElement(timeStep) 
    193                 featureElement.append(goElement) 
    194  
    195         else: 
    196              
    197             def getCategory(timeStep): 
    198                 (year, month, day) = self.getYMD(timeStep) 
    199                 if self.splitTimeStepsBy == None: 
    200                     return timeStep 
    201                 elif self.splitTimeStepsBy == 'year': 
    202                     return year 
    203                 elif self.splitTimeStepsBy == 'month': 
    204                     return month 
    205  
    206             dict = {} 
    207  
    208             for timeStep in self.timeSteps: 
    209                 category = getCategory(timeStep) 
    210                 if not dict.has_key(category): 
    211                     dict[category] = [] 
    212                 dict[category].append(timeStep) 
    213             dictKeys = dict.keys() 
    214             dictKeys.sort() 
    215  
    216             for category in dictKeys:             
    217                 categoryElement=Element('Folder') 
    218  
    219                 if self.categoryNamingPattern == None: 
    220                     categoryName = 'Category ' + str(category) 
    221                 else: 
    222                     categoryName = self.categoryNamingPattern.replace('#VERBATIM#', str(category)) 
    223                     if (category >= 1 and category <= 12): 
    224                         categoryName = categoryName.replace('#MONTH#', getMonthCommonName(category)) 
    225                  
    226                 SubElement(categoryElement, 'name').text=categoryName 
    227                 SubElement(categoryElement, 'open').text='0' 
    228                 SubElement(categoryElement, 'visibility').text='0'         
    229                 for timeStep in dict[category]: 
    230                     goElement = self.buildGroundOverlayElement(timeStep) 
    231                     categoryElement.append(goElement) 
    232                 featureElement.append(categoryElement) 
    233  
    234         return featureElement 
    235  
    236176    def buildKmlGroundOverlay(self, timeStep): 
    237         ''' [VISIBILITY?]''' 
    238177 
    239178        (startDateTime, endDateTime) = self.getLogicalTimeSpan(timeStep) 
     
    248187            ) 
    249188 
    250     def buildGroundOverlayElement(self, timeStep): 
    251  
    252         goElement=Element('GroundOverlay')       
    253         SubElement(goElement, 'name').text=self.name + ' ' + timeStep 
    254         SubElement(goElement, 'open').text='0' 
    255         SubElement(goElement, 'visibility').text='0' 
    256  
    257         timespanElement=SubElement(goElement, 'TimeSpan') 
    258         (startDateTime, endDateTime) = self.getLogicalTimeSpan(timeStep) 
    259         SubElement(timespanElement, 'begin').text = ('%04d-%02d-%02d') % (startDateTime.utctimetuple()[0:3]) 
    260         SubElement(timespanElement, 'end').text = ('%04d-%02d-%02d') % (endDateTime.utctimetuple()[0:3]) 
    261  
    262         # Include the WMS service call address 
    263         iconElement=SubElement(goElement,'icon') 
    264         SubElement(iconElement, 'href').text=self.buildWMSRequest(timeStep) 
    265         SubElement(iconElement, 'refreshMode').text='onExpire' 
    266  
    267         latlonboxElement=SubElement(goElement, 'LatLonBox') 
    268         SubElement(latlonboxElement, 'north').text=str(self.bBox.north) 
    269         SubElement(latlonboxElement, 'south').text=str(self.bBox.south) 
    270         SubElement(latlonboxElement, 'east' ).text=str(self.bBox.east) 
    271         SubElement(latlonboxElement, 'west' ).text=str(self.bBox.west) 
    272  
    273         return goElement 
    274  
    275189# ------------------------- Logical date/time transforms (defined as plain functions) -------------------------- 
    276190 
Note: See TracChangeset for help on using the changeset viewer.