Gooby 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. data/README +218 -0
  2. data/bin/forerunner_xml_parser.rb +28 -0
  3. data/bin/forerunner_xml_parser.sh +16 -0
  4. data/bin/forerunner_xml_splitter.rb +60 -0
  5. data/bin/gen_gmap.rb +30 -0
  6. data/bin/gen_gmap.sh +19 -0
  7. data/bin/tests_gen.rb +13 -0
  8. data/data/20041113_richmond_marathon.csv +1036 -0
  9. data/data/20041113_richmond_marathon.xml +8663 -0
  10. data/data/20050305_corporate_cup_hm.csv +251 -0
  11. data/data/20050305_corporate_cup_hm.xml +2208 -0
  12. data/data/20050430_nashville_marathon.csv +1208 -0
  13. data/data/20050430_nashville_marathon.xml +10043 -0
  14. data/data/20051119_dowd_ymca_hm.csv +251 -0
  15. data/data/20051119_dowd_ymca_hm.xml +2210 -0
  16. data/data/20051124_hyatt_turkey_trot_8K.csv +321 -0
  17. data/data/20051124_hyatt_turkey_trot_8K.xml +2651 -0
  18. data/data/forerunner_2005.xml +259620 -0
  19. data/data/forerunner_2006.xml +190853 -0
  20. data/data/forerunner_2007.xml +259014 -0
  21. data/data/geo_data.txt +171 -0
  22. data/data/phx.csv +1280 -0
  23. data/data/phx.xml +10620 -0
  24. data/data/run_2007_01_01_16_38_27.xml +2020 -0
  25. data/data/run_2007_01_06_15_27_31.xml +2020 -0
  26. data/data/run_2007_01_10_12_25_47.xml +820 -0
  27. data/data/run_2007_01_10_22_44_54.csv +112 -0
  28. data/data/run_2007_01_10_22_44_54.xml +908 -0
  29. data/data/run_2007_01_11_10_48_45.xml +1292 -0
  30. data/data/run_2007_01_13_15_37_06.xml +1964 -0
  31. data/data/run_2007_01_14_15_46_02.xml +1368 -0
  32. data/data/run_2007_01_15_14_01_48.xml +1868 -0
  33. data/data/run_2007_01_20_16_22_05.xml +1702 -0
  34. data/data/run_2007_01_27_17_32_13.xml +3626 -0
  35. data/data/run_2007_01_28_19_14_52.xml +2538 -0
  36. data/data/run_2007_02_03_14_30_20.xml +2016 -0
  37. data/data/run_2007_02_04_18_02_30.xml +1476 -0
  38. data/data/run_2007_02_17_16_29_35.xml +1236 -0
  39. data/data/run_2007_02_19_14_44_33.xml +1816 -0
  40. data/data/run_2007_02_23_15_53_55.xml +36 -0
  41. data/data/run_2007_02_23_15_55_20.xml +1296 -0
  42. data/data/run_2007_02_24_15_01_35.csv +484 -0
  43. data/data/run_2007_02_24_15_01_35.xml +3884 -0
  44. data/data/test1.txt +4 -0
  45. data/lib/cls_counter_hash.rb +83 -0
  46. data/lib/cls_delim_line.rb +40 -0
  47. data/lib/cls_dttm.rb +84 -0
  48. data/lib/cls_duration.rb +87 -0
  49. data/lib/cls_forerunner_xml_parser.rb +183 -0
  50. data/lib/cls_forerunner_xml_splitter.rb +113 -0
  51. data/lib/cls_geo_data.rb +186 -0
  52. data/lib/cls_gooby_object.rb +23 -0
  53. data/lib/cls_google_map_generator.rb +368 -0
  54. data/lib/cls_history.rb +38 -0
  55. data/lib/cls_lap.rb +27 -0
  56. data/lib/cls_line.rb +78 -0
  57. data/lib/cls_options.rb +74 -0
  58. data/lib/cls_position.rb +49 -0
  59. data/lib/cls_run.rb +199 -0
  60. data/lib/cls_simple_xml_parser.rb +46 -0
  61. data/lib/cls_test_regen.rb +187 -0
  62. data/lib/cls_track.rb +52 -0
  63. data/lib/cls_trackpoint.rb +205 -0
  64. data/lib/mod_introspect.rb +33 -0
  65. data/lib/mod_io.rb +65 -0
  66. data/lib/mod_project_info.rb +81 -0
  67. data/lib/mod_string.rb +26 -0
  68. data/lib/mod_test_helper.rb +22 -0
  69. data/samples/20041113_richmond_marathon.html +532 -0
  70. data/samples/20050305_corporate_cup_hm.html +448 -0
  71. data/samples/20050430_nashville_marathon.html +530 -0
  72. data/samples/gps_point_capture.html +54 -0
  73. data/samples/phoenix_marathon.html +542 -0
  74. data/samples/run_2007_01_10_22_44_54.html +146 -0
  75. data/samples/run_2007_02_24_15_01_35.html +298 -0
  76. data/tests/tst_cls_counter_hash.rb +105 -0
  77. data/tests/tst_cls_delim_line.rb +72 -0
  78. data/tests/tst_cls_dttm.rb +129 -0
  79. data/tests/tst_cls_duration.rb +49 -0
  80. data/tests/tst_cls_forerunner_xml_parser.rb +68 -0
  81. data/tests/tst_cls_geo_data.rb +69 -0
  82. data/tests/tst_cls_gooby_object.rb +24 -0
  83. data/tests/tst_cls_google_map_generator.rb +107 -0
  84. data/tests/tst_cls_history.rb +44 -0
  85. data/tests/tst_cls_lap.rb +36 -0
  86. data/tests/tst_cls_line.rb +108 -0
  87. data/tests/tst_cls_options.rb +77 -0
  88. data/tests/tst_cls_position.rb +64 -0
  89. data/tests/tst_cls_run.rb +140 -0
  90. data/tests/tst_cls_simple_xml_parser.rb +48 -0
  91. data/tests/tst_cls_track.rb +68 -0
  92. data/tests/tst_cls_trackpoint.rb +143 -0
  93. data/tests/tst_gooby.rb +28 -0
  94. data/tests/tst_mod_introspect.rb +30 -0
  95. data/tests/tst_mod_io.rb +51 -0
  96. data/tests/tst_mod_project_info.rb +77 -0
  97. data/tests/tst_mod_string.rb +56 -0
  98. metadata +142 -0
@@ -0,0 +1,54 @@
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
+ <title> Google Map by Gooby </title>
7
+ <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAdn5SVzjZKZKs1IRkFdx52xQg0TO_bCqGOTsRH2RbuhBZnI0wvRQW0Q92mw1taN1NJCk2cxlQQutfuA" type="text/javascript"></script>
8
+ <script type="text/javascript">
9
+ //<![CDATA[
10
+ function load() {
11
+ if (GBrowserIsCompatible()) {
12
+ var map = new GMap2(document.getElementById("map"));
13
+ map.addControl(new GLargeMapControl());
14
+ map.addControl(new GMapTypeControl());
15
+
16
+ var centerPoint = new GLatLng(35.4992424404918,-80.84839940071106);
17
+ map.setCenter(centerPoint, 13);
18
+
19
+ GEvent.addListener(map, "click", function(overlay, point) {
20
+ if (point) {
21
+ var dialogResponse = confirm("Add a marker here?");
22
+ if (dialogResponse) {
23
+ var marker = new GMarker(point);
24
+ map.addOverlay(marker);
25
+ GEvent.addListener(marker, "click", function() {
26
+ marker.openInfoWindowHtml("" + point.toString());
27
+ });
28
+ }
29
+ var curr_messages = document.getElementById("messages").innerHTML;
30
+ var new_messages = curr_messages + '<br/>' + point.toString();
31
+ document.getElementById("messages").innerHTML = new_messages;
32
+ }
33
+ });
34
+ }
35
+ }
36
+ function resetMapInfo() {
37
+ document.getElementById("messages").innerHTML = '';
38
+ }
39
+ //]]>
40
+
41
+ </script>
42
+ </head>
43
+ <body onload="load()" onunload="GUnload()">
44
+ <center>
45
+ <h3> Click to Capture GPS Coordinates </h3>
46
+ <div id="map" style="width: 900px; height: 500px"></div>
47
+ <div id="messages"> </div>
48
+ <form name='button_form' id='button_form' method='get'>
49
+ <input type='button' id='reset_button' value='Reset' onClick='resetMapInfo()'>
50
+ </form>
51
+ </center>
52
+
53
+ </body>
54
+ </html>
@@ -0,0 +1,542 @@
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
+ <title> Google Map by Gooby </title>
7
+ <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAdn5SVzjZKZKs1IRkFdx52xQg0TO_bCqGOTsRH2RbuhBZnI0wvRQW0Q92mw1taN1NJCk2cxlQQutfuA" type="text/javascript"></script>
8
+ <script type="text/javascript">
9
+ //<![CDATA[
10
+ function load() {
11
+ if (GBrowserIsCompatible()) {
12
+ var map = new GMap2(document.getElementById("map"));
13
+ map.addControl(new GLargeMapControl());
14
+ map.addControl(new GMapTypeControl());
15
+
16
+ var centerPoint = new GLatLng(33.469305, -111.99993);
17
+ map.setCenter(centerPoint, 12);
18
+
19
+
20
+ var points = new Array();
21
+ points.push(new GLatLng(33.4482,-112.09089)); // 1 (1 of 1279.0) 2006-01-15T14:41:44Z 0 00:00:00 0.0
22
+ points.push(new GLatLng(33.44818,-112.08924)); // 2 (7 of 1279.0) 2006-01-15T14:42:39Z 55 00:00:55 0.0953907967670094
23
+ points.push(new GLatLng(33.44818,-112.0878)); // 3 (13 of 1279.0) 2006-01-15T14:43:24Z 100 00:01:40 0.179502492731457
24
+ points.push(new GLatLng(33.4482,-112.08552)); // 4 (19 of 1279.0) 2006-01-15T14:44:34Z 170 00:02:50 0.311098118349081
25
+ points.push(new GLatLng(33.44822,-112.08316)); // 5 (25 of 1279.0) 2006-01-15T14:45:44Z 240 00:04:00 0.447368459689232
26
+ points.push(new GLatLng(33.44929,-112.0825)); // 6 (31 of 1279.0) 2006-01-15T14:46:34Z 290 00:04:50 0.549657698128419
27
+ points.push(new GLatLng(33.45129,-112.08248)); // 7 (37 of 1279.0) 2006-01-15T14:47:43Z 359 00:05:59 0.687931870055199
28
+ points.push(new GLatLng(33.45309,-112.08254)); // 8 (43 of 1279.0) 2006-01-15T14:48:47Z 423 00:07:03 0.812529418141741
29
+ points.push(new GLatLng(33.45502,-112.08256)); // 9 (49 of 1279.0) 2006-01-15T14:49:55Z 491 00:08:11 0.946149700088875
30
+ points.push(new GLatLng(33.4559,-112.08258)); // 10 (52 of 1279.0) 2006-01-15T14:50:26Z 522 00:08:42 1.0070480678755 1.0 00:08:42
31
+ points.push(new GLatLng(33.45777,-112.08254)); // 11 (58 of 1279.0) 2006-01-15T14:51:32Z 588 00:09:48 1.13679007223936
32
+ points.push(new GLatLng(33.45966,-112.08246)); // 12 (64 of 1279.0) 2006-01-15T14:52:40Z 656 00:10:56 1.26755079488658
33
+ points.push(new GLatLng(33.46178,-112.08256)); // 13 (70 of 1279.0) 2006-01-15T14:53:56Z 732 00:12:12 1.41420517346032
34
+ points.push(new GLatLng(33.4638,-112.08263)); // 14 (76 of 1279.0) 2006-01-15T14:55:07Z 803 00:13:23 1.55396621320743
35
+ points.push(new GLatLng(33.46584,-112.08263)); // 15 (82 of 1279.0) 2006-01-15T14:56:19Z 875 00:14:35 1.69530371233622
36
+ points.push(new GLatLng(33.46809,-112.08276)); // 16 (88 of 1279.0) 2006-01-15T14:57:40Z 956 00:15:56 1.85111303791916
37
+ points.push(new GLatLng(33.47039,-112.08282)); // 17 (94 of 1279.0) 2006-01-15T14:59:02Z 1038 00:17:18 2.01027199658201 2.0 00:08:36
38
+ points.push(new GLatLng(33.47229,-112.08286)); // 18 (100 of 1279.0) 2006-01-15T15:00:11Z 1107 00:18:27 2.14213964039928
39
+ points.push(new GLatLng(33.4744,-112.08288)); // 19 (106 of 1279.0) 2006-01-15T15:01:28Z 1184 00:19:44 2.28827449014908
40
+ points.push(new GLatLng(33.47654,-112.08295)); // 20 (112 of 1279.0) 2006-01-15T15:02:46Z 1262 00:21:02 2.4364426379637
41
+ points.push(new GLatLng(33.47878,-112.08288)); // 21 (118 of 1279.0) 2006-01-15T15:04:04Z 1340 00:22:20 2.59142460585337
42
+ points.push(new GLatLng(33.48107,-112.08297)); // 22 (124 of 1279.0) 2006-01-15T15:05:27Z 1423 00:23:43 2.74997574208655
43
+ points.push(new GLatLng(33.48259,-112.0831)); // 23 (130 of 1279.0) 2006-01-15T15:06:28Z 1484 00:24:44 2.85573354003973
44
+ points.push(new GLatLng(33.48472,-112.08316)); // 24 (136 of 1279.0) 2006-01-15T15:07:43Z 1559 00:25:59 3.00302631956892 3.0 00:08:41
45
+ points.push(new GLatLng(33.48644,-112.08318)); // 25 (142 of 1279.0) 2006-01-15T15:08:45Z 1621 00:27:01 3.12189101341386
46
+ points.push(new GLatLng(33.48852,-112.08327)); // 26 (148 of 1279.0) 2006-01-15T15:09:59Z 1695 00:28:15 3.26612363193534
47
+ points.push(new GLatLng(33.49086,-112.08329)); // 27 (154 of 1279.0) 2006-01-15T15:11:23Z 1779 00:29:39 3.42786794058425
48
+ points.push(new GLatLng(33.49294,-112.08336)); // 28 (160 of 1279.0) 2006-01-15T15:12:39Z 1855 00:30:55 3.57452615416244
49
+ points.push(new GLatLng(33.4951,-112.08349)); // 29 (166 of 1279.0) 2006-01-15T15:13:57Z 1933 00:32:13 3.72423405500126
50
+ points.push(new GLatLng(33.49744,-112.08351)); // 30 (172 of 1279.0) 2006-01-15T15:15:21Z 2017 00:33:37 3.88616090568306
51
+ points.push(new GLatLng(33.49903,-112.08288)); // 31 (177 of 1279.0) 2006-01-15T15:16:20Z 2076 00:34:36 4.0029683466179 4.0 00:08:37
52
+ points.push(new GLatLng(33.5006,-112.08246)); // 32 (183 of 1279.0) 2006-01-15T15:17:17Z 2133 00:35:33 4.11499567913915
53
+ points.push(new GLatLng(33.50283,-112.08243)); // 33 (189 of 1279.0) 2006-01-15T15:18:38Z 2214 00:36:54 4.26916354696104
54
+ points.push(new GLatLng(33.5048,-112.08252)); // 34 (195 of 1279.0) 2006-01-15T15:19:48Z 2284 00:38:04 4.40548472216603
55
+ points.push(new GLatLng(33.50676,-112.08248)); // 35 (201 of 1279.0) 2006-01-15T15:20:59Z 2355 00:39:15 4.54106947645322
56
+ points.push(new GLatLng(33.50813,-112.0825)); // 36 (207 of 1279.0) 2006-01-15T15:21:53Z 2409 00:40:09 4.63591648018694
57
+ points.push(new GLatLng(33.51017,-112.0825)); // 37 (213 of 1279.0) 2006-01-15T15:23:04Z 2480 00:41:20 4.77690823630785
58
+ points.push(new GLatLng(33.51214,-112.08254)); // 38 (219 of 1279.0) 2006-01-15T15:24:13Z 2549 00:42:29 4.91317248048906
59
+ points.push(new GLatLng(33.51364,-112.0825)); // 39 (224 of 1279.0) 2006-01-15T15:25:08Z 2604 00:43:24 5.0170713050673 5.0 00:08:48
60
+ points.push(new GLatLng(33.51564,-112.08248)); // 40 (230 of 1279.0) 2006-01-15T15:26:19Z 2675 00:44:35 5.15548481573342
61
+ points.push(new GLatLng(33.51663,-112.08196)); // 41 (236 of 1279.0) 2006-01-15T15:27:05Z 2721 00:45:21 5.24515951060508
62
+ points.push(new GLatLng(33.51658,-112.08003)); // 42 (242 of 1279.0) 2006-01-15T15:28:03Z 2779 00:46:19 5.35681232266828
63
+ points.push(new GLatLng(33.5166,-112.07838)); // 43 (248 of 1279.0) 2006-01-15T15:28:53Z 2829 00:47:09 5.45243371788731
64
+ points.push(new GLatLng(33.5166,-112.07653)); // 44 (254 of 1279.0) 2006-01-15T15:29:50Z 2886 00:48:06 5.5593113398558
65
+ points.push(new GLatLng(33.51656,-112.07439)); // 45 (260 of 1279.0) 2006-01-15T15:30:54Z 2950 00:49:10 5.68329125606427
66
+ points.push(new GLatLng(33.51654,-112.07237)); // 46 (266 of 1279.0) 2006-01-15T15:31:54Z 3010 00:50:10 5.79978065087209
67
+ points.push(new GLatLng(33.51656,-112.07025)); // 47 (272 of 1279.0) 2006-01-15T15:32:59Z 3075 00:51:15 5.92204730776543
68
+ points.push(new GLatLng(33.51652,-112.06864)); // 48 (276 of 1279.0) 2006-01-15T15:33:48Z 3124 00:52:04 6.0150512126733 6.0 00:08:40
69
+ points.push(new GLatLng(33.51652,-112.06651)); // 49 (282 of 1279.0) 2006-01-15T15:34:52Z 3188 00:53:08 6.13774409668284
70
+ points.push(new GLatLng(33.51652,-112.06452)); // 50 (288 of 1279.0) 2006-01-15T15:35:56Z 3252 00:54:12 6.25270698081581
71
+ points.push(new GLatLng(33.51648,-112.06186)); // 51 (294 of 1279.0) 2006-01-15T15:37:16Z 3332 00:55:32 6.40601350102287
72
+ points.push(new GLatLng(33.5165,-112.05975)); // 52 (300 of 1279.0) 2006-01-15T15:38:19Z 3395 00:56:35 6.52777899542044
73
+ points.push(new GLatLng(33.51648,-112.05767)); // 53 (306 of 1279.0) 2006-01-15T15:39:22Z 3458 00:57:38 6.64762808459539
74
+ points.push(new GLatLng(33.51648,-112.05514)); // 54 (312 of 1279.0) 2006-01-15T15:40:38Z 3534 00:58:54 6.79395873077043
75
+ points.push(new GLatLng(33.5165,-112.05289)); // 55 (318 of 1279.0) 2006-01-15T15:41:48Z 3604 01:00:04 6.92360023315151
76
+ points.push(new GLatLng(33.51648,-112.05143)); // 56 (322 of 1279.0) 2006-01-15T15:42:31Z 3647 01:00:47 7.00799868928515 7.0 00:08:43
77
+ points.push(new GLatLng(33.51648,-112.04941)); // 57 (328 of 1279.0) 2006-01-15T15:43:32Z 3708 01:01:48 7.12444150158836
78
+ points.push(new GLatLng(33.51648,-112.04709)); // 58 (334 of 1279.0) 2006-01-15T15:44:40Z 3776 01:02:56 7.25815740054366
79
+ points.push(new GLatLng(33.5165,-112.04548)); // 59 (340 of 1279.0) 2006-01-15T15:45:35Z 3831 01:03:51 7.35145956190549
80
+ points.push(new GLatLng(33.51648,-112.04291)); // 60 (346 of 1279.0) 2006-01-15T15:46:50Z 3906 01:05:06 7.49992078730261
81
+ points.push(new GLatLng(33.51654,-112.0404)); // 61 (352 of 1279.0) 2006-01-15T15:48:05Z 3981 01:06:21 7.64481669947042
82
+ points.push(new GLatLng(33.5165,-112.03799)); // 62 (358 of 1279.0) 2006-01-15T15:49:17Z 4053 01:07:33 7.78380708877661
83
+ points.push(new GLatLng(33.5166,-112.03536)); // 63 (364 of 1279.0) 2006-01-15T15:50:37Z 4133 01:08:53 7.93581579543744
84
+ points.push(new GLatLng(33.5166,-112.03415)); // 64 (367 of 1279.0) 2006-01-15T15:51:14Z 4170 01:09:30 8.0055958970116 8.0 00:08:43
85
+ points.push(new GLatLng(33.5166,-112.03293)); // 65 (373 of 1279.0) 2006-01-15T15:51:51Z 4207 01:10:07 8.07710534780591
86
+ points.push(new GLatLng(33.5166,-112.03109)); // 66 (379 of 1279.0) 2006-01-15T15:52:47Z 4263 01:11:03 8.18335711743711
87
+ points.push(new GLatLng(33.5156,-112.03025)); // 67 (385 of 1279.0) 2006-01-15T15:53:41Z 4317 01:11:57 8.29628056224864
88
+ points.push(new GLatLng(33.51362,-112.03027)); // 68 (391 of 1279.0) 2006-01-15T15:54:49Z 4385 01:13:05 8.43323142865511
89
+ points.push(new GLatLng(33.51141,-112.03029)); // 69 (397 of 1279.0) 2006-01-15T15:56:07Z 4463 01:14:23 8.58600460039847
90
+ points.push(new GLatLng(33.50944,-112.03023)); // 70 (403 of 1279.0) 2006-01-15T15:57:14Z 4530 01:15:30 8.72223413806702
91
+ points.push(new GLatLng(33.50927,-112.02806)); // 71 (409 of 1279.0) 2006-01-15T15:58:20Z 4596 01:16:36 8.85407278948581
92
+ points.push(new GLatLng(33.50952,-112.02566)); // 72 (415 of 1279.0) 2006-01-15T15:59:34Z 4670 01:17:50 8.99379253841619
93
+ points.push(new GLatLng(33.50952,-112.02527)); // 73 (416 of 1279.0) 2006-01-15T15:59:45Z 4681 01:18:01 9.01625908213699 9.0 00:08:31
94
+ points.push(new GLatLng(33.50952,-112.02349)); // 74 (422 of 1279.0) 2006-01-15T16:00:41Z 4737 01:18:57 9.11936445234388
95
+ points.push(new GLatLng(33.50965,-112.02109)); // 75 (428 of 1279.0) 2006-01-15T16:01:54Z 4810 01:20:10 9.2581321587725
96
+ points.push(new GLatLng(33.50972,-112.01864)); // 76 (434 of 1279.0) 2006-01-15T16:03:08Z 4884 01:21:24 9.39991050273764
97
+ points.push(new GLatLng(33.50993,-112.01634)); // 77 (440 of 1279.0) 2006-01-15T16:04:19Z 4955 01:22:35 9.53374419130836
98
+ points.push(new GLatLng(33.50991,-112.01368)); // 78 (446 of 1279.0) 2006-01-15T16:05:39Z 5035 01:23:55 9.68730989248148
99
+ points.push(new GLatLng(33.50997,-112.01109)); // 79 (452 of 1279.0) 2006-01-15T16:06:58Z 5114 01:25:14 9.85599528092593
100
+ points.push(new GLatLng(33.51,-112.00875)); // 80 (458 of 1279.0) 2006-01-15T16:08:10Z 5186 01:26:26 9.99124738083288
101
+ points.push(new GLatLng(33.51,-112.00853)); // 81 (460 of 1279.0) 2006-01-15T16:08:17Z 5193 01:26:33 10.0042280139531 10.0 00:08:32
102
+ points.push(new GLatLng(33.51,-112.00688)); // 82 (466 of 1279.0) 2006-01-15T16:09:07Z 5243 01:27:23 10.099846866934
103
+ points.push(new GLatLng(33.50997,-112.00476)); // 83 (472 of 1279.0) 2006-01-15T16:10:12Z 5308 01:28:28 10.2224768725111
104
+ points.push(new GLatLng(33.50991,-112.00218)); // 84 (478 of 1279.0) 2006-01-15T16:11:29Z 5385 01:29:45 10.3713640420081
105
+ points.push(new GLatLng(33.50989,-112.00034)); // 85 (484 of 1279.0) 2006-01-15T16:12:24Z 5440 01:30:40 10.4775395644557
106
+ points.push(new GLatLng(33.50989,-111.99832)); // 86 (490 of 1279.0) 2006-01-15T16:13:24Z 5500 01:31:40 10.5942059223842
107
+ points.push(new GLatLng(33.50982,-111.99632)); // 87 (496 of 1279.0) 2006-01-15T16:14:24Z 5560 01:32:40 10.7099404935829
108
+ points.push(new GLatLng(33.50985,-111.99482)); // 88 (502 of 1279.0) 2006-01-15T16:15:15Z 5611 01:33:31 10.797298017188
109
+ points.push(new GLatLng(33.50976,-111.99281)); // 89 (508 of 1279.0) 2006-01-15T16:16:16Z 5672 01:34:32 10.913962654072
110
+ points.push(new GLatLng(33.50967,-111.9912)); // 90 (512 of 1279.0) 2006-01-15T16:17:05Z 5721 01:35:21 11.0070855549589 11.0 00:08:48
111
+ points.push(new GLatLng(33.50963,-111.9889)); // 91 (518 of 1279.0) 2006-01-15T16:18:15Z 5791 01:36:31 11.1397428542336
112
+ points.push(new GLatLng(33.50946,-111.98697)); // 92 (524 of 1279.0) 2006-01-15T16:19:13Z 5849 01:37:29 11.2521698504371
113
+ points.push(new GLatLng(33.50751,-111.9868)); // 93 (530 of 1279.0) 2006-01-15T16:20:20Z 5916 01:38:36 11.3885094877847
114
+ points.push(new GLatLng(33.50562,-111.98682)); // 94 (536 of 1279.0) 2006-01-15T16:21:27Z 5983 01:39:43 11.5191719481013
115
+ points.push(new GLatLng(33.50349,-111.98686)); // 95 (542 of 1279.0) 2006-01-15T16:22:41Z 6057 01:40:57 11.6663989957499
116
+ points.push(new GLatLng(33.5015,-111.98688)); // 96 (548 of 1279.0) 2006-01-15T16:23:50Z 6126 01:42:06 11.8039636959767
117
+ points.push(new GLatLng(33.49993,-111.98688)); // 97 (554 of 1279.0) 2006-01-15T16:24:47Z 6183 01:43:03 11.9125127576607
118
+ points.push(new GLatLng(33.4986,-111.9869)); // 98 (559 of 1279.0) 2006-01-15T16:25:34Z 6230 01:43:50 12.0049259018489 12.0 00:08:29
119
+ points.push(new GLatLng(33.49749,-111.9869)); // 99 (565 of 1279.0) 2006-01-15T16:26:13Z 6269 01:44:29 12.0816158249422
120
+ points.push(new GLatLng(33.49594,-111.98697)); // 100 (571 of 1279.0) 2006-01-15T16:27:09Z 6325 01:45:25 12.1889767021156
121
+ points.push(new GLatLng(33.4945,-111.98697)); // 101 (577 of 1279.0) 2006-01-15T16:28:02Z 6378 01:46:18 12.2886418889433
122
+ points.push(new GLatLng(33.49283,-111.98699)); // 102 (583 of 1279.0) 2006-01-15T16:29:01Z 6437 01:47:17 12.4040503597108
123
+ points.push(new GLatLng(33.4912,-111.98701)); // 103 (589 of 1279.0) 2006-01-15T16:29:58Z 6494 01:48:14 12.5167765299703
124
+ points.push(new GLatLng(33.48916,-111.98701)); // 104 (595 of 1279.0) 2006-01-15T16:31:10Z 6566 01:49:26 12.6577202206043
125
+ points.push(new GLatLng(33.48751,-111.98703)); // 105 (601 of 1279.0) 2006-01-15T16:32:09Z 6625 01:50:25 12.7718260667259
126
+ points.push(new GLatLng(33.48526,-111.98701)); // 106 (607 of 1279.0) 2006-01-15T16:33:28Z 6704 01:51:44 12.9273085892833
127
+ points.push(new GLatLng(33.48412,-111.98699)); // 107 (610 of 1279.0) 2006-01-15T16:34:09Z 6745 01:52:25 13.0060927100388 13.0 00:08:35
128
+ points.push(new GLatLng(33.48197,-111.98708)); // 108 (616 of 1279.0) 2006-01-15T16:35:24Z 6820 01:53:40 13.1548053797876
129
+ points.push(new GLatLng(33.48017,-111.98703)); // 109 (622 of 1279.0) 2006-01-15T16:36:29Z 6885 01:54:45 13.282716721196
130
+ points.push(new GLatLng(33.4788,-111.98705)); // 110 (628 of 1279.0) 2006-01-15T16:37:18Z 6934 01:55:34 13.3774912990314
131
+ points.push(new GLatLng(33.47744,-111.9871)); // 111 (634 of 1279.0) 2006-01-15T16:38:07Z 6983 01:56:23 13.4716069270596
132
+ points.push(new GLatLng(33.47607,-111.98708)); // 112 (640 of 1279.0) 2006-01-15T16:38:56Z 7032 01:57:12 13.5663965717267
133
+ points.push(new GLatLng(33.47397,-111.98712)); // 113 (646 of 1279.0) 2006-01-15T16:40:12Z 7108 01:58:28 13.7115450099704
134
+ points.push(new GLatLng(33.4729,-111.98622)); // 114 (652 of 1279.0) 2006-01-15T16:41:11Z 7167 01:59:27 13.8269883806759
135
+ points.push(new GLatLng(33.47298,-111.98409)); // 115 (658 of 1279.0) 2006-01-15T16:42:19Z 7235 02:00:35 13.9499909069676
136
+ points.push(new GLatLng(33.4729,-111.98313)); // 116 (660 of 1279.0) 2006-01-15T16:42:50Z 7266 02:01:06 14.0056445932232 14.0 00:08:41
137
+ points.push(new GLatLng(33.4729,-111.9809)); // 117 (666 of 1279.0) 2006-01-15T16:43:57Z 7333 02:02:13 14.1343507644985
138
+ points.push(new GLatLng(33.47298,-111.97847)); // 118 (672 of 1279.0) 2006-01-15T16:45:11Z 7407 02:03:27 14.2759319289155
139
+ points.push(new GLatLng(33.4744,-111.97858)); // 119 (678 of 1279.0) 2006-01-15T16:45:58Z 7454 02:04:14 14.3747537314973
140
+ points.push(new GLatLng(33.47614,-111.97856)); // 120 (684 of 1279.0) 2006-01-15T16:47:01Z 7517 02:05:17 14.4951186426393
141
+ points.push(new GLatLng(33.47845,-111.97854)); // 121 (690 of 1279.0) 2006-01-15T16:48:25Z 7601 02:06:41 14.6547938728151
142
+ points.push(new GLatLng(33.48062,-111.97815)); // 122 (696 of 1279.0) 2006-01-15T16:49:46Z 7682 02:08:02 14.8094367422039
143
+ points.push(new GLatLng(33.48253,-111.97809)); // 123 (702 of 1279.0) 2006-01-15T16:50:54Z 7750 02:09:10 14.9414976217488
144
+ points.push(new GLatLng(33.4836,-111.97809)); // 124 (705 of 1279.0) 2006-01-15T16:51:33Z 7789 02:09:49 15.0154783729364 15.0 00:08:43
145
+ points.push(new GLatLng(33.48541,-111.97809)); // 125 (711 of 1279.0) 2006-01-15T16:52:39Z 7855 02:10:55 15.1406195108592
146
+ points.push(new GLatLng(33.48719,-111.97819)); // 126 (717 of 1279.0) 2006-01-15T16:53:42Z 7918 02:11:58 15.2638324725057
147
+ points.push(new GLatLng(33.48916,-111.97813)); // 127 (723 of 1279.0) 2006-01-15T16:54:54Z 7990 02:13:10 15.4001422318836
148
+ points.push(new GLatLng(33.49144,-111.97817)); // 128 (729 of 1279.0) 2006-01-15T16:56:16Z 8072 02:14:32 15.5578186449799
149
+ points.push(new GLatLng(33.49324,-111.97817)); // 129 (735 of 1279.0) 2006-01-15T16:57:26Z 8142 02:15:42 15.68259449531
150
+ points.push(new GLatLng(33.49459,-111.97813)); // 130 (741 of 1279.0) 2006-01-15T16:58:18Z 8194 02:16:34 15.776404416091
151
+ points.push(new GLatLng(33.49452,-111.97603)); // 131 (747 of 1279.0) 2006-01-15T16:59:19Z 8255 02:17:35 15.897561054495
152
+ points.push(new GLatLng(33.49425,-111.97422)); // 132 (750 of 1279.0) 2006-01-15T17:00:14Z 8310 02:18:30 16.0048549522358 16.0 00:08:41
153
+ points.push(new GLatLng(33.49313,-111.97233)); // 133 (756 of 1279.0) 2006-01-15T17:01:23Z 8379 02:19:39 16.1385456121762
154
+ points.push(new GLatLng(33.4921,-111.97027)); // 134 (762 of 1279.0) 2006-01-15T17:02:36Z 8452 02:20:52 16.2770778403239
155
+ points.push(new GLatLng(33.49116,-111.96796)); // 135 (768 of 1279.0) 2006-01-15T17:03:54Z 8530 02:22:10 16.4252624316037
156
+ points.push(new GLatLng(33.49034,-111.96609)); // 136 (774 of 1279.0) 2006-01-15T17:04:59Z 8595 02:23:15 16.5471256754888
157
+ points.push(new GLatLng(33.48953,-111.96401)); // 137 (780 of 1279.0) 2006-01-15T17:06:09Z 8665 02:24:25 16.6795364034147
158
+ points.push(new GLatLng(33.48897,-111.96216)); // 138 (786 of 1279.0) 2006-01-15T17:07:14Z 8730 02:25:30 16.7937876068476
159
+ points.push(new GLatLng(33.48916,-111.9591)); // 139 (792 of 1279.0) 2006-01-15T17:08:49Z 8825 02:27:05 16.973455110906
160
+ points.push(new GLatLng(33.48933,-111.95864)); // 140 (793 of 1279.0) 2006-01-15T17:09:03Z 8839 02:27:19 17.0024462349807 17.0 00:08:49
161
+ points.push(new GLatLng(33.49023,-111.95695)); // 141 (799 of 1279.0) 2006-01-15T17:10:04Z 8900 02:28:20 17.1180450198267
162
+ points.push(new GLatLng(33.49092,-111.95452)); // 142 (805 of 1279.0) 2006-01-15T17:11:25Z 8981 02:29:41 17.2690878238595
163
+ points.push(new GLatLng(33.49047,-111.95214)); // 143 (811 of 1279.0) 2006-01-15T17:12:40Z 9056 02:30:56 17.4102990303605
164
+ points.push(new GLatLng(33.48987,-111.94942)); // 144 (817 of 1279.0) 2006-01-15T17:14:05Z 9141 02:32:21 17.5725781806618
165
+ points.push(new GLatLng(33.48983,-111.94674)); // 145 (823 of 1279.0) 2006-01-15T17:15:26Z 9222 02:33:42 17.7274442608353
166
+ points.push(new GLatLng(33.49002,-111.9444)); // 146 (829 of 1279.0) 2006-01-15T17:16:38Z 9294 02:34:54 17.8629700174299
167
+ points.push(new GLatLng(33.49049,-111.94244)); // 147 (835 of 1279.0) 2006-01-15T17:17:38Z 9354 02:35:54 17.9807179757544
168
+ points.push(new GLatLng(33.49075,-111.94208)); // 148 (837 of 1279.0) 2006-01-15T17:17:57Z 9373 02:36:13 18.008158710711 18.0 00:08:54
169
+ points.push(new GLatLng(33.49137,-111.94068)); // 149 (843 of 1279.0) 2006-01-15T17:18:46Z 9422 02:37:02 18.100019795155
170
+ points.push(new GLatLng(33.49285,-111.9377)); // 150 (849 of 1279.0) 2006-01-15T17:20:29Z 9525 02:38:45 18.3005720062499
171
+ points.push(new GLatLng(33.49437,-111.93508)); // 151 (855 of 1279.0) 2006-01-15T17:22:06Z 9622 02:40:22 18.4848448427131
172
+ points.push(new GLatLng(33.49474,-111.93204)); // 152 (861 of 1279.0) 2006-01-15T17:23:38Z 9714 02:41:54 18.6669967658301
173
+ points.push(new GLatLng(33.4944,-111.93053)); // 153 (867 of 1279.0) 2006-01-15T17:24:30Z 9766 02:42:46 18.7677902709663
174
+ points.push(new GLatLng(33.49309,-111.93034)); // 154 (873 of 1279.0) 2006-01-15T17:25:17Z 9813 02:43:33 18.8605006382515
175
+ points.push(new GLatLng(33.49309,-111.92839)); // 155 (879 of 1279.0) 2006-01-15T17:26:14Z 9870 02:44:30 18.9748954027625
176
+ points.push(new GLatLng(33.49272,-111.92826)); // 156 (881 of 1279.0) 2006-01-15T17:26:27Z 9883 02:44:43 19.002473750158 19.0 00:08:30
177
+ points.push(new GLatLng(33.49105,-111.92828)); // 157 (887 of 1279.0) 2006-01-15T17:27:28Z 9944 02:45:44 19.1179379211769
178
+ points.push(new GLatLng(33.48974,-111.9282)); // 158 (893 of 1279.0) 2006-01-15T17:28:21Z 9997 02:46:37 19.2089156449784
179
+ points.push(new GLatLng(33.48875,-111.92652)); // 159 (899 of 1279.0) 2006-01-15T17:29:25Z 10061 02:47:41 19.3312160893576
180
+ points.push(new GLatLng(33.48725,-111.92624)); // 160 (905 of 1279.0) 2006-01-15T17:30:19Z 10115 02:48:35 19.4373645371948
181
+ points.push(new GLatLng(33.48575,-111.92624)); // 161 (911 of 1279.0) 2006-01-15T17:31:13Z 10169 02:49:29 19.5409992677871
182
+ points.push(new GLatLng(33.48427,-111.92626)); // 162 (917 of 1279.0) 2006-01-15T17:32:06Z 10222 02:50:22 19.6432845083048
183
+ points.push(new GLatLng(33.4824,-111.92622)); // 163 (923 of 1279.0) 2006-01-15T17:33:12Z 10288 02:51:28 19.7725384631453
184
+ points.push(new GLatLng(33.4809,-111.92624)); // 164 (929 of 1279.0) 2006-01-15T17:34:06Z 10342 02:52:22 19.8762079349256
185
+ points.push(new GLatLng(33.47931,-111.92624)); // 165 (935 of 1279.0) 2006-01-15T17:35:02Z 10398 02:53:18 19.986060809472
186
+ points.push(new GLatLng(33.47893,-111.92624)); // 166 (936 of 1279.0) 2006-01-15T17:35:15Z 10411 02:53:31 20.0123150270121 20.0 00:08:48
187
+ points.push(new GLatLng(33.47757,-111.92626)); // 167 (942 of 1279.0) 2006-01-15T17:36:02Z 10458 02:54:18 20.1063170638199
188
+ points.push(new GLatLng(33.47631,-111.92624)); // 168 (948 of 1279.0) 2006-01-15T17:36:51Z 10507 02:55:07 20.1934127827502
189
+ points.push(new GLatLng(33.47487,-111.92624)); // 169 (954 of 1279.0) 2006-01-15T17:37:44Z 10560 02:56:00 20.2929655448949
190
+ points.push(new GLatLng(33.47352,-111.92626)); // 170 (960 of 1279.0) 2006-01-15T17:38:33Z 10609 02:56:49 20.3863612525699
191
+ points.push(new GLatLng(33.47202,-111.92624)); // 171 (966 of 1279.0) 2006-01-15T17:39:28Z 10664 02:57:44 20.4900237206124
192
+ points.push(new GLatLng(33.47047,-111.92624)); // 172 (972 of 1279.0) 2006-01-15T17:40:24Z 10720 02:58:40 20.5971893361486
193
+ points.push(new GLatLng(33.46918,-111.92626)); // 173 (978 of 1279.0) 2006-01-15T17:41:10Z 10766 02:59:26 20.6863553172888
194
+ points.push(new GLatLng(33.46787,-111.92626)); // 174 (984 of 1279.0) 2006-01-15T17:41:56Z 10812 03:00:12 20.7770485224014
195
+ points.push(new GLatLng(33.46627,-111.92622)); // 175 (990 of 1279.0) 2006-01-15T17:42:54Z 10870 03:01:10 20.8878951872355
196
+ points.push(new GLatLng(33.46569,-111.92536)); // 176 (996 of 1279.0) 2006-01-15T17:43:36Z 10912 03:01:52 20.9708539567254
197
+ points.push(new GLatLng(33.46571,-111.92457)); // 177 (998 of 1279.0) 2006-01-15T17:44:00Z 10936 03:02:16 21.0164250162805 21.0 00:08:45
198
+ points.push(new GLatLng(33.46573,-111.92266)); // 178 (1004 of 1279.0) 2006-01-15T17:44:56Z 10992 03:03:12 21.1265549067024
199
+ points.push(new GLatLng(33.46571,-111.92077)); // 179 (1010 of 1279.0) 2006-01-15T17:45:50Z 11046 03:04:06 21.2356561367234
200
+ points.push(new GLatLng(33.46571,-111.91938)); // 180 (1016 of 1279.0) 2006-01-15T17:46:33Z 11089 03:04:49 21.3157705187501
201
+ points.push(new GLatLng(33.46573,-111.91772)); // 181 (1022 of 1279.0) 2006-01-15T17:47:21Z 11137 03:05:37 21.4116295611921
202
+ points.push(new GLatLng(33.46575,-111.91569)); // 182 (1028 of 1279.0) 2006-01-15T17:48:20Z 11196 03:06:36 21.5287737249533
203
+ points.push(new GLatLng(33.46573,-111.91356)); // 183 (1034 of 1279.0) 2006-01-15T17:49:24Z 11260 03:07:40 21.6516711982702
204
+ points.push(new GLatLng(33.46577,-111.91129)); // 184 (1040 of 1279.0) 2006-01-15T17:50:32Z 11328 03:08:48 21.7825852213667
205
+ points.push(new GLatLng(33.46571,-111.90908)); // 185 (1046 of 1279.0) 2006-01-15T17:51:37Z 11393 03:09:53 21.910119705371
206
+ points.push(new GLatLng(33.46446,-111.90899)); // 186 (1052 of 1279.0) 2006-01-15T17:52:21Z 11437 03:10:37 21.9980598628604
207
+ points.push(new GLatLng(33.46423,-111.90897)); // 187 (1053 of 1279.0) 2006-01-15T17:52:29Z 11445 03:10:45 22.0139923102199 22.0 00:08:29
208
+ points.push(new GLatLng(33.4627,-111.90899)); // 188 (1059 of 1279.0) 2006-01-15T17:53:23Z 11499 03:11:39 22.1197385651183
209
+ points.push(new GLatLng(33.46112,-111.90903)); // 189 (1065 of 1279.0) 2006-01-15T17:54:20Z 11556 03:12:36 22.2289748973873
210
+ points.push(new GLatLng(33.45948,-111.9091)); // 190 (1071 of 1279.0) 2006-01-15T17:55:20Z 11616 03:13:36 22.3426993416546
211
+ points.push(new GLatLng(33.45794,-111.90918)); // 191 (1077 of 1279.0) 2006-01-15T17:56:16Z 11672 03:14:32 22.4492516956488
212
+ points.push(new GLatLng(33.4567,-111.90925)); // 192 (1083 of 1279.0) 2006-01-15T17:57:03Z 11719 03:15:19 22.5351132704082
213
+ points.push(new GLatLng(33.45481,-111.90925)); // 193 (1089 of 1279.0) 2006-01-15T17:58:08Z 11784 03:16:24 22.6657485748791
214
+ points.push(new GLatLng(33.45333,-111.90931)); // 194 (1095 of 1279.0) 2006-01-15T17:59:00Z 11836 03:17:16 22.7681243147577
215
+ points.push(new GLatLng(33.4518,-111.90936)); // 195 (1101 of 1279.0) 2006-01-15T17:59:54Z 11890 03:18:10 22.873941776925
216
+ points.push(new GLatLng(33.44998,-111.9094)); // 196 (1107 of 1279.0) 2006-01-15T18:00:58Z 11954 03:19:14 22.9997390331893
217
+ points.push(new GLatLng(33.4497,-111.9094)); // 197 (1108 of 1279.0) 2006-01-15T18:01:08Z 11964 03:19:24 23.0190843238382 23.0 00:08:39
218
+ points.push(new GLatLng(33.44854,-111.90942)); // 198 (1114 of 1279.0) 2006-01-15T18:01:49Z 12005 03:20:05 23.0992742955896
219
+ points.push(new GLatLng(33.44717,-111.90946)); // 199 (1120 of 1279.0) 2006-01-15T18:02:38Z 12054 03:20:54 23.1940168984717
220
+ points.push(new GLatLng(33.44562,-111.90951)); // 200 (1126 of 1279.0) 2006-01-15T18:03:34Z 12110 03:21:50 23.3012265451062
221
+ points.push(new GLatLng(33.44429,-111.90953)); // 201 (1132 of 1279.0) 2006-01-15T18:04:22Z 12158 03:22:38 23.3931595463247
222
+ points.push(new GLatLng(33.44292,-111.90955)); // 202 (1138 of 1279.0) 2006-01-15T18:05:13Z 12209 03:23:29 23.4878542711633
223
+ points.push(new GLatLng(33.44135,-111.90961)); // 203 (1144 of 1279.0) 2006-01-15T18:06:08Z 12264 03:24:24 23.5964357260501
224
+ points.push(new GLatLng(33.43985,-111.90964)); // 204 (1150 of 1279.0) 2006-01-15T18:07:01Z 12317 03:25:17 23.7001540074775
225
+ points.push(new GLatLng(33.43841,-111.90966)); // 205 (1156 of 1279.0) 2006-01-15T18:07:52Z 12368 03:26:08 23.7997627482087
226
+ points.push(new GLatLng(33.43672,-111.9097)); // 206 (1162 of 1279.0) 2006-01-15T18:08:54Z 12430 03:27:10 23.9167259448272
227
+ points.push(new GLatLng(33.43537,-111.90957)); // 207 (1165 of 1279.0) 2006-01-15T18:09:44Z 12480 03:28:00 24.0105627956912 24.0 00:08:36
228
+ points.push(new GLatLng(33.43404,-111.90948)); // 208 (1171 of 1279.0) 2006-01-15T18:10:33Z 12529 03:28:49 24.1028393888472
229
+ points.push(new GLatLng(33.43275,-111.90942)); // 209 (1177 of 1279.0) 2006-01-15T18:11:18Z 12574 03:29:34 24.1921061786921
230
+ points.push(new GLatLng(33.43138,-111.90929)); // 210 (1183 of 1279.0) 2006-01-15T18:12:07Z 12623 03:30:23 24.2871885980365
231
+ points.push(new GLatLng(33.42947,-111.90916)); // 211 (1189 of 1279.0) 2006-01-15T18:13:17Z 12693 03:31:33 24.419465048617
232
+ points.push(new GLatLng(33.42741,-111.90914)); // 212 (1195 of 1279.0) 2006-01-15T18:14:32Z 12768 03:32:48 24.5618856663919
233
+ points.push(new GLatLng(33.42554,-111.90914)); // 213 (1201 of 1279.0) 2006-01-15T18:15:39Z 12835 03:33:55 24.6912018999033
234
+ points.push(new GLatLng(33.42393,-111.90918)); // 214 (1207 of 1279.0) 2006-01-15T18:16:37Z 12893 03:34:53 24.8025125271713
235
+ points.push(new GLatLng(33.42211,-111.90925)); // 215 (1213 of 1279.0) 2006-01-15T18:17:43Z 12959 03:35:59 24.9284479458453
236
+ points.push(new GLatLng(33.42202,-111.91069)); // 216 (1218 of 1279.0) 2006-01-15T18:18:27Z 13003 03:36:43 25.0141402179078 25.0 00:08:43
237
+ points.push(new GLatLng(33.42198,-111.913)); // 217 (1224 of 1279.0) 2006-01-15T18:19:38Z 13074 03:37:54 25.1475596347089
238
+ points.push(new GLatLng(33.422,-111.91579)); // 218 (1230 of 1279.0) 2006-01-15T18:21:03Z 13159 03:39:19 25.3086268008621
239
+ points.push(new GLatLng(33.42204,-111.91843)); // 219 (1236 of 1279.0) 2006-01-15T18:22:26Z 13242 03:40:42 25.4610214216927
240
+ points.push(new GLatLng(33.42202,-111.92105)); // 220 (1242 of 1279.0) 2006-01-15T18:23:51Z 13327 03:42:07 25.6122193232271
241
+ points.push(new GLatLng(33.42202,-111.92371)); // 221 (1248 of 1279.0) 2006-01-15T18:25:16Z 13412 03:43:32 25.7657571226319
242
+ points.push(new GLatLng(33.42206,-111.9262)); // 222 (1254 of 1279.0) 2006-01-15T18:26:34Z 13490 03:44:50 25.9094239368728
243
+ points.push(new GLatLng(33.42382,-111.92646)); // 223 (1260 of 1279.0) 2006-01-15T18:27:33Z 13549 03:45:49 26.0331096272572 26.0 00:09:06
244
+ points.push(new GLatLng(33.42451,-111.92817)); // 224 (1266 of 1279.0) 2006-01-15T18:28:45Z 13621 03:47:01 26.1764624710668
245
+ points.push(new GLatLng(33.42539,-111.92929)); // 225 (1272 of 1279.0) 2006-01-15T18:29:50Z 13686 03:48:06 26.3070105659075
246
+ points.push(new GLatLng(33.42601,-111.92925)); // 226 (1278 of 1279.0) 2006-01-15T18:30:55Z 13751 03:49:11 26.3503401205434
247
+ points.push(new GLatLng(33.42601,-111.92927)); // 227 (1279 of 1279.0) 2006-01-15T18:31:10Z 13766 03:49:26 26.3514930151813
248
+
249
+ var routePolyline = new GPolyline(points);
250
+ map.addOverlay(routePolyline);
251
+
252
+ // Create a base icon for all of our markers that specifies the
253
+ // shadow, icon dimensions, etc.
254
+ var baseIcon = new GIcon();
255
+ baseIcon.shadow = "http://www.joakim-systems.com/gicons/shadow50.png";
256
+ baseIcon.iconSize = new GSize(20, 34);
257
+ baseIcon.shadowSize = new GSize(37, 34);
258
+ baseIcon.iconAnchor = new GPoint(9, 34);
259
+ baseIcon.infoWindowAnchor = new GPoint(9, 2);
260
+ baseIcon.infoShadowAnchor = new GPoint(18, 25);
261
+
262
+ var iconStart = new GIcon(baseIcon);
263
+ iconStart.image = "http://www.joakim-systems.com/gicons/dd-start.png";
264
+ var pStart = new GPoint(-112.09089, 33.4482);
265
+ var mStart = new GMarker(pStart, iconStart);
266
+ GEvent.addListener(mStart, "click", function() {
267
+ mStart.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Start!</b></td></tr><tr><td>Distance: </td><td>0.0</td></tr><tr><td>Time of Day: </td><td>2006-01-15T14:41:44Z </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>33.4482 , -112.09089 </td></tr><tr><td>Altitude: </td><td>325.063m </td></tr></table>");
268
+ });
269
+ map.addOverlay(mStart);
270
+
271
+ var icon1 = new GIcon(baseIcon);
272
+ icon1.image = "http://www.joakim-systems.com/gicons/marker1.png";
273
+ var p1 = new GPoint(-112.08258, 33.4559);
274
+ var m1 = new GMarker(p1, icon1);
275
+ GEvent.addListener(m1, "click", function() {
276
+ m1.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 1</b></td></tr><tr><td>Distance: </td><td>1.0070480678755</td></tr><tr><td>Time of Day: </td><td>2006-01-15T14:50:26Z </td></tr><tr><td>Elapsed Time: </td><td>00:08:42 </td></tr><tr><td>Average Pace: </td><td>8:38.3 </td></tr><tr><td>Lat/Lng: </td><td>33.4559 , -112.08258 </td></tr><tr><td>Altitude: </td><td>321.218m </td></tr></table>");
277
+ });
278
+ map.addOverlay(m1);
279
+
280
+ var icon2 = new GIcon(baseIcon);
281
+ icon2.image = "http://www.joakim-systems.com/gicons/marker2.png";
282
+ var p2 = new GPoint(-112.08282, 33.47039);
283
+ var m2 = new GMarker(p2, icon2);
284
+ GEvent.addListener(m2, "click", function() {
285
+ m2.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 2</b></td></tr><tr><td>Distance: </td><td>2.01027199658201</td></tr><tr><td>Time of Day: </td><td>2006-01-15T14:59:02Z </td></tr><tr><td>Elapsed Time: </td><td>00:17:18 </td></tr><tr><td>Average Pace: </td><td>8:36.3 </td></tr><tr><td>Lat/Lng: </td><td>33.47039 , -112.08282 </td></tr><tr><td>Altitude: </td><td>321.698m </td></tr></table>");
286
+ });
287
+ map.addOverlay(m2);
288
+
289
+ var icon3 = new GIcon(baseIcon);
290
+ icon3.image = "http://www.joakim-systems.com/gicons/marker3.png";
291
+ var p3 = new GPoint(-112.08316, 33.48472);
292
+ var m3 = new GMarker(p3, icon3);
293
+ GEvent.addListener(m3, "click", function() {
294
+ m3.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 3</b></td></tr><tr><td>Distance: </td><td>3.00302631956892</td></tr><tr><td>Time of Day: </td><td>2006-01-15T15:07:43Z </td></tr><tr><td>Elapsed Time: </td><td>00:25:59 </td></tr><tr><td>Average Pace: </td><td>8:39.1 </td></tr><tr><td>Lat/Lng: </td><td>33.48472 , -112.08316 </td></tr><tr><td>Altitude: </td><td>330.35m </td></tr></table>");
295
+ });
296
+ map.addOverlay(m3);
297
+
298
+ var icon4 = new GIcon(baseIcon);
299
+ icon4.image = "http://www.joakim-systems.com/gicons/marker4.png";
300
+ var p4 = new GPoint(-112.08288, 33.49903);
301
+ var m4 = new GMarker(p4, icon4);
302
+ GEvent.addListener(m4, "click", function() {
303
+ m4.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 4</b></td></tr><tr><td>Distance: </td><td>4.0029683466179</td></tr><tr><td>Time of Day: </td><td>2006-01-15T15:16:20Z </td></tr><tr><td>Elapsed Time: </td><td>00:34:36 </td></tr><tr><td>Average Pace: </td><td>8:38.6 </td></tr><tr><td>Lat/Lng: </td><td>33.49903 , -112.08288 </td></tr><tr><td>Altitude: </td><td>321.218m </td></tr></table>");
304
+ });
305
+ map.addOverlay(m4);
306
+
307
+ var icon5 = new GIcon(baseIcon);
308
+ icon5.image = "http://www.joakim-systems.com/gicons/marker5.png";
309
+ var p5 = new GPoint(-112.0825, 33.51364);
310
+ var m5 = new GMarker(p5, icon5);
311
+ GEvent.addListener(m5, "click", function() {
312
+ m5.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 5</b></td></tr><tr><td>Distance: </td><td>5.0170713050673</td></tr><tr><td>Time of Day: </td><td>2006-01-15T15:25:08Z </td></tr><tr><td>Elapsed Time: </td><td>00:43:24 </td></tr><tr><td>Average Pace: </td><td>8:39.0 </td></tr><tr><td>Lat/Lng: </td><td>33.51364 , -112.0825 </td></tr><tr><td>Altitude: </td><td>339.002m </td></tr></table>");
313
+ });
314
+ map.addOverlay(m5);
315
+
316
+ var icon6 = new GIcon(baseIcon);
317
+ icon6.image = "http://www.joakim-systems.com/gicons/marker6.png";
318
+ var p6 = new GPoint(-112.06864, 33.51652);
319
+ var m6 = new GMarker(p6, icon6);
320
+ GEvent.addListener(m6, "click", function() {
321
+ m6.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 6</b></td></tr><tr><td>Distance: </td><td>6.0150512126733</td></tr><tr><td>Time of Day: </td><td>2006-01-15T15:33:48Z </td></tr><tr><td>Elapsed Time: </td><td>00:52:04 </td></tr><tr><td>Average Pace: </td><td>8:39.4 </td></tr><tr><td>Lat/Lng: </td><td>33.51652 , -112.06864 </td></tr><tr><td>Altitude: </td><td>344.77m </td></tr></table>");
322
+ });
323
+ map.addOverlay(m6);
324
+
325
+ var icon7 = new GIcon(baseIcon);
326
+ icon7.image = "http://www.joakim-systems.com/gicons/marker7.png";
327
+ var p7 = new GPoint(-112.05143, 33.51648);
328
+ var m7 = new GMarker(p7, icon7);
329
+ GEvent.addListener(m7, "click", function() {
330
+ m7.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 7</b></td></tr><tr><td>Distance: </td><td>7.00799868928515</td></tr><tr><td>Time of Day: </td><td>2006-01-15T15:42:31Z </td></tr><tr><td>Elapsed Time: </td><td>01:00:47 </td></tr><tr><td>Average Pace: </td><td>8:40.4 </td></tr><tr><td>Lat/Lng: </td><td>33.51648 , -112.05143 </td></tr><tr><td>Altitude: </td><td>349.577m </td></tr></table>");
331
+ });
332
+ map.addOverlay(m7);
333
+
334
+ var icon8 = new GIcon(baseIcon);
335
+ icon8.image = "http://www.joakim-systems.com/gicons/marker8.png";
336
+ var p8 = new GPoint(-112.03415, 33.5166);
337
+ var m8 = new GMarker(p8, icon8);
338
+ GEvent.addListener(m8, "click", function() {
339
+ m8.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 8</b></td></tr><tr><td>Distance: </td><td>8.0055958970116</td></tr><tr><td>Time of Day: </td><td>2006-01-15T15:51:14Z </td></tr><tr><td>Elapsed Time: </td><td>01:09:30 </td></tr><tr><td>Average Pace: </td><td>8:40.9 </td></tr><tr><td>Lat/Lng: </td><td>33.5166 , -112.03415 </td></tr><tr><td>Altitude: </td><td>355.344m </td></tr></table>");
340
+ });
341
+ map.addOverlay(m8);
342
+
343
+ var icon9 = new GIcon(baseIcon);
344
+ icon9.image = "http://www.joakim-systems.com/gicons/marker9.png";
345
+ var p9 = new GPoint(-112.02527, 33.50952);
346
+ var m9 = new GMarker(p9, icon9);
347
+ GEvent.addListener(m9, "click", function() {
348
+ m9.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 9</b></td></tr><tr><td>Distance: </td><td>9.01625908213699</td></tr><tr><td>Time of Day: </td><td>2006-01-15T15:59:45Z </td></tr><tr><td>Elapsed Time: </td><td>01:18:01 </td></tr><tr><td>Average Pace: </td><td>8:39.2 </td></tr><tr><td>Lat/Lng: </td><td>33.50952 , -112.02527 </td></tr><tr><td>Altitude: </td><td>358.709m </td></tr></table>");
349
+ });
350
+ map.addOverlay(m9);
351
+
352
+ var icon10 = new GIcon(baseIcon);
353
+ icon10.image = "http://www.joakim-systems.com/gicons/marker10.png";
354
+ var p10 = new GPoint(-112.00853, 33.51);
355
+ var m10 = new GMarker(p10, icon10);
356
+ GEvent.addListener(m10, "click", function() {
357
+ m10.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 10</b></td></tr><tr><td>Distance: </td><td>10.0042280139531</td></tr><tr><td>Time of Day: </td><td>2006-01-15T16:08:17Z </td></tr><tr><td>Elapsed Time: </td><td>01:26:33 </td></tr><tr><td>Average Pace: </td><td>8:39.1 </td></tr><tr><td>Lat/Lng: </td><td>33.51 , -112.00853 </td></tr><tr><td>Altitude: </td><td>371.206m </td></tr></table>");
358
+ });
359
+ map.addOverlay(m10);
360
+
361
+ var icon11 = new GIcon(baseIcon);
362
+ icon11.image = "http://www.joakim-systems.com/gicons/marker11.png";
363
+ var p11 = new GPoint(-111.9912, 33.50967);
364
+ var m11 = new GMarker(p11, icon11);
365
+ GEvent.addListener(m11, "click", function() {
366
+ m11.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 11</b></td></tr><tr><td>Distance: </td><td>11.0070855549589</td></tr><tr><td>Time of Day: </td><td>2006-01-15T16:17:05Z </td></tr><tr><td>Elapsed Time: </td><td>01:35:21 </td></tr><tr><td>Average Pace: </td><td>8:39.8 </td></tr><tr><td>Lat/Lng: </td><td>33.50967 , -111.9912 </td></tr><tr><td>Altitude: </td><td>377.935m </td></tr></table>");
367
+ });
368
+ map.addOverlay(m11);
369
+
370
+ var icon12 = new GIcon(baseIcon);
371
+ icon12.image = "http://www.joakim-systems.com/gicons/marker12.png";
372
+ var p12 = new GPoint(-111.9869, 33.4986);
373
+ var m12 = new GMarker(p12, icon12);
374
+ GEvent.addListener(m12, "click", function() {
375
+ m12.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 12</b></td></tr><tr><td>Distance: </td><td>12.0049259018489</td></tr><tr><td>Time of Day: </td><td>2006-01-15T16:25:34Z </td></tr><tr><td>Elapsed Time: </td><td>01:43:50 </td></tr><tr><td>Average Pace: </td><td>8:39.0 </td></tr><tr><td>Lat/Lng: </td><td>33.4986 , -111.9869 </td></tr><tr><td>Altitude: </td><td>376.974m </td></tr></table>");
376
+ });
377
+ map.addOverlay(m12);
378
+
379
+ var icon13 = new GIcon(baseIcon);
380
+ icon13.image = "http://www.joakim-systems.com/gicons/marker13.png";
381
+ var p13 = new GPoint(-111.98699, 33.48412);
382
+ var m13 = new GMarker(p13, icon13);
383
+ GEvent.addListener(m13, "click", function() {
384
+ m13.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 13</b></td></tr><tr><td>Distance: </td><td>13.0060927100388</td></tr><tr><td>Time of Day: </td><td>2006-01-15T16:34:09Z </td></tr><tr><td>Elapsed Time: </td><td>01:52:25 </td></tr><tr><td>Average Pace: </td><td>8:38.6 </td></tr><tr><td>Lat/Lng: </td><td>33.48412 , -111.98699 </td></tr><tr><td>Altitude: </td><td>368.803m </td></tr></table>");
385
+ });
386
+ map.addOverlay(m13);
387
+
388
+ var icon14 = new GIcon(baseIcon);
389
+ icon14.image = "http://www.joakim-systems.com/gicons/marker14.png";
390
+ var p14 = new GPoint(-111.98313, 33.4729);
391
+ var m14 = new GMarker(p14, icon14);
392
+ GEvent.addListener(m14, "click", function() {
393
+ m14.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 14</b></td></tr><tr><td>Distance: </td><td>14.0056445932232</td></tr><tr><td>Time of Day: </td><td>2006-01-15T16:42:50Z </td></tr><tr><td>Elapsed Time: </td><td>02:01:06 </td></tr><tr><td>Average Pace: </td><td>8:38.8 </td></tr><tr><td>Lat/Lng: </td><td>33.4729 , -111.98313 </td></tr><tr><td>Altitude: </td><td>358.228m </td></tr></table>");
394
+ });
395
+ map.addOverlay(m14);
396
+
397
+ var icon15 = new GIcon(baseIcon);
398
+ icon15.image = "http://www.joakim-systems.com/gicons/marker15.png";
399
+ var p15 = new GPoint(-111.97809, 33.4836);
400
+ var m15 = new GMarker(p15, icon15);
401
+ GEvent.addListener(m15, "click", function() {
402
+ m15.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 15</b></td></tr><tr><td>Distance: </td><td>15.0154783729364</td></tr><tr><td>Time of Day: </td><td>2006-01-15T16:51:33Z </td></tr><tr><td>Elapsed Time: </td><td>02:09:49 </td></tr><tr><td>Average Pace: </td><td>8:38.7 </td></tr><tr><td>Lat/Lng: </td><td>33.4836 , -111.97809 </td></tr><tr><td>Altitude: </td><td>368.803m </td></tr></table>");
403
+ });
404
+ map.addOverlay(m15);
405
+
406
+ var icon16 = new GIcon(baseIcon);
407
+ icon16.image = "http://www.joakim-systems.com/gicons/marker16.png";
408
+ var p16 = new GPoint(-111.97422, 33.49425);
409
+ var m16 = new GMarker(p16, icon16);
410
+ GEvent.addListener(m16, "click", function() {
411
+ m16.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 16</b></td></tr><tr><td>Distance: </td><td>16.0048549522358</td></tr><tr><td>Time of Day: </td><td>2006-01-15T17:00:14Z </td></tr><tr><td>Elapsed Time: </td><td>02:18:30 </td></tr><tr><td>Average Pace: </td><td>8:39.2 </td></tr><tr><td>Lat/Lng: </td><td>33.49425 , -111.97422 </td></tr><tr><td>Altitude: </td><td>375.052m </td></tr></table>");
412
+ });
413
+ map.addOverlay(m16);
414
+
415
+ var icon17 = new GIcon(baseIcon);
416
+ icon17.image = "http://www.joakim-systems.com/gicons/marker17.png";
417
+ var p17 = new GPoint(-111.95864, 33.48933);
418
+ var m17 = new GMarker(p17, icon17);
419
+ GEvent.addListener(m17, "click", function() {
420
+ m17.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 17</b></td></tr><tr><td>Distance: </td><td>17.0024462349807</td></tr><tr><td>Time of Day: </td><td>2006-01-15T17:09:03Z </td></tr><tr><td>Elapsed Time: </td><td>02:27:19 </td></tr><tr><td>Average Pace: </td><td>8:39.9 </td></tr><tr><td>Lat/Lng: </td><td>33.48933 , -111.95864 </td></tr><tr><td>Altitude: </td><td>380.819m </td></tr></table>");
421
+ });
422
+ map.addOverlay(m17);
423
+
424
+ var icon18 = new GIcon(baseIcon);
425
+ icon18.image = "http://www.joakim-systems.com/gicons/marker18.png";
426
+ var p18 = new GPoint(-111.94208, 33.49075);
427
+ var m18 = new GMarker(p18, icon18);
428
+ GEvent.addListener(m18, "click", function() {
429
+ m18.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 18</b></td></tr><tr><td>Distance: </td><td>18.008158710711</td></tr><tr><td>Time of Day: </td><td>2006-01-15T17:17:57Z </td></tr><tr><td>Elapsed Time: </td><td>02:36:13 </td></tr><tr><td>Average Pace: </td><td>8:40.5 </td></tr><tr><td>Lat/Lng: </td><td>33.49075 , -111.94208 </td></tr><tr><td>Altitude: </td><td>381.3m </td></tr></table>");
430
+ });
431
+ map.addOverlay(m18);
432
+
433
+ var icon19 = new GIcon(baseIcon);
434
+ icon19.image = "http://www.joakim-systems.com/gicons/marker19.png";
435
+ var p19 = new GPoint(-111.92826, 33.49272);
436
+ var m19 = new GMarker(p19, icon19);
437
+ GEvent.addListener(m19, "click", function() {
438
+ m19.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 19</b></td></tr><tr><td>Distance: </td><td>19.002473750158</td></tr><tr><td>Time of Day: </td><td>2006-01-15T17:26:27Z </td></tr><tr><td>Elapsed Time: </td><td>02:44:43 </td></tr><tr><td>Average Pace: </td><td>8:40.1 </td></tr><tr><td>Lat/Lng: </td><td>33.49272 , -111.92826 </td></tr><tr><td>Altitude: </td><td>379.858m </td></tr></table>");
439
+ });
440
+ map.addOverlay(m19);
441
+
442
+ var icon20 = new GIcon(baseIcon);
443
+ icon20.image = "http://www.joakim-systems.com/gicons/marker20.png";
444
+ var p20 = new GPoint(-111.92624, 33.47893);
445
+ var m20 = new GMarker(p20, icon20);
446
+ GEvent.addListener(m20, "click", function() {
447
+ m20.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 20</b></td></tr><tr><td>Distance: </td><td>20.0123150270121</td></tr><tr><td>Time of Day: </td><td>2006-01-15T17:35:15Z </td></tr><tr><td>Elapsed Time: </td><td>02:53:31 </td></tr><tr><td>Average Pace: </td><td>8:40.2 </td></tr><tr><td>Lat/Lng: </td><td>33.47893 , -111.92624 </td></tr><tr><td>Altitude: </td><td>374.571m </td></tr></table>");
448
+ });
449
+ map.addOverlay(m20);
450
+
451
+ var icon21 = new GIcon(baseIcon);
452
+ icon21.image = "http://www.joakim-systems.com/gicons/marker21.png";
453
+ var p21 = new GPoint(-111.92457, 33.46571);
454
+ var m21 = new GMarker(p21, icon21);
455
+ GEvent.addListener(m21, "click", function() {
456
+ m21.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 21</b></td></tr><tr><td>Distance: </td><td>21.0164250162805</td></tr><tr><td>Time of Day: </td><td>2006-01-15T17:44:00Z </td></tr><tr><td>Elapsed Time: </td><td>03:02:16 </td></tr><tr><td>Average Pace: </td><td>8:40.4 </td></tr><tr><td>Lat/Lng: </td><td>33.46571 , -111.92457 </td></tr><tr><td>Altitude: </td><td>369.284m </td></tr></table>");
457
+ });
458
+ map.addOverlay(m21);
459
+
460
+ var icon22 = new GIcon(baseIcon);
461
+ icon22.image = "http://www.joakim-systems.com/gicons/marker22.png";
462
+ var p22 = new GPoint(-111.90897, 33.46423);
463
+ var m22 = new GMarker(p22, icon22);
464
+ GEvent.addListener(m22, "click", function() {
465
+ m22.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 22</b></td></tr><tr><td>Distance: </td><td>22.0139923102199</td></tr><tr><td>Time of Day: </td><td>2006-01-15T17:52:29Z </td></tr><tr><td>Elapsed Time: </td><td>03:10:45 </td></tr><tr><td>Average Pace: </td><td>8:39.9 </td></tr><tr><td>Lat/Lng: </td><td>33.46423 , -111.90897 </td></tr><tr><td>Altitude: </td><td>368.322m </td></tr></table>");
466
+ });
467
+ map.addOverlay(m22);
468
+
469
+ var icon23 = new GIcon(baseIcon);
470
+ icon23.image = "http://www.joakim-systems.com/gicons/marker23.png";
471
+ var p23 = new GPoint(-111.9094, 33.4497);
472
+ var m23 = new GMarker(p23, icon23);
473
+ GEvent.addListener(m23, "click", function() {
474
+ m23.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 23</b></td></tr><tr><td>Distance: </td><td>23.0190843238382</td></tr><tr><td>Time of Day: </td><td>2006-01-15T18:01:08Z </td></tr><tr><td>Elapsed Time: </td><td>03:19:24 </td></tr><tr><td>Average Pace: </td><td>8:39.7 </td></tr><tr><td>Lat/Lng: </td><td>33.4497 , -111.9094 </td></tr><tr><td>Altitude: </td><td>361.112m </td></tr></table>");
475
+ });
476
+ map.addOverlay(m23);
477
+
478
+ var icon24 = new GIcon(baseIcon);
479
+ icon24.image = "http://www.joakim-systems.com/gicons/marker24.png";
480
+ var p24 = new GPoint(-111.90957, 33.43537);
481
+ var m24 = new GMarker(p24, icon24);
482
+ GEvent.addListener(m24, "click", function() {
483
+ m24.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 24</b></td></tr><tr><td>Distance: </td><td>24.0105627956912</td></tr><tr><td>Time of Day: </td><td>2006-01-15T18:09:44Z </td></tr><tr><td>Elapsed Time: </td><td>03:28:00 </td></tr><tr><td>Average Pace: </td><td>8:39.8 </td></tr><tr><td>Lat/Lng: </td><td>33.43537 , -111.90957 </td></tr><tr><td>Altitude: </td><td>363.516m </td></tr></table>");
484
+ });
485
+ map.addOverlay(m24);
486
+
487
+ var icon25 = new GIcon(baseIcon);
488
+ icon25.image = "http://www.joakim-systems.com/gicons/marker25.png";
489
+ var p25 = new GPoint(-111.91069, 33.42202);
490
+ var m25 = new GMarker(p25, icon25);
491
+ GEvent.addListener(m25, "click", function() {
492
+ m25.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 25</b></td></tr><tr><td>Distance: </td><td>25.0141402179078</td></tr><tr><td>Time of Day: </td><td>2006-01-15T18:18:27Z </td></tr><tr><td>Elapsed Time: </td><td>03:36:43 </td></tr><tr><td>Average Pace: </td><td>8:39.8 </td></tr><tr><td>Lat/Lng: </td><td>33.42202 , -111.91069 </td></tr><tr><td>Altitude: </td><td>360.632m </td></tr></table>");
493
+ });
494
+ map.addOverlay(m25);
495
+
496
+ var icon26 = new GIcon(baseIcon);
497
+ icon26.image = "http://www.joakim-systems.com/gicons/marker26.png";
498
+ var p26 = new GPoint(-111.92646, 33.42382);
499
+ var m26 = new GMarker(p26, icon26);
500
+ GEvent.addListener(m26, "click", function() {
501
+ m26.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Checkpoint 26</b></td></tr><tr><td>Distance: </td><td>26.0331096272572</td></tr><tr><td>Time of Day: </td><td>2006-01-15T18:27:33Z </td></tr><tr><td>Elapsed Time: </td><td>03:45:49 </td></tr><tr><td>Average Pace: </td><td>8:40.5 </td></tr><tr><td>Lat/Lng: </td><td>33.42382 , -111.92646 </td></tr><tr><td>Altitude: </td><td>348.615m </td></tr></table>");
502
+ });
503
+ map.addOverlay(m26);
504
+
505
+ var iconFinish = new GIcon(baseIcon);
506
+ iconFinish.image = "http://www.joakim-systems.com/gicons/dd-end.png";
507
+ var pFinish = new GPoint(-111.92927, 33.42601);
508
+ var mFinish = new GMarker(pFinish, iconFinish);
509
+ GEvent.addListener(mFinish, "click", function() {
510
+ mFinish.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Finish!</b></td></tr><tr><td>Distance: </td><td>26.3514930151813</td></tr><tr><td>Time of Day: </td><td>2006-01-15T18:31:10Z </td></tr><tr><td>Elapsed Time: </td><td>03:49:26 </td></tr><tr><td>Average Pace: </td><td>8:42.4 </td></tr><tr><td>Lat/Lng: </td><td>33.42601 , -111.92927 </td></tr><tr><td>Altitude: </td><td>347.654m </td></tr></table>");
511
+ });
512
+ map.addOverlay(mFinish);
513
+
514
+
515
+
516
+
517
+ GEvent.addListener(map, "click", function() {
518
+ var center = map.getCenter();
519
+
520
+ document.getElementById("messages").innerHTML = 'click: ' + center.toString();
521
+ });
522
+ GEvent.addListener(map, "moveend", function() {
523
+ var center = map.getCenter();
524
+
525
+ document.getElementById("messages").innerHTML = 'moveend: ' + center.toString();
526
+ });
527
+
528
+ }
529
+ }
530
+ //]]>
531
+
532
+ </script>
533
+ </head>
534
+ <body onload="load()" onunload="GUnload()">
535
+ <center>
536
+ <h3> Phoenix Marathon - 2006-01-15 </h3>
537
+ <h5> Generated by Gooby Sun Feb 25 11:55:13 EST 2007 <br> Gooby = Google APIs + Ruby </h5>
538
+ <div id="map" style="width: 900px; height: 600px"></div>
539
+ <div id="messages"></div>
540
+ </center>
541
+ </body>
542
+ </html>