gooby 1.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +133 -341
- data/config/ballantyne.yaml +11 -0
- data/config/big_sur_marathon.yaml +11 -0
- data/config/crowders_mtn_hike.yaml +11 -0
- data/config/davidson1.yaml +16 -0
- data/config/gooby_config.yaml +28 -135
- data/cucumber.yml +1 -0
- data/features/build_gem.feature +88 -0
- data/features/gooby.feature +300 -0
- data/features/install.feature +78 -0
- data/features/steps/gooby_steps.rb +245 -0
- data/features/support/env.rb +4 -0
- data/lib/gooby.rb +24 -30
- data/lib/gooby_activity.rb +63 -0
- data/lib/gooby_base_object.rb +46 -0
- data/lib/gooby_base_sax_parser.rb +95 -0
- data/lib/gooby_configuration.rb +33 -115
- data/lib/gooby_counter_hash.rb +28 -87
- data/lib/gooby_dttm.rb +88 -66
- data/lib/gooby_environment.rb +48 -0
- data/lib/gooby_garmin_tcx_parser.rb +92 -0
- data/lib/gooby_google_kml_generator.rb +168 -0
- data/lib/gooby_google_map_generator.rb +284 -349
- data/lib/gooby_gpx_parser.rb +97 -0
- data/lib/gooby_help_producer.rb +40 -0
- data/lib/gooby_introspection.rb +25 -0
- data/lib/gooby_io.rb +30 -0
- data/lib/gooby_lap.rb +27 -18
- data/lib/gooby_process.rb +281 -0
- data/lib/gooby_sax_path_parser.rb +43 -0
- data/lib/gooby_tcx_extractor.rb +71 -0
- data/lib/gooby_track_log_parser.rb +114 -0
- data/lib/gooby_trackpoint.rb +276 -0
- data/lib/gooby_xml_object.rb +40 -0
- data/{img/gicons → out/images}/blank.png +0 -0
- data/{img/gicons → out/images}/dd-end.png +0 -0
- data/{img/gicons → out/images}/dd-start.png +0 -0
- data/{img/gicons → out/images}/marker.png +0 -0
- data/{img/gicons → out/images}/marker0.png +0 -0
- data/{img/gicons → out/images}/marker00.png +0 -0
- data/{img/gicons → out/images}/marker01.png +0 -0
- data/{img/gicons → out/images}/marker02.png +0 -0
- data/{img/gicons → out/images}/marker03.png +0 -0
- data/{img/gicons → out/images}/marker04.png +0 -0
- data/{img/gicons → out/images}/marker05.png +0 -0
- data/{img/gicons → out/images}/marker06.png +0 -0
- data/{img/gicons → out/images}/marker07.png +0 -0
- data/{img/gicons → out/images}/marker08.png +0 -0
- data/{img/gicons → out/images}/marker09.png +0 -0
- data/{img/gicons → out/images}/marker1.png +0 -0
- data/{img/gicons → out/images}/marker10.png +0 -0
- data/{img/gicons → out/images}/marker11.png +0 -0
- data/{img/gicons → out/images}/marker12.png +0 -0
- data/{img/gicons → out/images}/marker13.png +0 -0
- data/{img/gicons → out/images}/marker14.png +0 -0
- data/{img/gicons → out/images}/marker15.png +0 -0
- data/{img/gicons → out/images}/marker16.png +0 -0
- data/{img/gicons → out/images}/marker17.png +0 -0
- data/{img/gicons → out/images}/marker18.png +0 -0
- data/{img/gicons → out/images}/marker19.png +0 -0
- data/{img/gicons → out/images}/marker2.png +0 -0
- data/{img/gicons → out/images}/marker20.png +0 -0
- data/{img/gicons → out/images}/marker21.png +0 -0
- data/{img/gicons → out/images}/marker22.png +0 -0
- data/{img/gicons → out/images}/marker23.png +0 -0
- data/{img/gicons → out/images}/marker24.png +0 -0
- data/{img/gicons → out/images}/marker25.png +0 -0
- data/{img/gicons → out/images}/marker26.png +0 -0
- data/{img/gicons → out/images}/marker27.png +0 -0
- data/{img/gicons → out/images}/marker28.png +0 -0
- data/{img/gicons → out/images}/marker29.png +0 -0
- data/{img/gicons → out/images}/marker3.png +0 -0
- data/{img/gicons → out/images}/marker30.png +0 -0
- data/{img/gicons → out/images}/marker31.png +0 -0
- data/{img/gicons → out/images}/marker32.png +0 -0
- data/{img/gicons → out/images}/marker33.png +0 -0
- data/{img/gicons → out/images}/marker34.png +0 -0
- data/{img/gicons → out/images}/marker35.png +0 -0
- data/{img/gicons → out/images}/marker36.png +0 -0
- data/{img/gicons → out/images}/marker37.png +0 -0
- data/{img/gicons → out/images}/marker38.png +0 -0
- data/{img/gicons → out/images}/marker39.png +0 -0
- data/{img/gicons → out/images}/marker4.png +0 -0
- data/{img/gicons → out/images}/marker40.png +0 -0
- data/{img/gicons → out/images}/marker41.png +0 -0
- data/{img/gicons → out/images}/marker42.png +0 -0
- data/{img/gicons → out/images}/marker43.png +0 -0
- data/{img/gicons → out/images}/marker44.png +0 -0
- data/{img/gicons → out/images}/marker45.png +0 -0
- data/{img/gicons → out/images}/marker46.png +0 -0
- data/{img/gicons → out/images}/marker47.png +0 -0
- data/{img/gicons → out/images}/marker48.png +0 -0
- data/{img/gicons → out/images}/marker49.png +0 -0
- data/{img/gicons → out/images}/marker5.png +0 -0
- data/{img/gicons → out/images}/marker50.png +0 -0
- data/{img/gicons → out/images}/marker51.png +0 -0
- data/{img/gicons → out/images}/marker52.png +0 -0
- data/{img/gicons → out/images}/marker53.png +0 -0
- data/{img/gicons → out/images}/marker54.png +0 -0
- data/{img/gicons → out/images}/marker55.png +0 -0
- data/{img/gicons → out/images}/marker56.png +0 -0
- data/{img/gicons → out/images}/marker57.png +0 -0
- data/{img/gicons → out/images}/marker58.png +0 -0
- data/{img/gicons → out/images}/marker59.png +0 -0
- data/{img/gicons → out/images}/marker6.png +0 -0
- data/{img/gicons → out/images}/marker60.png +0 -0
- data/{img/gicons → out/images}/marker61.png +0 -0
- data/{img/gicons → out/images}/marker62.png +0 -0
- data/{img/gicons → out/images}/marker63.png +0 -0
- data/{img/gicons → out/images}/marker64.png +0 -0
- data/{img/gicons → out/images}/marker65.png +0 -0
- data/{img/gicons → out/images}/marker66.png +0 -0
- data/{img/gicons → out/images}/marker67.png +0 -0
- data/{img/gicons → out/images}/marker68.png +0 -0
- data/{img/gicons → out/images}/marker69.png +0 -0
- data/{img/gicons → out/images}/marker7.png +0 -0
- data/{img/gicons → out/images}/marker70.png +0 -0
- data/{img/gicons → out/images}/marker71.png +0 -0
- data/{img/gicons → out/images}/marker72.png +0 -0
- data/{img/gicons → out/images}/marker73.png +0 -0
- data/{img/gicons → out/images}/marker74.png +0 -0
- data/{img/gicons → out/images}/marker75.png +0 -0
- data/{img/gicons → out/images}/marker76.png +0 -0
- data/{img/gicons → out/images}/marker77.png +0 -0
- data/{img/gicons → out/images}/marker78.png +0 -0
- data/{img/gicons → out/images}/marker79.png +0 -0
- data/{img/gicons → out/images}/marker8.png +0 -0
- data/{img/gicons → out/images}/marker80.png +0 -0
- data/{img/gicons → out/images}/marker81.png +0 -0
- data/{img/gicons → out/images}/marker82.png +0 -0
- data/{img/gicons → out/images}/marker83.png +0 -0
- data/{img/gicons → out/images}/marker84.png +0 -0
- data/{img/gicons → out/images}/marker85.png +0 -0
- data/{img/gicons → out/images}/marker86.png +0 -0
- data/{img/gicons → out/images}/marker87.png +0 -0
- data/{img/gicons → out/images}/marker88.png +0 -0
- data/{img/gicons → out/images}/marker89.png +0 -0
- data/{img/gicons → out/images}/marker9.png +0 -0
- data/{img/gicons → out/images}/marker90.png +0 -0
- data/{img/gicons → out/images}/marker91.png +0 -0
- data/{img/gicons → out/images}/marker92.png +0 -0
- data/{img/gicons → out/images}/marker93.png +0 -0
- data/{img/gicons → out/images}/marker94.png +0 -0
- data/{img/gicons → out/images}/marker95.png +0 -0
- data/{img/gicons → out/images}/marker96.png +0 -0
- data/{img/gicons → out/images}/marker97.png +0 -0
- data/{img/gicons → out/images}/marker98.png +0 -0
- data/{img/gicons → out/images}/marker99.png +0 -0
- data/{img/gicons → out/images}/markerA.png +0 -0
- data/{img/gicons → out/images}/markerB.png +0 -0
- data/{img/gicons → out/images}/markerC.png +0 -0
- data/{img/gicons → out/images}/markerD.png +0 -0
- data/{img/gicons → out/images}/markerE.png +0 -0
- data/{img/gicons → out/images}/markerF.png +0 -0
- data/{img/gicons → out/images}/markerG.png +0 -0
- data/{img/gicons → out/images}/markerH.png +0 -0
- data/{img/gicons → out/images}/markerI.png +0 -0
- data/{img/gicons → out/images}/markerJ.png +0 -0
- data/{img/gicons → out/images}/mm_20_red.png +0 -0
- data/{img/gicons → out/images}/mm_20_shadow.png +0 -0
- data/{img/gicons → out/images}/shadow50.png +0 -0
- data/rakefile.rb +79 -0
- data/samples.sh +21 -0
- data/samples/2008_04_27_13_49_50_tcx.csv +2449 -0
- data/samples/2008_04_27_13_49_50_tcx.xml +24560 -0
- data/samples/2009_01_01_14_45_00_tcx.xml +10630 -0
- data/samples/ballantyne.csv +27 -0
- data/samples/ballantyne.gpx +117 -0
- data/samples/ballantyne.kml +91 -0
- data/samples/big_sur_marathon.html +2766 -0
- data/samples/big_sur_marathon.kml +685 -0
- data/samples/build_gem_test_results.txt +6 -0
- data/samples/crowders_mtn_hike.csv +1065 -0
- data/samples/crowders_mtn_hike.html +1283 -0
- data/samples/crowders_mtn_hike.log +1 -0
- data/samples/cucumber_test_results.txt +302 -0
- data/samples/davidson1.csv +1 -0
- data/samples/davidson1.html +75 -0
- data/samples/davidson_1_point_tcx.csv +0 -0
- data/samples/doc.kml +49 -0
- data/samples/gps_track_log_asheville_mt_pisgah.txt +1 -0
- data/samples/gps_track_logs.txt +1 -0
- data/samples/install_test_results.txt +81 -0
- data/samples/mt_pisgah.txt +1 -0
- data/samples/rspec_test_results.txt +5 -0
- data/setup.rb +66 -0
- data/spec/gooby_base_object_spec.rb +116 -0
- data/spec/gooby_counter_hash_spec.rb +34 -0
- data/spec/gooby_dttm_spec.rb +40 -0
- data/spec/gooby_spec_helper.rb +9 -0
- data/spec/gooby_xml_object_spec.rb +32 -0
- metadata +225 -226
- data/bin/code_scan.rb +0 -16
- data/bin/gooby_been_there.rb +0 -33
- data/bin/gooby_config.rb +0 -24
- data/bin/gooby_csv_validation.rb +0 -50
- data/bin/gooby_first_trackpoints_as_poi.rb +0 -31
- data/bin/gooby_gen_gmap.rb +0 -20
- data/bin/gooby_parser.rb +0 -21
- data/bin/gooby_splitter.rb +0 -21
- data/bin/gooby_version.rb +0 -20
- data/bin/run_all.sh +0 -33
- data/bin/run_been_there.sh +0 -19
- data/bin/run_config.sh +0 -12
- data/bin/run_csv_validation.sh +0 -15
- data/bin/run_db_gen.sh +0 -11
- data/bin/run_db_load.sh +0 -11
- data/bin/run_first_trackpoints_as_poi.sh +0 -16
- data/bin/run_gen_gmaps.sh +0 -21
- data/bin/run_parse_full.sh +0 -45
- data/bin/run_parse_samples.sh +0 -21
- data/bin/run_split.sh +0 -24
- data/bin/run_version.sh +0 -12
- data/data/20050305_corporate_cup_hm.csv +0 -251
- data/data/20050305_corporate_cup_hm.xml +0 -2208
- data/data/20050430_nashville_marathon.xml +0 -10043
- data/data/20050430_nashville_marathon_km.csv +0 -1208
- data/data/20060115_phoenix_marathon.csv +0 -1280
- data/data/20060115_phoenix_marathon.xml +0 -10620
- data/data/20070101_davidson_11m.csv +0 -251
- data/data/20070101_davidson_11m.xml +0 -2020
- data/data/20070505_davidson_5k.xml +0 -2875
- data/data/20070505_davidson_5k_km.csv +0 -286
- data/data/hrm1.csv +0 -5
- data/img/gicons/readme.txt +0 -14
- data/lib/gooby_code_scanner.rb +0 -288
- data/lib/gooby_command.rb +0 -210
- data/lib/gooby_course.rb +0 -117
- data/lib/gooby_csv_point.rb +0 -71
- data/lib/gooby_csv_reader.rb +0 -71
- data/lib/gooby_csv_run.rb +0 -28
- data/lib/gooby_delim_line.rb +0 -42
- data/lib/gooby_duration.rb +0 -86
- data/lib/gooby_forerunner_xml_parser.rb +0 -191
- data/lib/gooby_forerunner_xml_splitter.rb +0 -115
- data/lib/gooby_history.rb +0 -41
- data/lib/gooby_kernel.rb +0 -163
- data/lib/gooby_line.rb +0 -80
- data/lib/gooby_object.rb +0 -22
- data/lib/gooby_point.rb +0 -172
- data/lib/gooby_run.rb +0 -213
- data/lib/gooby_simple_xml_parser.rb +0 -50
- data/lib/gooby_test_helper.rb +0 -23
- data/lib/gooby_track.rb +0 -47
- data/lib/gooby_track_point.rb +0 -229
- data/lib/gooby_training_center_xml_parser.rb +0 -224
- data/lib/gooby_training_center_xml_splitter.rb +0 -116
- data/lib/split_code.sh +0 -29
- data/samples/20050305_corporate_cup_hm.html +0 -450
- data/samples/20050430_nashville_marathon.html +0 -1668
- data/samples/20060115_phoenix_marathon.html +0 -1596
- data/samples/20070101_davidson_11m.html +0 -432
- data/samples/20070505_davidson_5k.html +0 -413
- data/samples/been_there.txt +0 -92
- data/samples/hrm1.html +0 -87
- data/sql/gooby.ddl +0 -60
- data/sql/gooby_load.dml +0 -62
@@ -1,224 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
|
3
|
-
Gooby = Google APIs + Ruby
|
4
|
-
Gooby - Copyright 2007 by Chris Joakim.
|
5
|
-
Gooby is available under GNU General Public License (GPL) license.
|
6
|
-
|
7
|
-
=end
|
8
|
-
|
9
|
-
module Gooby
|
10
|
-
|
11
|
-
=begin rdoc
|
12
|
-
Instances of this class are used to parse a Garmin TrainingCenter XML(TCX) file
|
13
|
-
in a SAX-like manner. Instances of the model classes - History, Run, Track,
|
14
|
-
Trackpoint, etc. are created in this parsing process.
|
15
|
-
|
16
|
-
See http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd for the XML
|
17
|
-
Schema Definition for Garmin TrainingCenter XML.
|
18
|
-
=end
|
19
|
-
|
20
|
-
class TrainingCenterXmlParser
|
21
|
-
|
22
|
-
DETAIL_TAGS = %w( Notes StartTime Duration Length Time
|
23
|
-
TotalTimeSeconds DistanceMeters
|
24
|
-
LatitudeDegrees LongitudeDegrees AltitudeMeters HeartRateBpm Value BeginPosition EndPosition )
|
25
|
-
|
26
|
-
include REXML::StreamListener
|
27
|
-
|
28
|
-
attr_reader :uom, :history, :cvHash, :tagCount
|
29
|
-
|
30
|
-
def initialize(uom)
|
31
|
-
@uom = uom
|
32
|
-
@cv_hash = Hash.new("")
|
33
|
-
@tag_count = 0
|
34
|
-
@run_count = 0
|
35
|
-
@lap_count = 0
|
36
|
-
@track_count = 0
|
37
|
-
@trackpoint_count = 0
|
38
|
-
@curr_text = "";
|
39
|
-
@history = History.new
|
40
|
-
@curr_run = nil
|
41
|
-
@curr_lap = nil
|
42
|
-
@curr_track = nil
|
43
|
-
@curr_begin_position = nil
|
44
|
-
@@curr_end_position = nil
|
45
|
-
@first_lap_start_time = nil
|
46
|
-
@curr_lap_start_time = ''
|
47
|
-
@in_heart_rate_bpm = false
|
48
|
-
@in_value = false
|
49
|
-
end
|
50
|
-
|
51
|
-
public
|
52
|
-
|
53
|
-
# SAX API method; handles 'Activity', 'Lap', 'Track', 'HeartRateBpm'.
|
54
|
-
def tag_start(tagname, attrs)
|
55
|
-
@tag_count += 1
|
56
|
-
@currTag = tagname
|
57
|
-
@cv_hash[tagname] = ''
|
58
|
-
|
59
|
-
if detail_tag?(tagname)
|
60
|
-
@inDetail = true
|
61
|
-
end
|
62
|
-
|
63
|
-
if is_tag?('Activity', tagname)
|
64
|
-
@run_count = @run_count + 1
|
65
|
-
@lap_count = 0
|
66
|
-
@track_count = 0
|
67
|
-
@trackpoint_count = 0
|
68
|
-
@curr_run = Run.new(@run_count)
|
69
|
-
@history.add_run(@curr_run)
|
70
|
-
@cv_hash['Notes'] = ''
|
71
|
-
return
|
72
|
-
end
|
73
|
-
|
74
|
-
if is_tag?('Lap', tagname)
|
75
|
-
@lap_count = @lap_count + 1
|
76
|
-
@curr_lap = Lap.new(@lap_count)
|
77
|
-
|
78
|
-
attrs.each { |attr|
|
79
|
-
name = attr[0]
|
80
|
-
val = attr[1]
|
81
|
-
if (name && (name == 'StartTime'))
|
82
|
-
if (@first_lap_start_time == nil)
|
83
|
-
@first_lap_start_time = "#{val}"
|
84
|
-
end
|
85
|
-
@curr_lap_start_time = "#{val}"
|
86
|
-
end
|
87
|
-
}
|
88
|
-
return
|
89
|
-
end
|
90
|
-
|
91
|
-
if is_tag?('Track', tagname)
|
92
|
-
@track_count = @track_count + 1
|
93
|
-
@curr_track = Track.new(@track_count)
|
94
|
-
return
|
95
|
-
end
|
96
|
-
|
97
|
-
if is_tag?('HeartRateBpm', tagname)
|
98
|
-
@in_heart_rate_bpm = true
|
99
|
-
return
|
100
|
-
end
|
101
|
-
|
102
|
-
end
|
103
|
-
|
104
|
-
# SAX API method; handles 'Position', 'Trackpoint', 'Track', 'Lap', 'Run', 'HeartRateBpm', 'Value'.
|
105
|
-
def tag_end(tagname)
|
106
|
-
if @inDetail
|
107
|
-
if is_tag?('Value', tagname) && @in_heart_rate_bpm
|
108
|
-
@cv_hash['HeartRateBpm'] = "#{@curr_text.strip!}"
|
109
|
-
else
|
110
|
-
@cv_hash[tagname] = @curr_text
|
111
|
-
end
|
112
|
-
else
|
113
|
-
if is_tag?('Position', tagname)
|
114
|
-
lat = @cv_hash['LatitudeDegrees']
|
115
|
-
long = @cv_hash['LongitudeDegrees']
|
116
|
-
@curr_begin_position = Point.new(lat.strip, long.strip)
|
117
|
-
@@curr_end_position = Point.new(lat.strip, long.strip)
|
118
|
-
end
|
119
|
-
|
120
|
-
if is_tag?('BeginPosition', tagname)
|
121
|
-
lat = @cv_hash['LatitudeDegrees']
|
122
|
-
long = @cv_hash['LongitudeDegrees']
|
123
|
-
@curr_begin_position = Point.new(lat.strip, long.strip)
|
124
|
-
end
|
125
|
-
|
126
|
-
if is_tag?('EndPosition', tagname)
|
127
|
-
lat = @cv_hash['LatitudeDegrees']
|
128
|
-
long = @cv_hash['LongitudeDegrees']
|
129
|
-
@@curr_end_position = Point.new(lat.strip, long.strip)
|
130
|
-
end
|
131
|
-
|
132
|
-
if is_tag?('Trackpoint', tagname)
|
133
|
-
@trackpoint_count = @trackpoint_count + 1
|
134
|
-
lat = @cv_hash['LatitudeDegrees']
|
135
|
-
long = @cv_hash['LongitudeDegrees']
|
136
|
-
alt = @cv_hash['AltitudeMeters']
|
137
|
-
hb = @cv_hash['HeartRateBpm']
|
138
|
-
hb ? hb = hb.to_s : hb = '-1'
|
139
|
-
time = @cv_hash['Time']
|
140
|
-
hash = Hash.new('')
|
141
|
-
hash['lap_number'] = "#{@lap_count}"
|
142
|
-
hash['first_lap_start_time'] = "#{@first_lap_start_time}"
|
143
|
-
hash['curr_lap_start_time'] = "#{@curr_lap_start_time}"
|
144
|
-
tp = Trackpoint.new(@trackpoint_count, lat, long, alt, hb, time, @uom, hash)
|
145
|
-
@curr_track.add_trackpoint(tp) if tp.has_coordinates?
|
146
|
-
|
147
|
-
@cv_hash['LatitudeDegrees'] = ''
|
148
|
-
@cv_hash['LongitudeDegrees'] = ''
|
149
|
-
@cv_hash['AltitudeMeters'] = ''
|
150
|
-
@cv_hash['HeartRateBpm'] = ''
|
151
|
-
@cv_hash['Time'] = ''
|
152
|
-
end
|
153
|
-
|
154
|
-
if is_tag?('Track', tagname)
|
155
|
-
if @curr_run != nil
|
156
|
-
@curr_run.add_track(@curr_track)
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
if is_tag?('Lap', tagname)
|
161
|
-
@curr_run.add_lap(@curr_lap)
|
162
|
-
end
|
163
|
-
|
164
|
-
if is_tag?('Activity', tagname)
|
165
|
-
@curr_run.notes = @cv_hash['Notes']
|
166
|
-
end
|
167
|
-
|
168
|
-
if is_tag?('HeartRateBpm', tagname)
|
169
|
-
@in_heart_rate_bpm = false
|
170
|
-
return
|
171
|
-
end
|
172
|
-
|
173
|
-
end
|
174
|
-
|
175
|
-
@inDetail = false
|
176
|
-
@curr_text = ""
|
177
|
-
@currTag = ""
|
178
|
-
end
|
179
|
-
|
180
|
-
# SAX API method.
|
181
|
-
def text(txt)
|
182
|
-
if @inDetail
|
183
|
-
@curr_text = @curr_text + txt
|
184
|
-
end
|
185
|
-
end
|
186
|
-
|
187
|
-
# Iterate all parsed Run objects and print each with to_s.
|
188
|
-
def gdump()
|
189
|
-
@history.runs().each { |run| puts run.to_s }
|
190
|
-
end
|
191
|
-
|
192
|
-
# Iterate all parsed Run objects and print each with to_s.
|
193
|
-
def dump()
|
194
|
-
@history.runs().each { |run| puts run.to_s }
|
195
|
-
end
|
196
|
-
|
197
|
-
# Iterate all parsed Run objects and print each with put_csv.
|
198
|
-
def put_run_csv()
|
199
|
-
@history.runs().each { |run| run.put_csv() }
|
200
|
-
end
|
201
|
-
|
202
|
-
# Iterate all parsed Run objects and print each with put_tkpt_csv.
|
203
|
-
def put_all_run_tkpt_csv()
|
204
|
-
@history.runs.each { |run| run.put_tkpt_csv() }
|
205
|
-
end
|
206
|
-
|
207
|
-
private
|
208
|
-
|
209
|
-
def is_tag?(tagname, value)
|
210
|
-
tagname == value
|
211
|
-
end
|
212
|
-
|
213
|
-
def detail_tag?(tagname)
|
214
|
-
DETAIL_TAGS.each { |typ|
|
215
|
-
if typ == tagname
|
216
|
-
return true
|
217
|
-
end
|
218
|
-
}
|
219
|
-
return false
|
220
|
-
end
|
221
|
-
|
222
|
-
end
|
223
|
-
|
224
|
-
end # end of module
|
@@ -1,116 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
|
3
|
-
Gooby = Google APIs + Ruby
|
4
|
-
Gooby - Copyright 2007 by Chris Joakim.
|
5
|
-
Gooby is available under GNU General Public License (GPL) license.
|
6
|
-
|
7
|
-
=end
|
8
|
-
|
9
|
-
module Gooby
|
10
|
-
|
11
|
-
=begin rdoc
|
12
|
-
Instances of this class are used to split a large Garmin TrainingCenter
|
13
|
-
*.tcx file into individual 'activity_' files.
|
14
|
-
=end
|
15
|
-
|
16
|
-
class TrainingCenterXmlSplitter < GoobyObject
|
17
|
-
|
18
|
-
attr_reader :out_dir, :training_center_files, :out_files_hash
|
19
|
-
|
20
|
-
def initialize(tcx_file, out_dir)
|
21
|
-
@out_dir = out_dir
|
22
|
-
@training_center_files = Array.new
|
23
|
-
@training_center_files << tcx_file
|
24
|
-
@out_files_hash = Hash.new
|
25
|
-
end
|
26
|
-
|
27
|
-
def split
|
28
|
-
@training_center_files.each { |f| process_file(f) }
|
29
|
-
write_files
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
def process_file(training_center_tcx_file)
|
35
|
-
@file_name = training_center_tcx_file
|
36
|
-
@tcx_lines = read_lines(@file_name, false)
|
37
|
-
@line_num = 0
|
38
|
-
@activity_num = 0
|
39
|
-
@curr_activity_lines = Array.new
|
40
|
-
@curr_activity_tkpts = 0
|
41
|
-
@start_line_num = 0
|
42
|
-
@end_line_num = 0
|
43
|
-
@activity_start_time = nil
|
44
|
-
|
45
|
-
@tcx_lines.each { |line|
|
46
|
-
@line_num = @line_num + 1
|
47
|
-
if (line.match(/<Activity /))
|
48
|
-
@activity_num = @activity_num + 1
|
49
|
-
@start_line_num = @line_num
|
50
|
-
@curr_activity_lines = Array.new
|
51
|
-
@curr_activity_lines << line
|
52
|
-
elsif (line.match(/<Id>/)) # <Id>2007-03-03T15:58:57Z</Id> <StartTime>2007-01-13T15:37:06Z</StartTime>
|
53
|
-
@curr_activity_lines << line
|
54
|
-
if @activity_start_time == nil
|
55
|
-
clone = String.new(line)
|
56
|
-
clone.gsub!(/[<>]/, ' ')
|
57
|
-
clone.gsub!(/[-:T]/, '_')
|
58
|
-
clone.gsub!(/[Z]/, '')
|
59
|
-
tokens = clone.split
|
60
|
-
@activity_start_time = tokens[1]
|
61
|
-
end
|
62
|
-
elsif (line.match(/<Trackpoint>/))
|
63
|
-
@curr_activity_tkpts = @curr_activity_tkpts + 1
|
64
|
-
@curr_activity_lines << line
|
65
|
-
elsif (line.match(/<\/Activity/))
|
66
|
-
@end_line_num = @line_num
|
67
|
-
@curr_activity_lines << line
|
68
|
-
end_run
|
69
|
-
elsif (@curr_activity_lines.size > 0)
|
70
|
-
@curr_activity_lines << line
|
71
|
-
end
|
72
|
-
}
|
73
|
-
end
|
74
|
-
|
75
|
-
def end_run
|
76
|
-
out_file = "#{@out_dir}/activity_#{@activity_start_time}.xml"
|
77
|
-
comment = "<!-- file: #{out_file} lines: #{@curr_activity_lines.size} (#{@start_line_num} to #{@end_line_num}) tkpts: #{@curr_activity_tkpts} --> \n"
|
78
|
-
@curr_activity_lines.insert(0, comment)
|
79
|
-
|
80
|
-
prev_entry = @out_files_hash[out_file]
|
81
|
-
if prev_entry
|
82
|
-
if (@curr_activity_lines.size >= prev_entry.size)
|
83
|
-
puts "previous entry overlaid for #{out_file}. curr=#{@curr_activity_lines.size} prev=#{prev_entry.size}"
|
84
|
-
@out_files_hash[out_file] = @curr_activity_lines
|
85
|
-
else
|
86
|
-
puts "previous entry retained for #{out_file}. curr=#{@curr_activity_lines.size} prev=#{prev_entry.size}"
|
87
|
-
end
|
88
|
-
else
|
89
|
-
puts "new entry for #{out_file}. curr=#{@curr_activity_lines.size}"
|
90
|
-
@out_files_hash[out_file] = @curr_activity_lines
|
91
|
-
end
|
92
|
-
|
93
|
-
@curr_activity_lines = Array.new
|
94
|
-
@curr_activity_tkpts = 0
|
95
|
-
@start_line_num = 0
|
96
|
-
@end_line_num = 0
|
97
|
-
@activity_start_time = nil
|
98
|
-
end
|
99
|
-
|
100
|
-
def write_files
|
101
|
-
out_names = @out_files_hash.keys.sort
|
102
|
-
puts "Writing #{out_names.size} extract files..."
|
103
|
-
out_names.each { |out_name|
|
104
|
-
lines = @out_files_hash[out_name]
|
105
|
-
out = File.new out_name, "w+"
|
106
|
-
lines.each { |line| out.write line }
|
107
|
-
out.flush
|
108
|
-
out.close
|
109
|
-
puts "File written: #{out_name}"
|
110
|
-
}
|
111
|
-
puts "output files written."
|
112
|
-
end
|
113
|
-
|
114
|
-
end
|
115
|
-
|
116
|
-
end # end of module
|
data/lib/split_code.sh
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
|
2
|
-
touch ts_gooby_kernel.rb
|
3
|
-
touch ts_gooby_test_helper.rb
|
4
|
-
touch ts_gooby_object.rb
|
5
|
-
touch ts_gooby_counter_hash.rb
|
6
|
-
touch ts_gooby_delim_line.rb
|
7
|
-
touch ts_gooby_dttm.rb
|
8
|
-
touch ts_gooby_duration.rbcp gooby.rb
|
9
|
-
touch ts_gooby_forerunner_xml_parser.rb
|
10
|
-
touch ts_gooby_forerunner_xml_splitter.rb
|
11
|
-
touch ts_gooby_training_center_xml_parser.rb
|
12
|
-
touch ts_gooby_training_center_xml_splitter.rb
|
13
|
-
touch ts_gooby_geo_data.rb
|
14
|
-
touch ts_gooby_google_map_generator.rb
|
15
|
-
touch ts_gooby_history.rb
|
16
|
-
touch ts_gooby_lap.rb
|
17
|
-
touch ts_gooby_line.rb
|
18
|
-
touch ts_gooby_configuration.rb
|
19
|
-
touch ts_gooby_point.rb
|
20
|
-
touch ts_gooby_csv_point.rb
|
21
|
-
touch ts_gooby_csv_run.rb
|
22
|
-
touch ts_gooby_csv_reader.rb
|
23
|
-
touch ts_gooby_track_point.rb
|
24
|
-
touch ts_gooby_run.rb
|
25
|
-
touch ts_gooby_simple_xml_parser.rb
|
26
|
-
touch ts_gooby_track.rb
|
27
|
-
touch ts_gooby_course.rb
|
28
|
-
touch ts_gooby_code_scanner.rb
|
29
|
-
touch ts_gooby_command.rb
|
@@ -1,450 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
-
<html xmlns="http://www.w3.org/1999/xhtml">
|
4
|
-
<head>
|
5
|
-
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
6
|
-
<meta name="description" content="Google Map generated with Gooby 1.2.0">
|
7
|
-
<meta name="keywords" content="Google Map Gooby 1.2.0 GPS">
|
8
|
-
<title> Google Map by Gooby </title>
|
9
|
-
<script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAdn5SVzjZKZKs1IRkFdx52xR1l5lLpU9GCFYoS8YrTf8v3gVJ2hRLV1dTSiqDWwWSnMRkM7SVr0EKSA' type='text/javascript'></script>
|
10
|
-
<script type="text/javascript">
|
11
|
-
//<![CDATA[
|
12
|
-
function load() {
|
13
|
-
if (GBrowserIsCompatible()) {
|
14
|
-
var map = new GMap2(document.getElementById("map"));
|
15
|
-
map.addControl(new GLargeMapControl());
|
16
|
-
map.addControl(new GMapTypeControl());
|
17
|
-
|
18
|
-
var centerPoint = new GLatLng(35.199685, -80.837205); // Gooby 1.2.0
|
19
|
-
map.setCenter(centerPoint, 12);
|
20
|
-
|
21
|
-
|
22
|
-
var points = new Array();
|
23
|
-
points.push(new GLatLng(35.22101,-80.84566)); // (1 of 250.0) 2005-03-05T13:00:29Z 0 00:00:00 0.0 Gooby 1.2.0
|
24
|
-
points.push(new GLatLng(35.22054,-80.84506)); // (2 of 250.0) 2005-03-05T13:00:49Z 20 00:00:20 0.046918021941152 Gooby 1.2.0
|
25
|
-
points.push(new GLatLng(35.21998,-80.84446)); // (3 of 250.0) 2005-03-05T13:01:10Z 41 00:00:41 0.0983360698469204 Gooby 1.2.0
|
26
|
-
points.push(new GLatLng(35.22094,-80.84309)); // (4 of 250.0) 2005-03-05T13:01:54Z 85 00:01:25 0.200210979979266 Gooby 1.2.0
|
27
|
-
points.push(new GLatLng(35.22127,-80.84268)); // (5 of 250.0) 2005-03-05T13:02:09Z 100 00:01:40 0.232697037336493 Gooby 1.2.0
|
28
|
-
points.push(new GLatLng(35.22155,-80.8427)); // (6 of 250.0) 2005-03-05T13:02:19Z 110 00:01:50 0.252075125089657 Gooby 1.2.0
|
29
|
-
points.push(new GLatLng(35.22185,-80.84283)); // (7 of 250.0) 2005-03-05T13:02:29Z 120 00:02:00 0.274062567291757 Gooby 1.2.0
|
30
|
-
points.push(new GLatLng(35.22219,-80.84317)); // (8 of 250.0) 2005-03-05T13:02:41Z 132 00:02:12 0.304395193657625 Gooby 1.2.0
|
31
|
-
points.push(new GLatLng(35.22283,-80.84416)); // (9 of 250.0) 2005-03-05T13:03:10Z 161 00:02:41 0.375650926768755 Gooby 1.2.0
|
32
|
-
points.push(new GLatLng(35.22395,-80.84504)); // (10 of 250.0) 2005-03-05T13:03:53Z 204 00:03:24 0.467600066437587 Gooby 1.2.0
|
33
|
-
points.push(new GLatLng(35.22403,-80.84515)); // (11 of 250.0) 2005-03-05T13:03:57Z 208 00:03:28 0.475912452222793 Gooby 1.2.0
|
34
|
-
points.push(new GLatLng(35.22425,-80.84502)); // (12 of 250.0) 2005-03-05T13:04:04Z 215 00:03:35 0.492790426980333 Gooby 1.2.0
|
35
|
-
points.push(new GLatLng(35.2256,-80.84729)); // (13 of 250.0) 2005-03-05T13:05:11Z 282 00:04:42 0.651262953423234 Gooby 1.2.0
|
36
|
-
points.push(new GLatLng(35.22601,-80.8477)); // (14 of 250.0) 2005-03-05T13:05:27Z 298 00:04:58 0.687839739739913 Gooby 1.2.0
|
37
|
-
points.push(new GLatLng(35.22661,-80.84843)); // (15 of 250.0) 2005-03-05T13:05:54Z 325 00:05:25 0.746285122724138 Gooby 1.2.0
|
38
|
-
points.push(new GLatLng(35.22715,-80.84901)); // (16 of 250.0) 2005-03-05T13:06:16Z 347 00:05:47 0.795918233953314 Gooby 1.2.0
|
39
|
-
points.push(new GLatLng(35.22663,-80.84963)); // (17 of 250.0) 2005-03-05T13:06:38Z 369 00:06:09 0.846069376187672 Gooby 1.2.0
|
40
|
-
points.push(new GLatLng(35.22614,-80.85034)); // (18 of 250.0) 2005-03-05T13:07:01Z 392 00:06:32 0.898526894757261 Gooby 1.2.0
|
41
|
-
points.push(new GLatLng(35.22601,-80.85045)); // (19 of 250.0) 2005-03-05T13:07:06Z 397 00:06:37 0.909445268471631 Gooby 1.2.0
|
42
|
-
points.push(new GLatLng(35.22577,-80.85079)); // (20 of 250.0) 2005-03-05T13:07:17Z 408 00:06:48 0.934806000876925 Gooby 1.2.0
|
43
|
-
points.push(new GLatLng(35.22545,-80.85105)); // (21 of 250.0) 2005-03-05T13:07:29Z 420 00:07:00 0.961341335304109 Gooby 1.2.0
|
44
|
-
points.push(new GLatLng(35.22506,-80.85122)); // (22 of 250.0) 2005-03-05T13:07:42Z 433 00:07:13 0.989943630017703 Gooby 1.2.0
|
45
|
-
points.push(new GLatLng(35.22487,-80.85137)); // (23 of 250.0) 2005-03-05T13:07:49Z 440 00:07:20 1.00556377588005 1.0 00:07:20 Gooby 1.2.0
|
46
|
-
points.push(new GLatLng(35.22474,-80.85146)); // (24 of 250.0) 2005-03-05T13:07:54Z 445 00:07:25 1.01588215675517 Gooby 1.2.0
|
47
|
-
points.push(new GLatLng(35.22444,-80.85184)); // (25 of 250.0) 2005-03-05T13:08:08Z 459 00:07:39 1.04570805809106 Gooby 1.2.0
|
48
|
-
points.push(new GLatLng(35.22434,-80.85217)); // (26 of 250.0) 2005-03-05T13:08:18Z 469 00:07:49 1.06557326927759 Gooby 1.2.0
|
49
|
-
points.push(new GLatLng(35.22399,-80.85405)); // (27 of 250.0) 2005-03-05T13:09:09Z 520 00:08:40 1.17440056804311 Gooby 1.2.0
|
50
|
-
points.push(new GLatLng(35.22506,-80.85521)); // (28 of 250.0) 2005-03-05T13:09:55Z 566 00:09:26 1.27314970425493 Gooby 1.2.0
|
51
|
-
points.push(new GLatLng(35.22592,-80.85596)); // (29 of 250.0) 2005-03-05T13:10:28Z 599 00:09:59 1.34610297134886 Gooby 1.2.0
|
52
|
-
points.push(new GLatLng(35.22695,-80.85671)); // (30 of 250.0) 2005-03-05T13:11:07Z 638 00:10:38 1.42890298309629 Gooby 1.2.0
|
53
|
-
points.push(new GLatLng(35.22734,-80.85633)); // (31 of 250.0) 2005-03-05T13:11:23Z 654 00:10:54 1.46334106463099 Gooby 1.2.0
|
54
|
-
points.push(new GLatLng(35.22897,-80.8544)); // (32 of 250.0) 2005-03-05T13:12:35Z 726 00:12:06 1.62001531054915 Gooby 1.2.0
|
55
|
-
points.push(new GLatLng(35.22964,-80.85371)); // (33 of 250.0) 2005-03-05T13:13:04Z 755 00:12:35 1.68050655491899 Gooby 1.2.0
|
56
|
-
points.push(new GLatLng(35.232,-80.85109)); // (34 of 250.0) 2005-03-05T13:14:48Z 859 00:14:19 1.90061711602528 Gooby 1.2.0
|
57
|
-
points.push(new GLatLng(35.23193,-80.85088)); // (35 of 250.0) 2005-03-05T13:14:54Z 865 00:14:25 1.91341734302992 Gooby 1.2.0
|
58
|
-
points.push(new GLatLng(35.23105,-80.84968)); // (36 of 250.0) 2005-03-05T13:15:36Z 907 00:15:07 2.00442699838485 2.0 00:07:47 Gooby 1.2.0
|
59
|
-
points.push(new GLatLng(35.23032,-80.84895)); // (37 of 250.0) 2005-03-05T13:16:08Z 939 00:15:39 2.06955003935657 Gooby 1.2.0
|
60
|
-
points.push(new GLatLng(35.22998,-80.84882)); // (38 of 250.0) 2005-03-05T13:16:20Z 951 00:15:51 2.0941595900545 Gooby 1.2.0
|
61
|
-
points.push(new GLatLng(35.22974,-80.84888)); // (39 of 250.0) 2005-03-05T13:16:28Z 959 00:15:59 2.11108337231424 Gooby 1.2.0
|
62
|
-
points.push(new GLatLng(35.22925,-80.84893)); // (40 of 250.0) 2005-03-05T13:16:44Z 975 00:16:15 2.14505489093239 Gooby 1.2.0
|
63
|
-
points.push(new GLatLng(35.22882,-80.84886)); // (41 of 250.0) 2005-03-05T13:16:58Z 989 00:16:29 2.17502504361516 Gooby 1.2.0
|
64
|
-
points.push(new GLatLng(35.2285,-80.84862)); // (42 of 250.0) 2005-03-05T13:17:10Z 1001 00:16:41 2.20095299731342 Gooby 1.2.0
|
65
|
-
points.push(new GLatLng(35.22781,-80.84785)); // (43 of 250.0) 2005-03-05T13:17:40Z 1031 00:17:11 2.26545956261107 Gooby 1.2.0
|
66
|
-
points.push(new GLatLng(35.22674,-80.84648)); // (44 of 250.0) 2005-03-05T13:18:33Z 1084 00:18:04 2.37243340465649 Gooby 1.2.0
|
67
|
-
points.push(new GLatLng(35.2264,-80.84611)); // (45 of 250.0) 2005-03-05T13:18:49Z 1100 00:18:20 2.40386385307936 Gooby 1.2.0
|
68
|
-
points.push(new GLatLng(35.22397,-80.84317)); // (46 of 250.0) 2005-03-05T13:20:41Z 1212 00:20:12 2.63991390888025 Gooby 1.2.0
|
69
|
-
points.push(new GLatLng(35.22363,-80.84294)); // (47 of 250.0) 2005-03-05T13:20:51Z 1222 00:20:22 2.66675264078349 Gooby 1.2.0
|
70
|
-
points.push(new GLatLng(35.22331,-80.8426)); // (48 of 250.0) 2005-03-05T13:21:04Z 1235 00:20:35 2.69602795767016 Gooby 1.2.0
|
71
|
-
points.push(new GLatLng(35.22294,-80.84212)); // (49 of 250.0) 2005-03-05T13:21:23Z 1254 00:20:54 2.73327613433162 Gooby 1.2.0
|
72
|
-
points.push(new GLatLng(35.22182,-80.8409)); // (50 of 250.0) 2005-03-05T13:22:08Z 1299 00:21:39 2.83685803071362 Gooby 1.2.0
|
73
|
-
points.push(new GLatLng(35.22142,-80.84038)); // (51 of 250.0) 2005-03-05T13:22:27Z 1318 00:21:58 2.8771710819106 Gooby 1.2.0
|
74
|
-
points.push(new GLatLng(35.22013,-80.83905)); // (52 of 250.0) 2005-03-05T13:23:19Z 1370 00:22:50 2.99369860184411 Gooby 1.2.0
|
75
|
-
points.push(new GLatLng(35.22,-80.83886)); // (53 of 250.0) 2005-03-05T13:23:27Z 1378 00:22:58 3.00768703301529 3.0 00:07:51 Gooby 1.2.0
|
76
|
-
points.push(new GLatLng(35.2191,-80.8377)); // (54 of 250.0) 2005-03-05T13:24:10Z 1421 00:23:41 3.0979826551601 Gooby 1.2.0
|
77
|
-
points.push(new GLatLng(35.2185,-80.83717)); // (55 of 250.0) 2005-03-05T13:24:32Z 1443 00:24:03 3.14910358253967 Gooby 1.2.0
|
78
|
-
points.push(new GLatLng(35.2182,-80.83676)); // (56 of 250.0) 2005-03-05T13:24:47Z 1458 00:24:18 3.18017053416113 Gooby 1.2.0
|
79
|
-
points.push(new GLatLng(35.2173,-80.83577)); // (57 of 250.0) 2005-03-05T13:25:22Z 1493 00:24:53 3.2637709317134 Gooby 1.2.0
|
80
|
-
points.push(new GLatLng(35.21622,-80.83451)); // (58 of 250.0) 2005-03-05T13:26:10Z 1541 00:25:41 3.36685273369255 Gooby 1.2.0
|
81
|
-
points.push(new GLatLng(35.21532,-80.83287)); // (59 of 250.0) 2005-03-05T13:27:06Z 1597 00:26:37 3.47836872674983 Gooby 1.2.0
|
82
|
-
points.push(new GLatLng(35.21431,-80.83142)); // (60 of 250.0) 2005-03-05T13:28:00Z 1651 00:27:31 3.58592481990532 Gooby 1.2.0
|
83
|
-
points.push(new GLatLng(35.21348,-80.83064)); // (61 of 250.0) 2005-03-05T13:28:35Z 1686 00:28:06 3.65822231694953 Gooby 1.2.0
|
84
|
-
points.push(new GLatLng(35.21322,-80.83034)); // (62 of 250.0) 2005-03-05T13:28:48Z 1699 00:28:19 3.68290929709234 Gooby 1.2.0
|
85
|
-
points.push(new GLatLng(35.21298,-80.83006)); // (63 of 250.0) 2005-03-05T13:29:00Z 1711 00:28:31 3.70581685363569 Gooby 1.2.0
|
86
|
-
points.push(new GLatLng(35.2126,-80.8294)); // (64 of 250.0) 2005-03-05T13:29:23Z 1734 00:28:54 3.75139371097094 Gooby 1.2.0
|
87
|
-
points.push(new GLatLng(35.21225,-80.82908)); // (65 of 250.0) 2005-03-05T13:29:37Z 1748 00:29:08 3.7815769596586 Gooby 1.2.0
|
88
|
-
points.push(new GLatLng(35.21157,-80.82863)); // (66 of 250.0) 2005-03-05T13:30:00Z 1771 00:29:31 3.83498558070155 Gooby 1.2.0
|
89
|
-
points.push(new GLatLng(35.21099,-80.82798)); // (67 of 250.0) 2005-03-05T13:30:27Z 1798 00:29:58 3.8893184152624 Gooby 1.2.0
|
90
|
-
points.push(new GLatLng(35.21071,-80.82757)); // (68 of 250.0) 2005-03-05T13:30:42Z 1813 00:30:13 3.91948275228275 Gooby 1.2.0
|
91
|
-
points.push(new GLatLng(35.21015,-80.82644)); // (69 of 250.0) 2005-03-05T13:31:20Z 1851 00:30:51 3.99408715367927 Gooby 1.2.0
|
92
|
-
points.push(new GLatLng(35.21007,-80.82633)); // (70 of 250.0) 2005-03-05T13:31:24Z 1855 00:30:55 4.00240016732769 4.0 00:07:57 Gooby 1.2.0
|
93
|
-
points.push(new GLatLng(35.20979,-80.82599)); // (71 of 250.0) 2005-03-05T13:31:37Z 1868 00:31:08 4.02965092287953 Gooby 1.2.0
|
94
|
-
points.push(new GLatLng(35.20837,-80.82466)); // (72 of 250.0) 2005-03-05T13:32:37Z 1928 00:32:08 4.15319027560221 Gooby 1.2.0
|
95
|
-
points.push(new GLatLng(35.20794,-80.82436)); // (73 of 250.0) 2005-03-05T13:32:52Z 1943 00:32:23 4.18738689295133 Gooby 1.2.0
|
96
|
-
points.push(new GLatLng(35.20736,-80.82414)); // (74 of 250.0) 2005-03-05T13:33:11Z 1962 00:32:42 4.22933945730162 Gooby 1.2.0
|
97
|
-
points.push(new GLatLng(35.20704,-80.8241)); // (75 of 250.0) 2005-03-05T13:33:21Z 1972 00:32:52 4.25156316199676 Gooby 1.2.0
|
98
|
-
points.push(new GLatLng(35.20659,-80.8241)); // (76 of 250.0) 2005-03-05T13:33:35Z 1986 00:33:06 4.28265362467911 Gooby 1.2.0
|
99
|
-
points.push(new GLatLng(35.20607,-80.82414)); // (77 of 250.0) 2005-03-05T13:33:51Z 2002 00:33:22 4.31865129835617 Gooby 1.2.0
|
100
|
-
points.push(new GLatLng(35.2047,-80.82448)); // (78 of 250.0) 2005-03-05T13:34:38Z 2049 00:34:09 4.41523110646448 Gooby 1.2.0
|
101
|
-
points.push(new GLatLng(35.20286,-80.82489)); // (79 of 250.0) 2005-03-05T13:35:42Z 2113 00:35:13 4.5444466773487 Gooby 1.2.0
|
102
|
-
points.push(new GLatLng(35.20142,-80.82511)); // (80 of 250.0) 2005-03-05T13:36:29Z 2160 00:36:00 4.64470853975442 Gooby 1.2.0
|
103
|
-
points.push(new GLatLng(35.20073,-80.82528)); // (81 of 250.0) 2005-03-05T13:36:52Z 2183 00:36:23 4.69333712696039 Gooby 1.2.0
|
104
|
-
points.push(new GLatLng(35.19947,-80.82569)); // (82 of 250.0) 2005-03-05T13:37:35Z 2226 00:37:06 4.78341534575197 Gooby 1.2.0
|
105
|
-
points.push(new GLatLng(35.1985,-80.82612)); // (83 of 250.0) 2005-03-05T13:38:07Z 2258 00:37:38 4.8546942210228 Gooby 1.2.0
|
106
|
-
points.push(new GLatLng(35.19822,-80.82633)); // (84 of 250.0) 2005-03-05T13:38:18Z 2269 00:37:49 4.87738353125698 Gooby 1.2.0
|
107
|
-
points.push(new GLatLng(35.19809,-80.82629)); // (85 of 250.0) 2005-03-05T13:38:21Z 2272 00:37:52 4.88664508854348 Gooby 1.2.0
|
108
|
-
points.push(new GLatLng(35.19794,-80.82633)); // (86 of 250.0) 2005-03-05T13:38:26Z 2277 00:37:57 4.89725196852619 Gooby 1.2.0
|
109
|
-
points.push(new GLatLng(35.19646,-80.82706)); // (87 of 250.0) 2005-03-05T13:39:20Z 2331 00:38:51 5.00749881672153 5.0 00:07:56 Gooby 1.2.0
|
110
|
-
points.push(new GLatLng(35.19588,-80.82734)); // (88 of 250.0) 2005-03-05T13:39:40Z 2351 00:39:11 5.050576534569 Gooby 1.2.0
|
111
|
-
points.push(new GLatLng(35.19507,-80.8276)); // (89 of 250.0) 2005-03-05T13:40:07Z 2378 00:39:38 5.10843268542583 Gooby 1.2.0
|
112
|
-
points.push(new GLatLng(35.19331,-80.82835)); // (90 of 250.0) 2005-03-05T13:41:10Z 2441 00:40:41 5.23719334496019 Gooby 1.2.0
|
113
|
-
points.push(new GLatLng(35.19311,-80.82839)); // (91 of 250.0) 2005-03-05T13:41:17Z 2448 00:40:48 5.25119470467369 Gooby 1.2.0
|
114
|
-
points.push(new GLatLng(35.19305,-80.8279)); // (92 of 250.0) 2005-03-05T13:41:31Z 2462 00:41:02 5.27916957701965 Gooby 1.2.0
|
115
|
-
points.push(new GLatLng(35.19286,-80.82712)); // (93 of 250.0) 2005-03-05T13:41:54Z 2485 00:41:25 5.32512429470667 Gooby 1.2.0
|
116
|
-
points.push(new GLatLng(35.19281,-80.82665)); // (94 of 250.0) 2005-03-05T13:42:07Z 2498 00:41:38 5.35188512689578 Gooby 1.2.0
|
117
|
-
points.push(new GLatLng(35.19341,-80.82526)); // (95 of 250.0) 2005-03-05T13:42:47Z 2538 00:42:18 5.44064176601869 Gooby 1.2.0
|
118
|
-
points.push(new GLatLng(35.19339,-80.82506)); // (96 of 250.0) 2005-03-05T13:42:52Z 2543 00:42:23 5.45201819754931 Gooby 1.2.0
|
119
|
-
points.push(new GLatLng(35.19262,-80.82457)); // (97 of 250.0) 2005-03-05T13:43:15Z 2566 00:42:46 5.51198131194714 Gooby 1.2.0
|
120
|
-
points.push(new GLatLng(35.192,-80.8241)); // (98 of 250.0) 2005-03-05T13:43:41Z 2592 00:43:12 5.56237103993908 Gooby 1.2.0
|
121
|
-
points.push(new GLatLng(35.1915,-80.82378)); // (99 of 250.0) 2005-03-05T13:44:00Z 2611 00:43:31 5.60135579217499 Gooby 1.2.0
|
122
|
-
points.push(new GLatLng(35.18996,-80.82313)); // (100 of 250.0) 2005-03-05T13:44:53Z 2664 00:44:24 5.71390631630715 Gooby 1.2.0
|
123
|
-
points.push(new GLatLng(35.18932,-80.82279)); // (101 of 250.0) 2005-03-05T13:45:14Z 2685 00:44:45 5.76211154544005 Gooby 1.2.0
|
124
|
-
points.push(new GLatLng(35.1879,-80.82223)); // (102 of 250.0) 2005-03-05T13:46:05Z 2736 00:45:36 5.86518904360886 Gooby 1.2.0
|
125
|
-
points.push(new GLatLng(35.18781,-80.82225)); // (103 of 250.0) 2005-03-05T13:46:10Z 2741 00:45:41 5.87150921538085 Gooby 1.2.0
|
126
|
-
points.push(new GLatLng(35.18571,-80.82131)); // (104 of 250.0) 2005-03-05T13:47:20Z 2811 00:46:51 6.02600216440376 6.0 00:08:00 Gooby 1.2.0
|
127
|
-
points.push(new GLatLng(35.1849,-80.82105)); // (105 of 250.0) 2005-03-05T13:47:50Z 2841 00:47:21 6.08385879638182 Gooby 1.2.0
|
128
|
-
points.push(new GLatLng(35.18447,-80.82088)); // (106 of 250.0) 2005-03-05T13:48:06Z 2857 00:47:37 6.11507981370546 Gooby 1.2.0
|
129
|
-
points.push(new GLatLng(35.18376,-80.82045)); // (107 of 250.0) 2005-03-05T13:48:29Z 2880 00:48:00 6.16981423395522 Gooby 1.2.0
|
130
|
-
points.push(new GLatLng(35.18344,-80.82032)); // (108 of 250.0) 2005-03-05T13:48:40Z 2891 00:48:11 6.19310985522704 Gooby 1.2.0
|
131
|
-
points.push(new GLatLng(35.18301,-80.82017)); // (109 of 250.0) 2005-03-05T13:48:56Z 2907 00:48:27 6.22400249414074 Gooby 1.2.0
|
132
|
-
points.push(new GLatLng(35.18271,-80.82011)); // (110 of 250.0) 2005-03-05T13:49:08Z 2919 00:48:39 6.24500459583866 Gooby 1.2.0
|
133
|
-
points.push(new GLatLng(35.18101,-80.81938)); // (111 of 250.0) 2005-03-05T13:50:13Z 2984 00:49:44 6.36948149803506 Gooby 1.2.0
|
134
|
-
points.push(new GLatLng(35.1785,-80.81846)); // (112 of 250.0) 2005-03-05T13:51:53Z 3084 00:51:24 6.550512405446 Gooby 1.2.0
|
135
|
-
points.push(new GLatLng(35.17769,-80.81798)); // (113 of 250.0) 2005-03-05T13:52:22Z 3113 00:51:53 6.61269444995211 Gooby 1.2.0
|
136
|
-
points.push(new GLatLng(35.17734,-80.8177)); // (114 of 250.0) 2005-03-05T13:52:36Z 3127 00:52:07 6.64158687021785 Gooby 1.2.0
|
137
|
-
points.push(new GLatLng(35.17719,-80.81781)); // (115 of 250.0) 2005-03-05T13:52:42Z 3133 00:52:13 6.65366946336068 Gooby 1.2.0
|
138
|
-
points.push(new GLatLng(35.17706,-80.81807)); // (116 of 250.0) 2005-03-05T13:52:50Z 3141 00:52:21 6.67088160702726 Gooby 1.2.0
|
139
|
-
points.push(new GLatLng(35.17599,-80.81925)); // (117 of 250.0) 2005-03-05T13:53:36Z 3187 00:53:07 6.77040907973266 Gooby 1.2.0
|
140
|
-
points.push(new GLatLng(35.17563,-80.81976)); // (118 of 250.0) 2005-03-05T13:53:54Z 3205 00:53:25 6.80846379300353 Gooby 1.2.0
|
141
|
-
points.push(new GLatLng(35.17515,-80.82002)); // (119 of 250.0) 2005-03-05T13:54:10Z 3221 00:53:41 6.8447321568443 Gooby 1.2.0
|
142
|
-
points.push(new GLatLng(35.17483,-80.82045)); // (120 of 250.0) 2005-03-05T13:54:25Z 3236 00:53:56 6.87757273270934 Gooby 1.2.0
|
143
|
-
points.push(new GLatLng(35.17445,-80.82082)); // (121 of 250.0) 2005-03-05T13:54:41Z 3252 00:54:12 6.91112718199423 Gooby 1.2.0
|
144
|
-
points.push(new GLatLng(35.174,-80.82114)); // (122 of 250.0) 2005-03-05T13:54:58Z 3269 00:54:29 6.94708839683731 Gooby 1.2.0
|
145
|
-
points.push(new GLatLng(35.17322,-80.82146)); // (123 of 250.0) 2005-03-05T13:55:24Z 3295 00:54:55 7.00392808652734 7.0 00:08:04 Gooby 1.2.0
|
146
|
-
points.push(new GLatLng(35.17286,-80.82178)); // (124 of 250.0) 2005-03-05T13:55:39Z 3310 00:55:10 7.03467282378939 Gooby 1.2.0
|
147
|
-
points.push(new GLatLng(35.17254,-80.82219)); // (125 of 250.0) 2005-03-05T13:55:55Z 3326 00:55:26 7.06668767280766 Gooby 1.2.0
|
148
|
-
points.push(new GLatLng(35.17215,-80.82315)); // (126 of 250.0) 2005-03-05T13:56:23Z 3354 00:55:54 7.12723097967067 Gooby 1.2.0
|
149
|
-
points.push(new GLatLng(35.17035,-80.82251)); // (127 of 250.0) 2005-03-05T13:57:23Z 3414 00:56:54 7.25673914000319 Gooby 1.2.0
|
150
|
-
points.push(new GLatLng(35.16996,-80.82245)); // (128 of 250.0) 2005-03-05T13:57:37Z 3428 00:57:08 7.28389646203507 Gooby 1.2.0
|
151
|
-
points.push(new GLatLng(35.16955,-80.82245)); // (129 of 250.0) 2005-03-05T13:57:52Z 3443 00:57:23 7.31222335157005 Gooby 1.2.0
|
152
|
-
points.push(new GLatLng(35.16908,-80.82249)); // (130 of 250.0) 2005-03-05T13:58:08Z 3459 00:57:39 7.34477414431401 Gooby 1.2.0
|
153
|
-
points.push(new GLatLng(35.16831,-80.82264)); // (131 of 250.0) 2005-03-05T13:58:36Z 3487 00:58:07 7.39864378608744 Gooby 1.2.0
|
154
|
-
points.push(new GLatLng(35.16807,-80.82288)); // (132 of 250.0) 2005-03-05T13:58:45Z 3496 00:58:16 7.42006061565282 Gooby 1.2.0
|
155
|
-
points.push(new GLatLng(35.16786,-80.82328)); // (133 of 250.0) 2005-03-05T13:58:58Z 3509 00:58:29 7.4469098467018 Gooby 1.2.0
|
156
|
-
points.push(new GLatLng(35.16743,-80.82599)); // (134 of 250.0) 2005-03-05T14:00:12Z 3583 00:59:43 7.60282457704534 Gooby 1.2.0
|
157
|
-
points.push(new GLatLng(35.16737,-80.82659)); // (135 of 250.0) 2005-03-05T14:00:27Z 3598 00:59:58 7.63696467666009 Gooby 1.2.0
|
158
|
-
points.push(new GLatLng(35.16743,-80.82665)); // (136 of 250.0) 2005-03-05T14:00:30Z 3601 01:00:01 7.64231920897222 Gooby 1.2.0
|
159
|
-
points.push(new GLatLng(35.16764,-80.82674)); // (137 of 250.0) 2005-03-05T14:00:36Z 3607 01:00:07 7.6576928224623 Gooby 1.2.0
|
160
|
-
points.push(new GLatLng(35.16846,-80.82747)); // (138 of 250.0) 2005-03-05T14:01:06Z 3637 01:00:37 7.72776080256192 Gooby 1.2.0
|
161
|
-
points.push(new GLatLng(35.16865,-80.828)); // (139 of 250.0) 2005-03-05T14:01:21Z 3652 01:00:52 7.76044621745516 Gooby 1.2.0
|
162
|
-
points.push(new GLatLng(35.16874,-80.82854)); // (140 of 250.0) 2005-03-05T14:01:35Z 3666 01:01:06 7.7915719134302 Gooby 1.2.0
|
163
|
-
points.push(new GLatLng(35.16872,-80.82908)); // (141 of 250.0) 2005-03-05T14:01:50Z 3681 01:01:21 7.82210143346606 Gooby 1.2.0
|
164
|
-
points.push(new GLatLng(35.16859,-80.82953)); // (142 of 250.0) 2005-03-05T14:02:02Z 3693 01:01:33 7.84905710916142 Gooby 1.2.0
|
165
|
-
points.push(new GLatLng(35.16852,-80.83021)); // (143 of 250.0) 2005-03-05T14:02:21Z 3712 01:01:52 7.88776576241967 Gooby 1.2.0
|
166
|
-
points.push(new GLatLng(35.16855,-80.83064)); // (144 of 250.0) 2005-03-05T14:02:34Z 3725 01:02:05 7.91213983611875 Gooby 1.2.0
|
167
|
-
points.push(new GLatLng(35.16861,-80.83077)); // (145 of 250.0) 2005-03-05T14:02:38Z 3729 01:02:09 7.9205715017907 Gooby 1.2.0
|
168
|
-
points.push(new GLatLng(35.16876,-80.83081)); // (146 of 250.0) 2005-03-05T14:02:43Z 3734 01:02:14 7.93117838177341 Gooby 1.2.0
|
169
|
-
points.push(new GLatLng(35.16915,-80.83077)); // (147 of 250.0) 2005-03-05T14:02:55Z 3746 01:02:26 7.95821802360938 Gooby 1.2.0
|
170
|
-
points.push(new GLatLng(35.16958,-80.83064)); // (148 of 250.0) 2005-03-05T14:03:11Z 3762 01:02:42 7.98882051211451 Gooby 1.2.0
|
171
|
-
points.push(new GLatLng(35.17026,-80.83036)); // (149 of 250.0) 2005-03-05T14:03:37Z 3788 01:03:08 8.03839171773265 8.0 00:08:13 Gooby 1.2.0
|
172
|
-
points.push(new GLatLng(35.17082,-80.83004)); // (150 of 250.0) 2005-03-05T14:03:58Z 3809 01:03:29 8.08109496236739 Gooby 1.2.0
|
173
|
-
points.push(new GLatLng(35.17118,-80.82994)); // (151 of 250.0) 2005-03-05T14:04:13Z 3824 01:03:44 8.10660050751473 Gooby 1.2.0
|
174
|
-
points.push(new GLatLng(35.17153,-80.82991)); // (152 of 250.0) 2005-03-05T14:04:27Z 3838 01:03:58 8.13084131307244 Gooby 1.2.0
|
175
|
-
points.push(new GLatLng(35.17191,-80.83)); // (153 of 250.0) 2005-03-05T14:04:42Z 3853 01:04:13 8.15758302522269 Gooby 1.2.0
|
176
|
-
points.push(new GLatLng(35.17219,-80.83017)); // (154 of 250.0) 2005-03-05T14:04:54Z 3865 01:04:25 8.17917959949849 Gooby 1.2.0
|
177
|
-
points.push(new GLatLng(35.17277,-80.83103)); // (155 of 250.0) 2005-03-05T14:05:23Z 3894 01:04:54 8.24214574357516 Gooby 1.2.0
|
178
|
-
points.push(new GLatLng(35.17344,-80.83221)); // (156 of 250.0) 2005-03-05T14:05:57Z 3928 01:05:28 8.32328626319684 Gooby 1.2.0
|
179
|
-
points.push(new GLatLng(35.17352,-80.8323)); // (157 of 250.0) 2005-03-05T14:06:00Z 3931 01:05:31 8.33079526926888 Gooby 1.2.0
|
180
|
-
points.push(new GLatLng(35.17406,-80.83341)); // (158 of 250.0) 2005-03-05T14:06:33Z 3964 01:06:04 8.40374450603997 Gooby 1.2.0
|
181
|
-
points.push(new GLatLng(35.17427,-80.8344)); // (159 of 250.0) 2005-03-05T14:07:03Z 3994 01:06:34 8.46150615929062 Gooby 1.2.0
|
182
|
-
points.push(new GLatLng(35.17419,-80.8365)); // (160 of 250.0) 2005-03-05T14:08:03Z 4054 01:07:34 8.58023122986756 Gooby 1.2.0
|
183
|
-
points.push(new GLatLng(35.17423,-80.83654)); // (161 of 250.0) 2005-03-05T14:08:05Z 4056 01:07:36 8.58380080977036 Gooby 1.2.0
|
184
|
-
points.push(new GLatLng(35.1744,-80.83659)); // (162 of 250.0) 2005-03-05T14:08:13Z 4064 01:07:44 8.59588081085456 Gooby 1.2.0
|
185
|
-
points.push(new GLatLng(35.17526,-80.83644)); // (163 of 250.0) 2005-03-05T14:08:42Z 4093 01:08:13 8.65589902578633 Gooby 1.2.0
|
186
|
-
points.push(new GLatLng(35.17653,-80.83631)); // (164 of 250.0) 2005-03-05T14:09:29Z 4140 01:09:00 8.74394991696125 Gooby 1.2.0
|
187
|
-
points.push(new GLatLng(35.17689,-80.83635)); // (165 of 250.0) 2005-03-05T14:09:43Z 4154 01:09:14 8.76892464945857 Gooby 1.2.0
|
188
|
-
points.push(new GLatLng(35.17711,-80.83631)); // (166 of 250.0) 2005-03-05T14:09:51Z 4162 01:09:22 8.78429124515253 Gooby 1.2.0
|
189
|
-
points.push(new GLatLng(35.17719,-80.83622)); // (167 of 250.0) 2005-03-05T14:09:54Z 4165 01:09:25 8.79180001953306 Gooby 1.2.0
|
190
|
-
points.push(new GLatLng(35.17741,-80.83616)); // (168 of 250.0) 2005-03-05T14:10:01Z 4172 01:09:32 8.80737286936987 Gooby 1.2.0
|
191
|
-
points.push(new GLatLng(35.17859,-80.83564)); // (169 of 250.0) 2005-03-05T14:10:42Z 4213 01:10:13 8.89402644251433 Gooby 1.2.0
|
192
|
-
points.push(new GLatLng(35.1799,-80.83532)); // (170 of 250.0) 2005-03-05T14:11:24Z 4255 01:10:55 8.98632069221351 Gooby 1.2.0
|
193
|
-
points.push(new GLatLng(35.1808,-80.83517)); // (171 of 250.0) 2005-03-05T14:11:54Z 4285 01:11:25 9.04907599898347 9.0 00:08:17 Gooby 1.2.0
|
194
|
-
points.push(new GLatLng(35.18166,-80.83476)); // (172 of 250.0) 2005-03-05T14:12:22Z 4313 01:11:53 9.11284481374281 Gooby 1.2.0
|
195
|
-
points.push(new GLatLng(35.18256,-80.83455)); // (173 of 250.0) 2005-03-05T14:12:55Z 4346 01:12:26 9.17614648510883 Gooby 1.2.0
|
196
|
-
points.push(new GLatLng(35.18423,-80.83403)); // (174 of 250.0) 2005-03-05T14:13:54Z 4405 01:13:25 9.29520453074226 Gooby 1.2.0
|
197
|
-
points.push(new GLatLng(35.18462,-80.83371)); // (175 of 250.0) 2005-03-05T14:14:09Z 4420 01:13:40 9.32764750241309 Gooby 1.2.0
|
198
|
-
points.push(new GLatLng(35.18565,-80.83227)); // (176 of 250.0) 2005-03-05T14:15:02Z 4473 01:14:33 9.43570220637116 Gooby 1.2.0
|
199
|
-
points.push(new GLatLng(35.18599,-80.83189)); // (177 of 250.0) 2005-03-05T14:15:19Z 4490 01:14:50 9.46751770659419 Gooby 1.2.0
|
200
|
-
points.push(new GLatLng(35.18629,-80.83197)); // (178 of 250.0) 2005-03-05T14:15:30Z 4501 01:15:01 9.48873130253847 Gooby 1.2.0
|
201
|
-
points.push(new GLatLng(35.18657,-80.83225)); // (179 of 250.0) 2005-03-05T14:15:42Z 4513 01:15:13 9.51371536776566 Gooby 1.2.0
|
202
|
-
points.push(new GLatLng(35.18687,-80.8326)); // (180 of 250.0) 2005-03-05T14:15:56Z 4527 01:15:27 9.5423541952161 Gooby 1.2.0
|
203
|
-
points.push(new GLatLng(35.18702,-80.83305)); // (181 of 250.0) 2005-03-05T14:16:09Z 4540 01:15:40 9.56979593557512 Gooby 1.2.0
|
204
|
-
points.push(new GLatLng(35.18648,-80.8335)); // (182 of 250.0) 2005-03-05T14:16:20Z 4551 01:15:51 9.61493553806241 Gooby 1.2.0
|
205
|
-
points.push(new GLatLng(35.18597,-80.83414)); // (183 of 250.0) 2005-03-05T14:16:45Z 4576 01:16:16 9.66540881829436 Gooby 1.2.0
|
206
|
-
points.push(new GLatLng(35.18573,-80.83451)); // (184 of 250.0) 2005-03-05T14:16:58Z 4589 01:16:29 9.69208180658561 Gooby 1.2.0
|
207
|
-
points.push(new GLatLng(35.18483,-80.83549)); // (185 of 250.0) 2005-03-05T14:17:39Z 4630 01:17:10 9.77532067654695 Gooby 1.2.0
|
208
|
-
points.push(new GLatLng(35.18451,-80.83566)); // (186 of 250.0) 2005-03-05T14:17:52Z 4643 01:17:23 9.79942350765473 Gooby 1.2.0
|
209
|
-
points.push(new GLatLng(35.18412,-80.83577)); // (187 of 250.0) 2005-03-05T14:18:06Z 4657 01:17:37 9.82707536807506 Gooby 1.2.0
|
210
|
-
points.push(new GLatLng(35.18342,-80.8359)); // (188 of 250.0) 2005-03-05T14:18:30Z 4681 01:18:01 9.87599231512961 Gooby 1.2.0
|
211
|
-
points.push(new GLatLng(35.18249,-80.83618)); // (189 of 250.0) 2005-03-05T14:19:03Z 4714 01:18:34 9.94216278012939 Gooby 1.2.0
|
212
|
-
points.push(new GLatLng(35.18157,-80.83635)); // (190 of 250.0) 2005-03-05T14:19:33Z 4744 01:19:04 10.0064464032095 10.0 00:07:39 Gooby 1.2.0
|
213
|
-
points.push(new GLatLng(35.18129,-80.83646)); // (191 of 250.0) 2005-03-05T14:19:43Z 4754 01:19:14 10.0267643972185 Gooby 1.2.0
|
214
|
-
points.push(new GLatLng(35.18125,-80.83661)); // (192 of 250.0) 2005-03-05T14:19:47Z 4758 01:19:18 10.0356740064459 Gooby 1.2.0
|
215
|
-
points.push(new GLatLng(35.18136,-80.83751)); // (193 of 250.0) 2005-03-05T14:20:11Z 4782 01:19:42 10.0870616612511 Gooby 1.2.0
|
216
|
-
points.push(new GLatLng(35.18144,-80.8379)); // (194 of 250.0) 2005-03-05T14:20:20Z 4791 01:19:51 10.1097677575187 Gooby 1.2.0
|
217
|
-
points.push(new GLatLng(35.18174,-80.83865)); // (195 of 250.0) 2005-03-05T14:20:43Z 4814 01:20:14 10.1569196199737 Gooby 1.2.0
|
218
|
-
points.push(new GLatLng(35.18236,-80.8394)); // (196 of 250.0) 2005-03-05T14:21:08Z 4839 01:20:39 10.2171572709319 Gooby 1.2.0
|
219
|
-
points.push(new GLatLng(35.18284,-80.83978)); // (197 of 250.0) 2005-03-05T14:21:26Z 4857 01:20:57 10.2566572213943 Gooby 1.2.0
|
220
|
-
points.push(new GLatLng(35.1832,-80.84004)); // (198 of 250.0) 2005-03-05T14:21:39Z 4870 01:21:10 10.2855395238321 Gooby 1.2.0
|
221
|
-
points.push(new GLatLng(35.18365,-80.84008)); // (199 of 250.0) 2005-03-05T14:21:53Z 4884 01:21:24 10.3167119123429 Gooby 1.2.0
|
222
|
-
points.push(new GLatLng(35.18414,-80.84019)); // (200 of 250.0) 2005-03-05T14:22:10Z 4901 01:21:41 10.3511311454717 Gooby 1.2.0
|
223
|
-
points.push(new GLatLng(35.18417,-80.84036)); // (201 of 250.0) 2005-03-05T14:22:13Z 4904 01:21:44 10.360951764936 Gooby 1.2.0
|
224
|
-
points.push(new GLatLng(35.18447,-80.8406)); // (202 of 250.0) 2005-03-05T14:22:25Z 4916 01:21:56 10.3857160026808 Gooby 1.2.0
|
225
|
-
points.push(new GLatLng(35.185,-80.84062)); // (203 of 250.0) 2005-03-05T14:22:42Z 4933 01:22:13 10.4223511038034 Gooby 1.2.0
|
226
|
-
points.push(new GLatLng(35.18608,-80.84045)); // (204 of 250.0) 2005-03-05T14:23:17Z 4968 01:22:48 10.4975832401729 Gooby 1.2.0
|
227
|
-
points.push(new GLatLng(35.18651,-80.84043)); // (205 of 250.0) 2005-03-05T14:23:31Z 4982 01:23:02 10.5273134433703 Gooby 1.2.0
|
228
|
-
points.push(new GLatLng(35.18696,-80.84021)); // (206 of 250.0) 2005-03-05T14:23:48Z 4999 01:23:19 10.5607938751304 Gooby 1.2.0
|
229
|
-
points.push(new GLatLng(35.18736,-80.84021)); // (207 of 250.0) 2005-03-05T14:24:03Z 5014 01:23:34 10.5884298761554 Gooby 1.2.0
|
230
|
-
points.push(new GLatLng(35.18771,-80.84011)); // (208 of 250.0) 2005-03-05T14:24:18Z 5029 01:23:49 10.6132619550072 Gooby 1.2.0
|
231
|
-
points.push(new GLatLng(35.18867,-80.83955)); // (209 of 250.0) 2005-03-05T14:24:56Z 5067 01:24:27 10.6867400519163 Gooby 1.2.0
|
232
|
-
points.push(new GLatLng(35.19116,-80.83779)); // (210 of 250.0) 2005-03-05T14:26:33Z 5164 01:26:04 10.8854138818426 Gooby 1.2.0
|
233
|
-
points.push(new GLatLng(35.19176,-80.83738)); // (211 of 250.0) 2005-03-05T14:26:56Z 5187 01:26:27 10.9328937584589 Gooby 1.2.0
|
234
|
-
points.push(new GLatLng(35.19228,-80.83708)); // (212 of 250.0) 2005-03-05T14:27:14Z 5205 01:26:45 10.9726134949364 Gooby 1.2.0
|
235
|
-
points.push(new GLatLng(35.19273,-80.83687)); // (213 of 250.0) 2005-03-05T14:27:30Z 5221 01:27:01 11.0058882486447 11.0 00:07:57 Gooby 1.2.0
|
236
|
-
points.push(new GLatLng(35.19322,-80.83676)); // (214 of 250.0) 2005-03-05T14:27:48Z 5239 01:27:19 11.0403073301359 Gooby 1.2.0
|
237
|
-
points.push(new GLatLng(35.19365,-80.83678)); // (215 of 250.0) 2005-03-05T14:28:01Z 5252 01:27:32 11.0700374748156 Gooby 1.2.0
|
238
|
-
points.push(new GLatLng(35.19387,-80.83684)); // (216 of 250.0) 2005-03-05T14:28:07Z 5258 01:27:38 11.0856101012175 Gooby 1.2.0
|
239
|
-
points.push(new GLatLng(35.19462,-80.83697)); // (217 of 250.0) 2005-03-05T14:28:34Z 5285 01:28:05 11.1379448656822 Gooby 1.2.0
|
240
|
-
points.push(new GLatLng(35.19485,-80.83674)); // (218 of 250.0) 2005-03-05T14:28:44Z 5295 01:28:15 11.158466654738 Gooby 1.2.0
|
241
|
-
points.push(new GLatLng(35.19562,-80.83384)); // (219 of 250.0) 2005-03-05T14:30:09Z 5380 01:29:40 11.3306260112061 Gooby 1.2.0
|
242
|
-
points.push(new GLatLng(35.19597,-80.8333)); // (220 of 250.0) 2005-03-05T14:30:31Z 5402 01:30:02 11.3695396087745 Gooby 1.2.0
|
243
|
-
points.push(new GLatLng(35.19644,-80.83272)); // (221 of 250.0) 2005-03-05T14:30:56Z 5427 01:30:27 11.4156565260447 Gooby 1.2.0
|
244
|
-
points.push(new GLatLng(35.19674,-80.8323)); // (222 of 250.0) 2005-03-05T14:31:14Z 5445 01:30:45 11.4471510623899 Gooby 1.2.0
|
245
|
-
points.push(new GLatLng(35.197,-80.83219)); // (223 of 250.0) 2005-03-05T14:31:24Z 5455 01:30:55 11.4661576750723 Gooby 1.2.0
|
246
|
-
points.push(new GLatLng(35.19753,-80.8321)); // (224 of 250.0) 2005-03-05T14:31:45Z 5476 01:31:16 11.5031262424333 Gooby 1.2.0
|
247
|
-
points.push(new GLatLng(35.19796,-80.83208)); // (225 of 250.0) 2005-03-05T14:31:59Z 5490 01:31:30 11.5328563871129 Gooby 1.2.0
|
248
|
-
points.push(new GLatLng(35.1985,-80.83223)); // (226 of 250.0) 2005-03-05T14:32:19Z 5510 01:31:50 11.5711140454601 Gooby 1.2.0
|
249
|
-
points.push(new GLatLng(35.19929,-80.83225)); // (227 of 250.0) 2005-03-05T14:32:47Z 5538 01:32:18 11.6257068382031 Gooby 1.2.0
|
250
|
-
points.push(new GLatLng(35.19983,-80.83212)); // (228 of 250.0) 2005-03-05T14:33:06Z 5557 01:32:37 11.6637304969813 Gooby 1.2.0
|
251
|
-
points.push(new GLatLng(35.20062,-80.83172)); // (229 of 250.0) 2005-03-05T14:33:36Z 5587 01:33:07 11.722798828852 Gooby 1.2.0
|
252
|
-
points.push(new GLatLng(35.20097,-80.83174)); // (230 of 250.0) 2005-03-05T14:33:48Z 5599 01:33:19 11.7470067417448 Gooby 1.2.0
|
253
|
-
points.push(new GLatLng(35.20138,-80.83204)); // (231 of 250.0) 2005-03-05T14:34:05Z 5616 01:33:36 11.7800107114036 Gooby 1.2.0
|
254
|
-
points.push(new GLatLng(35.20277,-80.83322)); // (232 of 250.0) 2005-03-05T14:35:00Z 5671 01:34:31 11.8968891531704 Gooby 1.2.0
|
255
|
-
points.push(new GLatLng(35.20316,-80.83363)); // (233 of 250.0) 2005-03-05T14:35:19Z 5690 01:34:50 11.9324108248346 Gooby 1.2.0
|
256
|
-
points.push(new GLatLng(35.20419,-80.83504)); // (234 of 250.0) 2005-03-05T14:36:13Z 5744 01:35:44 12.0391830723979 12.0 00:08:43 Gooby 1.2.0
|
257
|
-
points.push(new GLatLng(35.205,-80.83601)); // (235 of 250.0) 2005-03-05T14:36:50Z 5781 01:36:21 12.1174804265797 Gooby 1.2.0
|
258
|
-
points.push(new GLatLng(35.20565,-80.83687)); // (236 of 250.0) 2005-03-05T14:37:22Z 5813 01:36:53 12.1836152827885 Gooby 1.2.0
|
259
|
-
points.push(new GLatLng(35.20631,-80.83768)); // (237 of 250.0) 2005-03-05T14:37:56Z 5847 01:37:27 12.2481924440512 Gooby 1.2.0
|
260
|
-
points.push(new GLatLng(35.20775,-80.8391)); // (238 of 250.0) 2005-03-05T14:39:06Z 5917 01:38:37 12.3759579346014 Gooby 1.2.0
|
261
|
-
points.push(new GLatLng(35.20934,-80.84051)); // (239 of 250.0) 2005-03-05T14:40:19Z 5990 01:39:50 12.5116160401105 Gooby 1.2.0
|
262
|
-
points.push(new GLatLng(35.21088,-80.84197)); // (240 of 250.0) 2005-03-05T14:41:34Z 6065 01:41:05 12.6462009665708 Gooby 1.2.0
|
263
|
-
points.push(new GLatLng(35.21189,-80.84279)); // (241 of 250.0) 2005-03-05T14:42:18Z 6109 01:41:49 12.7299382667899 Gooby 1.2.0
|
264
|
-
points.push(new GLatLng(35.21225,-80.84317)); // (242 of 250.0) 2005-03-05T14:42:34Z 6125 01:42:05 12.7627826566699 Gooby 1.2.0
|
265
|
-
points.push(new GLatLng(35.21393,-80.84459)); // (243 of 250.0) 2005-03-05T14:43:44Z 6195 01:43:15 12.9038408253177 Gooby 1.2.0
|
266
|
-
points.push(new GLatLng(35.21406,-80.8445)); // (244 of 250.0) 2005-03-05T14:43:49Z 6200 01:43:20 12.9141595434003 Gooby 1.2.0
|
267
|
-
points.push(new GLatLng(35.21431,-80.84399)); // (245 of 250.0) 2005-03-05T14:44:05Z 6216 01:43:36 12.9477315128867 Gooby 1.2.0
|
268
|
-
points.push(new GLatLng(35.21537,-80.84242)); // (246 of 250.0) 2005-03-05T14:45:00Z 6271 01:44:31 13.0626968352779 13.0 00:08:47 Gooby 1.2.0
|
269
|
-
points.push(new GLatLng(35.21586,-80.84159)); // (247 of 250.0) 2005-03-05T14:45:30Z 6301 01:45:01 13.1204983528532 Gooby 1.2.0
|
270
|
-
points.push(new GLatLng(35.21695,-80.83998)); // (248 of 250.0) 2005-03-05T14:46:29Z 6360 01:46:00 13.2385232480761 Gooby 1.2.0
|
271
|
-
points.push(new GLatLng(35.21728,-80.83957)); // (249 of 250.0) 2005-03-05T14:46:43Z 6374 01:46:14 13.2710100551754 Gooby 1.2.0
|
272
|
-
points.push(new GLatLng(35.21831,-80.83809)); // (250 of 250.0) 2005-03-05T14:47:26Z 6417 01:46:57 13.3807489594998 Gooby 1.2.0
|
273
|
-
|
274
|
-
var routePolyline = new GPolyline(points);
|
275
|
-
map.addOverlay(routePolyline);
|
276
|
-
|
277
|
-
// Create a base icon for all of our markers that specifies the
|
278
|
-
// shadow, icon dimensions, etc.
|
279
|
-
var baseIcon = new GIcon();
|
280
|
-
baseIcon.shadow = "http://www.joakim-systems.com/gicons/shadow50.png";
|
281
|
-
baseIcon.iconSize = new GSize(20, 34);
|
282
|
-
baseIcon.shadowSize = new GSize(37, 34);
|
283
|
-
baseIcon.iconAnchor = new GPoint(9, 34);
|
284
|
-
baseIcon.infoWindowAnchor = new GPoint(9, 2);
|
285
|
-
baseIcon.infoShadowAnchor = new GPoint(18, 25);
|
286
|
-
|
287
|
-
var iconStart = new GIcon(baseIcon);
|
288
|
-
iconStart.image = "http://www.joakim-systems.com/gicons/dd-start.png";
|
289
|
-
var pStart = new GPoint(-80.84566, 35.22101);
|
290
|
-
var mStart = new GMarker(pStart, iconStart);
|
291
|
-
GEvent.addListener(mStart, "click", function() {
|
292
|
-
mStart.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Start!</b></td></tr><tr><td>Distance:</td><td>0.0 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T13:00:29Z</td></tr><tr><td>Elapsed Time:</td><td>00:00:00</td></tr><tr><td>Average Pace:</td><td></td></tr><tr><td>Lat/Lng:</td><td>35.22101 , -80.84566</td></tr><tr><td>Altitude:</td><td>219.799</td></tr></table>");
|
293
|
-
});
|
294
|
-
map.addOverlay(mStart);
|
295
|
-
|
296
|
-
var icon1 = new GIcon(baseIcon);
|
297
|
-
icon1.image = "http://www.joakim-systems.com/gicons/marker1.png";
|
298
|
-
var p1 = new GPoint(-80.85137, 35.22487);
|
299
|
-
var m1 = new GMarker(p1, icon1);
|
300
|
-
GEvent.addListener(m1, "click", function() {
|
301
|
-
m1.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 1</b></td></tr><tr><td>Distance:</td><td>1.00556377588005 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T13:07:49Z</td></tr><tr><td>Elapsed Time:</td><td>00:07:20</td></tr><tr><td>Average Pace:</td><td>7:17.565 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.22487 , -80.85137</td></tr><tr><td>Altitude:</td><td>227.489</td></tr></table>");
|
302
|
-
});
|
303
|
-
map.addOverlay(m1);
|
304
|
-
|
305
|
-
var icon2 = new GIcon(baseIcon);
|
306
|
-
icon2.image = "http://www.joakim-systems.com/gicons/marker2.png";
|
307
|
-
var p2 = new GPoint(-80.84968, 35.23105);
|
308
|
-
var m2 = new GMarker(p2, icon2);
|
309
|
-
GEvent.addListener(m2, "click", function() {
|
310
|
-
m2.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 2</b></td></tr><tr><td>Distance:</td><td>2.00442699838485 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T13:15:36Z</td></tr><tr><td>Elapsed Time:</td><td>00:15:07</td></tr><tr><td>Average Pace:</td><td>7:32.498 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.23105 , -80.84968</td></tr><tr><td>Altitude:</td><td>224.125</td></tr></table>");
|
311
|
-
});
|
312
|
-
map.addOverlay(m2);
|
313
|
-
|
314
|
-
var icon3 = new GIcon(baseIcon);
|
315
|
-
icon3.image = "http://www.joakim-systems.com/gicons/marker3.png";
|
316
|
-
var p3 = new GPoint(-80.83886, 35.22);
|
317
|
-
var m3 = new GMarker(p3, icon3);
|
318
|
-
GEvent.addListener(m3, "click", function() {
|
319
|
-
m3.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 3</b></td></tr><tr><td>Distance:</td><td>3.00768703301529 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T13:23:27Z</td></tr><tr><td>Elapsed Time:</td><td>00:22:58</td></tr><tr><td>Average Pace:</td><td>7:38.159 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.22 , -80.83886</td></tr><tr><td>Altitude:</td><td>185.672</td></tr></table>");
|
320
|
-
});
|
321
|
-
map.addOverlay(m3);
|
322
|
-
|
323
|
-
var icon4 = new GIcon(baseIcon);
|
324
|
-
icon4.image = "http://www.joakim-systems.com/gicons/marker4.png";
|
325
|
-
var p4 = new GPoint(-80.82633, 35.21007);
|
326
|
-
var m4 = new GMarker(p4, icon4);
|
327
|
-
GEvent.addListener(m4, "click", function() {
|
328
|
-
m4.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 4</b></td></tr><tr><td>Distance:</td><td>4.00240016732769 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T13:31:24Z</td></tr><tr><td>Elapsed Time:</td><td>00:30:55</td></tr><tr><td>Average Pace:</td><td>7:43.471 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.21007 , -80.82633</td></tr><tr><td>Altitude:</td><td>214.511</td></tr></table>");
|
329
|
-
});
|
330
|
-
map.addOverlay(m4);
|
331
|
-
|
332
|
-
var icon5 = new GIcon(baseIcon);
|
333
|
-
icon5.image = "http://www.joakim-systems.com/gicons/marker5.png";
|
334
|
-
var p5 = new GPoint(-80.82706, 35.19646);
|
335
|
-
var m5 = new GMarker(p5, icon5);
|
336
|
-
GEvent.addListener(m5, "click", function() {
|
337
|
-
m5.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 5</b></td></tr><tr><td>Distance:</td><td>5.00749881672153 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T13:39:20Z</td></tr><tr><td>Elapsed Time:</td><td>00:38:51</td></tr><tr><td>Average Pace:</td><td>7:45.501 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.19646 , -80.82706</td></tr><tr><td>Altitude:</td><td>220.76</td></tr></table>");
|
338
|
-
});
|
339
|
-
map.addOverlay(m5);
|
340
|
-
|
341
|
-
var icon6 = new GIcon(baseIcon);
|
342
|
-
icon6.image = "http://www.joakim-systems.com/gicons/marker6.png";
|
343
|
-
var p6 = new GPoint(-80.82131, 35.18571);
|
344
|
-
var m6 = new GMarker(p6, icon6);
|
345
|
-
GEvent.addListener(m6, "click", function() {
|
346
|
-
m6.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 6</b></td></tr><tr><td>Distance:</td><td>6.02600216440376 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T13:47:20Z</td></tr><tr><td>Elapsed Time:</td><td>00:46:51</td></tr><tr><td>Average Pace:</td><td>7:46.478 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.18571 , -80.82131</td></tr><tr><td>Altitude:</td><td>209.224</td></tr></table>");
|
347
|
-
});
|
348
|
-
map.addOverlay(m6);
|
349
|
-
|
350
|
-
var icon7 = new GIcon(baseIcon);
|
351
|
-
icon7.image = "http://www.joakim-systems.com/gicons/marker7.png";
|
352
|
-
var p7 = new GPoint(-80.82146, 35.17322);
|
353
|
-
var m7 = new GMarker(p7, icon7);
|
354
|
-
GEvent.addListener(m7, "click", function() {
|
355
|
-
m7.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 7</b></td></tr><tr><td>Distance:</td><td>7.00392808652734 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T13:55:24Z</td></tr><tr><td>Elapsed Time:</td><td>00:54:55</td></tr><tr><td>Average Pace:</td><td>7:50.450 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.17322 , -80.82146</td></tr><tr><td>Altitude:</td><td>201.053</td></tr></table>");
|
356
|
-
});
|
357
|
-
map.addOverlay(m7);
|
358
|
-
|
359
|
-
var icon8 = new GIcon(baseIcon);
|
360
|
-
icon8.image = "http://www.joakim-systems.com/gicons/marker8.png";
|
361
|
-
var p8 = new GPoint(-80.83036, 35.17026);
|
362
|
-
var m8 = new GMarker(p8, icon8);
|
363
|
-
GEvent.addListener(m8, "click", function() {
|
364
|
-
m8.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 8</b></td></tr><tr><td>Distance:</td><td>8.03839171773265 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T14:03:37Z</td></tr><tr><td>Elapsed Time:</td><td>01:03:08</td></tr><tr><td>Average Pace:</td><td>7:51.238 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.17026 , -80.83036</td></tr><tr><td>Altitude:</td><td>202.014</td></tr></table>");
|
365
|
-
});
|
366
|
-
map.addOverlay(m8);
|
367
|
-
|
368
|
-
var icon9 = new GIcon(baseIcon);
|
369
|
-
icon9.image = "http://www.joakim-systems.com/gicons/marker9.png";
|
370
|
-
var p9 = new GPoint(-80.83517, 35.1808);
|
371
|
-
var m9 = new GMarker(p9, icon9);
|
372
|
-
GEvent.addListener(m9, "click", function() {
|
373
|
-
m9.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 9</b></td></tr><tr><td>Distance:</td><td>9.04907599898347 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T14:11:54Z</td></tr><tr><td>Elapsed Time:</td><td>01:11:25</td></tr><tr><td>Average Pace:</td><td>7:53.529 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.1808 , -80.83517</td></tr><tr><td>Altitude:</td><td>216.915</td></tr></table>");
|
374
|
-
});
|
375
|
-
map.addOverlay(m9);
|
376
|
-
|
377
|
-
var icon10 = new GIcon(baseIcon);
|
378
|
-
icon10.image = "http://www.joakim-systems.com/gicons/marker10.png";
|
379
|
-
var p10 = new GPoint(-80.83635, 35.18157);
|
380
|
-
var m10 = new GMarker(p10, icon10);
|
381
|
-
GEvent.addListener(m10, "click", function() {
|
382
|
-
m10.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 10</b></td></tr><tr><td>Distance:</td><td>10.0064464032095 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T14:19:33Z</td></tr><tr><td>Elapsed Time:</td><td>01:19:04</td></tr><tr><td>Average Pace:</td><td>7:54.094 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.18157 , -80.83635</td></tr><tr><td>Altitude:</td><td>214.992</td></tr></table>");
|
383
|
-
});
|
384
|
-
map.addOverlay(m10);
|
385
|
-
|
386
|
-
var icon11 = new GIcon(baseIcon);
|
387
|
-
icon11.image = "http://www.joakim-systems.com/gicons/marker11.png";
|
388
|
-
var p11 = new GPoint(-80.83687, 35.19273);
|
389
|
-
var m11 = new GMarker(p11, icon11);
|
390
|
-
GEvent.addListener(m11, "click", function() {
|
391
|
-
m11.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 11</b></td></tr><tr><td>Distance:</td><td>11.0058882486447 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T14:27:30Z</td></tr><tr><td>Elapsed Time:</td><td>01:27:01</td></tr><tr><td>Average Pace:</td><td>7:54.382 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.19273 , -80.83687</td></tr><tr><td>Altitude:</td><td>218.357</td></tr></table>");
|
392
|
-
});
|
393
|
-
map.addOverlay(m11);
|
394
|
-
|
395
|
-
var icon12 = new GIcon(baseIcon);
|
396
|
-
icon12.image = "http://www.joakim-systems.com/gicons/marker12.png";
|
397
|
-
var p12 = new GPoint(-80.83504, 35.20419);
|
398
|
-
var m12 = new GMarker(p12, icon12);
|
399
|
-
GEvent.addListener(m12, "click", function() {
|
400
|
-
m12.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 12</b></td></tr><tr><td>Distance:</td><td>12.0391830723979 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T14:36:13Z</td></tr><tr><td>Elapsed Time:</td><td>01:35:44</td></tr><tr><td>Average Pace:</td><td>7:57.108 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.20419 , -80.83504</td></tr><tr><td>Altitude:</td><td>208.743</td></tr></table>");
|
401
|
-
});
|
402
|
-
map.addOverlay(m12);
|
403
|
-
|
404
|
-
var icon13 = new GIcon(baseIcon);
|
405
|
-
icon13.image = "http://www.joakim-systems.com/gicons/marker13.png";
|
406
|
-
var p13 = new GPoint(-80.84242, 35.21537);
|
407
|
-
var m13 = new GMarker(p13, icon13);
|
408
|
-
GEvent.addListener(m13, "click", function() {
|
409
|
-
m13.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 13</b></td></tr><tr><td>Distance:</td><td>13.0626968352779 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T14:45:00Z</td></tr><tr><td>Elapsed Time:</td><td>01:44:31</td></tr><tr><td>Average Pace:</td><td>8:00.069 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.21537 , -80.84242</td></tr><tr><td>Altitude:</td><td>209.705</td></tr></table>");
|
410
|
-
});
|
411
|
-
map.addOverlay(m13);
|
412
|
-
|
413
|
-
var iconFinish = new GIcon(baseIcon);
|
414
|
-
iconFinish.image = "http://www.joakim-systems.com/gicons/dd-end.png";
|
415
|
-
var pFinish = new GPoint(-80.83809, 35.21831);
|
416
|
-
var mFinish = new GMarker(pFinish, iconFinish);
|
417
|
-
GEvent.addListener(mFinish, "click", function() {
|
418
|
-
mFinish.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Finish!</b></td></tr><tr><td>Distance:</td><td>13.3807489594998 mi</td></tr><tr><td>Time of Day:</td><td>2005-03-05T14:47:26Z</td></tr><tr><td>Elapsed Time:</td><td>01:46:57</td></tr><tr><td>Average Pace:</td><td>7:59.569 per mi</td></tr><tr><td>Lat/Lng:</td><td>35.21831 , -80.83809</td></tr><tr><td>Altitude:</td><td>208.263</td></tr></table>");
|
419
|
-
});
|
420
|
-
map.addOverlay(mFinish);
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
GEvent.addListener(map, "click", function() {
|
426
|
-
var center = map.getCenter();
|
427
|
-
|
428
|
-
document.getElementById("messages").innerHTML = 'click: ' + center.toString();
|
429
|
-
});
|
430
|
-
GEvent.addListener(map, "moveend", function() {
|
431
|
-
var center = map.getCenter();
|
432
|
-
|
433
|
-
document.getElementById("messages").innerHTML = 'moveend: ' + center.toString();
|
434
|
-
});
|
435
|
-
|
436
|
-
}
|
437
|
-
}
|
438
|
-
//]]>
|
439
|
-
|
440
|
-
</script>
|
441
|
-
</head>
|
442
|
-
<body onload="load()" onunload="GUnload()">
|
443
|
-
<center>
|
444
|
-
<h3> 2005/03/05 Charlotte Corporate Cup Half Marathon </h3>
|
445
|
-
<h5> Generated by Gooby Sun Jul 22 09:48:34 EDT 2007 <br> Gooby = Google APIs + Ruby </h5>
|
446
|
-
<div id="map" style="width: 900px; height: 600px"></div>
|
447
|
-
<div id="messages"></div>
|
448
|
-
</center>
|
449
|
-
</body>
|
450
|
-
</html>
|