Dagik: Time bar
sample
#!/usr/bin/env ruby
# ==================================================
# sample timebar script
# $last update: 2007-04-07 16:50:09 daiki $
# ==================================================
# ========== panel size
PANEL_WIDTH = 0.360
PANEL_HEIGHT = 0.300
# ========== northwest panel (Non-Earth data plot)
OFFSET_X_NW = 0.050
OFFSET_Y_NW = 0.650
# ========== southwest panel (Index plot)
OFFSET_X_SW = 0.050
OFFSET_Y_SW = 0.035
# ========== southeast panel (Data plot)
OFFSET_X_SE = 0.630
OFFSET_Y_SE = 0.035
# ========== bar [min]
BAR_STEP = 10
BAR_ICON = 'red.gif'
# ==================================================
def kml_timebar(year, month, day,
offset_x = OFFSET_X_SE, offset_y = OFFSET_Y_SE,
width = PANEL_WIDTH, height = PANEL_HEIGHT,
step = BAR_STEP, icon = BAR_ICON)
t_start = Time.mktime(year, month, day)
t_end = t_start + 86400
t_tmp = t_start
t_leap = step * 60
bar_width = width * t_leap / 86400
bar_height = height
bar_offset_y = offset_y
kml = %Q[
<Folder>
<name>Time Bar</name>
]
while(t_tmp < t_end)
bar_offset_x = offset_x + width * (t_tmp - t_start) / 86400
t_tmp2 = t_tmp + t_leap - 1
kml << %Q[
<ScreenOverlay>
<drawOrder>1</drawOrder>
<Icon><href>#{icon}</href></Icon>
<TimeSpan>
<begin>#{t_tmp.strftime("%04Y-%02m-%02dT%02H:%02M:%02SZ")}</begin>
<end>#{t_tmp2.strftime("%04Y-%02m-%02dT%02H:%02M:%02SZ")}</end>
</TimeSpan>
<overlayXY x="0" y="0" xunits="fraction" yunits="fraction"/>
<screenXY x="#{bar_offset_x}" y="#{bar_offset_y}" xunits="fraction" yunits="fraction"/>
<size x="#{bar_width}" y="#{bar_height}" xunits="fraction" yunits="fraction"/>
<color>80ffffff</color>
</ScreenOverlay>
]
t_tmp += t_leap
end
kml << "\n </Folder>\n"
return kml
end
# ================================================== test
kml = %Q[<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Document>
]
kml << kml_timebar(2003, 10, 22)
kml << kml_timebar(2003, 10, 22, OFFSET_X_NW, OFFSET_Y_NW)
kml << kml_timebar(2003, 10, 22, OFFSET_X_SW, OFFSET_Y_SW)
kml << "\n</Document>\n</kml>\n"
$stdout.print kml
exit