Ignore:
Timestamp:
30/01/08 12:29:32 (12 years ago)
Author:
mkochan
Message:

Moved code for building placemarks into KMLDocument.py

File:
1 edited

Legend:

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

    r3287 r3289  
    1818            self.documentElement.append(style.build()) 
    1919 
    20     def append(self, element): 
     20    def appendElement(self, element): 
    2121        '''Append directly to the <Document> element''' 
    2222        self.documentElement.append(element) 
     
    7878    basicIcon = 'http://maps.google.com/mapfiles/kml/shapes/target.png' 
    7979    return KMLStyle('basic_style', basicIcon, basicBalloonTemplate) 
     80 
     81class KMLPlacemark: 
     82     
     83    def __init__(self, id, name, lon, lat, style='basic_style', data=None): 
     84        self.id = id 
     85        self.name = name 
     86        self.lon = lon 
     87        self.lat = lat 
     88        self.style = style 
     89        self.data = data 
     90 
     91    def build(self): 
     92        placemarkElement = Element('Placemark') 
     93        SubElement(placemarkElement, 'name').text = self.name 
     94        SubElement(placemarkElement, 'open').text = '0' 
     95        SubElement(placemarkElement, 'visibility').text = '0' 
     96        SubElement(placemarkElement, 'styleUrl').text = '#' + self.style 
     97 
     98        lookAtElement = SubElement(placemarkElement, 'LookAt') 
     99        SubElement(lookAtElement, 'longitude').text = str(self.lon) 
     100        SubElement(lookAtElement, 'latitude').text = str(self.lat) 
     101 
     102        pointElement = SubElement(placemarkElement, 'Point') 
     103        SubElement(pointElement, 'coordinates').text = '%f,%f,%f' % (self.lon, self.lat, 0.) 
     104 
     105        # If the "data" dictionary is provided, create the additional <ExtendedData> element, 
     106        # which contains specific data items, which will be automatically substituted 
     107        # for placemarks in the balloon template when the user views the document in Google Earth. 
     108        if self.data: 
     109            extendedDataElement = SubElement(placemarkElement, 'ExtendedData') 
     110            for key in self.data: 
     111                dataElement = SubElement(extendedDataElement, 'Data') 
     112                dataElement.set('name', key) 
     113                value = self.data[key] 
     114                value = value.replace('#ID#', self.id) 
     115                value = value.replace('#NAME#', self.name) 
     116                value = value.replace('#LON#', str(self.lon)) 
     117                value = value.replace('#LAT#', str(self.lat)) 
     118                SubElement(dataElement, 'value').text = value 
     119 
     120        return placemarkElement 
Note: See TracChangeset for help on using the changeset viewer.