Ignore:
Timestamp:
30/01/08 16:41:28 (12 years ago)
Author:
mkochan
Message:

Added KMLRegion and KMLFolder in the KMLDocument module

File:
1 edited

Legend:

Unmodified
Added
Removed
  • DPPP/kml/csml2kml/python/prototypes/KMLDocument.py

    r3289 r3290  
    5151        f.close() 
    5252 
    53 class KMLStyle: 
     53# Abstract class 
     54class KMLElement: 
     55    def build(self): 
     56        raise NotImplementedError("Abstract method, to be overriden by child classes") 
     57 
     58class KMLStyle(KMLElement): 
    5459 
    5560    def __init__(self, id, iconURL, balloonTemplate): 
     
    7984    return KMLStyle('basic_style', basicIcon, basicBalloonTemplate) 
    8085 
    81 class KMLPlacemark: 
     86class KMLPlacemark(KMLElement): 
    8287     
    8388    def __init__(self, id, name, lon, lat, style='basic_style', data=None): 
     
    119124 
    120125        return placemarkElement 
     126 
     127class KMLFolder(KMLElement): 
     128 
     129    def __init__(self, name, children): 
     130        self.name = name 
     131        self.children = children 
     132         
     133    def build(self): 
     134        folderElement = Element('Folder') 
     135        SubElement(folderElement, 'name').text = name 
     136        for child in children: 
     137            if not isinstance(child, KMLElement): 
     138                raise TypeError('KMLFolder child does not have a KMLElement base class') 
     139            folderElement.append( child.build() ) 
     140        return folderElement 
     141 
     142class KMLRegion(KMLElement): 
     143     
     144    def __init__(self, west, south, east, north, minLodPixels = 64, maxLodPixels = -1): 
     145        self.west = west 
     146        self.south = south 
     147        self.east = east 
     148        self.north = north 
     149        self.minLodPixels = minLodPixel 
     150        self.maxLodPixels = maxLodPixel 
     151 
     152    def build(self): 
     153 
     154        llabElement = Element('LatLonAltBox') 
     155        SubElement(llabElement, 'west').text = self.west 
     156        SubElement(llabElement, 'south').text = self.south 
     157        SubElement(llabElement, 'east').text = self.east 
     158        SubElement(llabElement, 'north').text = self.north 
     159 
     160        lodElement = Element('Lod') 
     161        SubElement(lodElement, 'minLodPixels').text = self.minLodPixels 
     162        SubElement(lodElement, 'maxLodPixels').text = self.maxLodPixels 
     163 
     164        regionElement = Element('Region') 
     165        regionElement.append(llabElement) 
     166        regionElement.append(lodElement) 
     167        return regionElement 
Note: See TracChangeset for help on using the changeset viewer.