Class: Kamelopard::AnimatedUpdate

Inherits:
TourPrimitive show all
Defined in:
lib/kamelopard/classes.rb

Overview

Corresponds to KML’s gx:AnimatedUpdate object. For now at least, this isn’t very intelligent; you’ve got to manually craft the <Change> tag(s) within the object.

Instance Attribute Summary collapse

Attributes inherited from Object

#comment, #kml_id

Instance Method Summary collapse

Methods inherited from Object

#change

Constructor Details

#initialize(updates, options = {}) ⇒ AnimatedUpdate

The updates argument is an array of strings containing <Change> elements



1328
1329
1330
1331
1332
1333
# File 'lib/kamelopard/classes.rb', line 1328

def initialize(updates, options = {})
 #duration = 0, target = '', delayedstart = nil)
    @updates = []
    super options
    @updates = updates unless updates.nil? or updates.size == 0
end

Instance Attribute Details

#delayedStartObject

XXX For now, the user has to specify the change / create / delete elements in the <Update> manually, rather than creating objects.



1324
1325
1326
# File 'lib/kamelopard/classes.rb', line 1324

def delayedStart
  @delayedStart
end

#durationObject

XXX For now, the user has to specify the change / create / delete elements in the <Update> manually, rather than creating objects.



1324
1325
1326
# File 'lib/kamelopard/classes.rb', line 1324

def duration
  @duration
end

#targetObject

XXX For now, the user has to specify the change / create / delete elements in the <Update> manually, rather than creating objects.



1324
1325
1326
# File 'lib/kamelopard/classes.rb', line 1324

def target
  @target
end

#updatesObject

Returns the value of attribute updates.



1325
1326
1327
# File 'lib/kamelopard/classes.rb', line 1325

def updates
  @updates
end

Instance Method Details

#<<(a) ⇒ Object

Adds another update string, presumably containing a <Change> element



1348
1349
1350
# File 'lib/kamelopard/classes.rb', line 1348

def <<(a)
    @updates << a
end

#to_kml(elem = nil) ⇒ Object



1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
# File 'lib/kamelopard/classes.rb', line 1352

def to_kml(elem = nil)
    k = XML::Node.new 'gx:AnimatedUpdate'
    super(k)
    d = XML::Node.new 'gx:duration'
    d << @duration.to_s
    k << d
    if not @delayedStart.nil? then
        d = XML::Node.new 'gx:delayedStart'
        d << @delayedStart.to_s
        k << d
    end
    d = XML::Node.new 'Update'
    q = XML::Node.new 'targetHref'
    q << @target.to_s
    d << q
    @updates.each do |i|
        if i.is_a? XML::Node then
            d << i
        else
            parser = reader = XML::Parser.string(i)
            doc = parser.parse
            node = doc.child
            n = node.copy true
            d << n
        end
    end
    k << d
    elem << k unless elem.nil?
    k
end