georuby_remake 1.0.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 (70) hide show
  1. data/.gitignore +6 -0
  2. data/History.txt +4 -0
  3. data/LICENSE +21 -0
  4. data/README.txt +118 -0
  5. data/Rakefile +47 -0
  6. data/VERSION +1 -0
  7. data/georuby_remake.gemspec +132 -0
  8. data/lib/geo_ruby.rb +5 -0
  9. data/lib/geo_ruby/gpx4r.rb +9 -0
  10. data/lib/geo_ruby/gpx4r/gpx.rb +104 -0
  11. data/lib/geo_ruby/shp4r.rb +57 -0
  12. data/lib/geo_ruby/shp4r/dbf.rb +38 -0
  13. data/lib/geo_ruby/shp4r/shp_file.rb +297 -0
  14. data/lib/geo_ruby/shp4r/shp_record.rb +14 -0
  15. data/lib/geo_ruby/shp4r/shp_transaction.rb +345 -0
  16. data/lib/geo_ruby/simple_features.rb +20 -0
  17. data/lib/geo_ruby/simple_features/envelope.rb +167 -0
  18. data/lib/geo_ruby/simple_features/ewkb_parser.rb +216 -0
  19. data/lib/geo_ruby/simple_features/ewkt_parser.rb +336 -0
  20. data/lib/geo_ruby/simple_features/geometry.rb +230 -0
  21. data/lib/geo_ruby/simple_features/geometry_collection.rb +136 -0
  22. data/lib/geo_ruby/simple_features/geometry_factory.rb +81 -0
  23. data/lib/geo_ruby/simple_features/georss_parser.rb +135 -0
  24. data/lib/geo_ruby/simple_features/helper.rb +18 -0
  25. data/lib/geo_ruby/simple_features/line_string.rb +206 -0
  26. data/lib/geo_ruby/simple_features/linear_ring.rb +12 -0
  27. data/lib/geo_ruby/simple_features/multi_line_string.rb +51 -0
  28. data/lib/geo_ruby/simple_features/multi_point.rb +46 -0
  29. data/lib/geo_ruby/simple_features/multi_polygon.rb +52 -0
  30. data/lib/geo_ruby/simple_features/point.rb +364 -0
  31. data/lib/geo_ruby/simple_features/polygon.rb +157 -0
  32. data/spec/data/gpx/fells_loop.gpx +1077 -0
  33. data/spec/data/gpx/long.gpx +1642 -0
  34. data/spec/data/gpx/long.kml +31590 -0
  35. data/spec/data/gpx/long.nmea +2220 -0
  36. data/spec/data/gpx/short.gpx +13634 -0
  37. data/spec/data/gpx/short.kml +130 -0
  38. data/spec/data/gpx/tracktreks.gpx +706 -0
  39. data/spec/data/multipoint.dbf +0 -0
  40. data/spec/data/multipoint.shp +0 -0
  41. data/spec/data/multipoint.shx +0 -0
  42. data/spec/data/point.dbf +0 -0
  43. data/spec/data/point.shp +0 -0
  44. data/spec/data/point.shx +0 -0
  45. data/spec/data/polygon.dbf +0 -0
  46. data/spec/data/polygon.shp +0 -0
  47. data/spec/data/polygon.shx +0 -0
  48. data/spec/data/polyline.dbf +0 -0
  49. data/spec/data/polyline.shp +0 -0
  50. data/spec/data/polyline.shx +0 -0
  51. data/spec/geo_ruby/gpx4r/gpx_spec.rb +106 -0
  52. data/spec/geo_ruby/shp4r/shp_spec.rb +240 -0
  53. data/spec/geo_ruby/simple_features/envelope_spec.rb +45 -0
  54. data/spec/geo_ruby/simple_features/ewkb_parser_spec.rb +158 -0
  55. data/spec/geo_ruby/simple_features/ewkt_parser_spec.rb +179 -0
  56. data/spec/geo_ruby/simple_features/geometry_collection_spec.rb +55 -0
  57. data/spec/geo_ruby/simple_features/geometry_factory_spec.rb +11 -0
  58. data/spec/geo_ruby/simple_features/geometry_spec.rb +32 -0
  59. data/spec/geo_ruby/simple_features/georss_parser_spec.rb +218 -0
  60. data/spec/geo_ruby/simple_features/line_string_spec.rb +245 -0
  61. data/spec/geo_ruby/simple_features/linear_ring_spec.rb +14 -0
  62. data/spec/geo_ruby/simple_features/multi_line_string_spec.rb +54 -0
  63. data/spec/geo_ruby/simple_features/multi_point_spec.rb +35 -0
  64. data/spec/geo_ruby/simple_features/multi_polygon_spec.rb +50 -0
  65. data/spec/geo_ruby/simple_features/point_spec.rb +356 -0
  66. data/spec/geo_ruby/simple_features/polygon_spec.rb +108 -0
  67. data/spec/geo_ruby_spec.rb +27 -0
  68. data/spec/spec.opts +6 -0
  69. data/spec/spec_helper.rb +65 -0
  70. metadata +185 -0
@@ -0,0 +1,157 @@
1
+ #require 'geo_ruby/simple_features/geometry'
2
+
3
+ module GeoRuby
4
+
5
+ module SimpleFeatures
6
+
7
+ #Represents a polygon as an array of linear rings (see LinearRing). No check is performed regarding the validity of the geometries forming the polygon.
8
+ class Polygon < Geometry
9
+ #the list of rings forming the polygon
10
+ attr_reader :rings
11
+
12
+ def initialize(srid = DEFAULT_SRID,with_z=false,with_m=false)
13
+ super(srid,with_z,with_m)
14
+ @rings = []
15
+ end
16
+
17
+ #Delegate the unknown methods to the rings array
18
+ def method_missing(method_name,*args,&b)
19
+ @rings.send(method_name,*args,&b)
20
+ end
21
+
22
+ #Bounding box in 2D/3D. Returns an array of 2 points
23
+ def bounding_box
24
+ unless with_z
25
+ @rings[0].bounding_box
26
+ else
27
+ result = @rings[0].bounding_box #valid for x and y
28
+ max_z, min_z = result[1].z, result[0].z
29
+ 1.upto(size - 1) do |index|
30
+ bbox = @rings[index].bounding_box
31
+ sw = bbox[0]
32
+ ne = bbox[1]
33
+ max_z = ne.z if ne.z > max_z
34
+ min_z = sw.z if sw.z < min_z
35
+ end
36
+ result[1].z, result[0].z = max_z, min_z
37
+ result
38
+ end
39
+ end
40
+
41
+ def m_range
42
+ if with_m
43
+ max_m, min_m = -Float::MAX, Float::MAX
44
+ each do |lr|
45
+ lrmr = lr.m_range
46
+ max_m = lrmr[1] if lrmr[1] > max_m
47
+ min_m = lrmr[0] if lrmr[0] < min_m
48
+ end
49
+ [min_m,max_m]
50
+ else
51
+ [0,0]
52
+ end
53
+ end
54
+
55
+ #tests for other equality. The SRID is not taken into account.
56
+ def ==(other_polygon)
57
+ if other_polygon.class != self.class or
58
+ length != other_polygon.length
59
+ false
60
+ else
61
+ index=0
62
+ while index<length
63
+ return false if self[index] != other_polygon[index]
64
+ index+=1
65
+ end
66
+ true
67
+ end
68
+ end
69
+
70
+ #binary representation of a polygon, without the headers neccessary for a valid WKB string
71
+ def binary_representation(allow_z=true,allow_m=true)
72
+ rep = [length].pack("V")
73
+ each {|linear_ring| rep << linear_ring.binary_representation(allow_z,allow_m)}
74
+ rep
75
+ end
76
+
77
+ #WKB geometry type
78
+ def binary_geometry_type
79
+ 3
80
+ end
81
+
82
+ #Text representation of a polygon
83
+ def text_representation(allow_z=true,allow_m=true)
84
+ @rings.collect{|line_string| "(" + line_string.text_representation(allow_z,allow_m) + ")" }.join(",")
85
+ end
86
+
87
+ #WKT geometry type
88
+ def text_geometry_type
89
+ "POLYGON"
90
+ end
91
+
92
+ #georss simple representation : outputs only the outer ring
93
+ def georss_simple_representation(options)
94
+ georss_ns = options[:georss_ns] || "georss"
95
+ geom_attr = options[:geom_attr]
96
+ "<#{georss_ns}:polygon#{geom_attr}>" + self[0].georss_poslist + "</#{georss_ns}:polygon>\n"
97
+ end
98
+
99
+ #georss w3c representation : outputs the first point of the outer ring
100
+ def georss_w3cgeo_representation(options)
101
+ w3cgeo_ns = options[:w3cgeo_ns] || "geo"
102
+
103
+ "<#{w3cgeo_ns}:lat>#{self[0][0].y}</#{w3cgeo_ns}:lat>\n<#{w3cgeo_ns}:long>#{self[0][0].x}</#{w3cgeo_ns}:long>\n"
104
+ end
105
+ #georss gml representation
106
+ def georss_gml_representation(options)
107
+ georss_ns = options[:georss_ns] || "georss"
108
+ gml_ns = options[:gml_ns] || "gml"
109
+
110
+ result = "<#{georss_ns}:where>\n<#{gml_ns}:Polygon>\n<#{gml_ns}:exterior>\n<#{gml_ns}:LinearRing>\n<#{gml_ns}:posList>\n" + self[0].georss_poslist + "\n</#{gml_ns}:posList>\n</#{gml_ns}:LinearRing>\n</#{gml_ns}:exterior>\n</#{gml_ns}:Polygon>\n</#{georss_ns}:where>\n"
111
+ end
112
+
113
+ #outputs the geometry in kml format : options are <tt>:id</tt>, <tt>:tesselate</tt>, <tt>:extrude</tt>,
114
+ #<tt>:altitude_mode</tt>. If the altitude_mode option is not present, the Z (if present) will not be output (since
115
+ #it won't be used by GE anyway: clampToGround is the default)
116
+ def kml_representation(options = {})
117
+ result = "<Polygon#{options[:id_attr]}>\n"
118
+ result += options[:geom_data] if options[:geom_data]
119
+ rings.each_with_index do |ring, i|
120
+ if i == 0
121
+ boundary = "outerBoundaryIs"
122
+ else
123
+ boundary = "innerBoundaryIs"
124
+ end
125
+ result += "<#{boundary}><LinearRing><coordinates>\n"
126
+ result += ring.kml_poslist(options)
127
+ result += "\n</coordinates></LinearRing></#{boundary}>\n"
128
+ end
129
+ result += "</Polygon>\n"
130
+ end
131
+
132
+ #creates a new polygon. Accepts an array of linear strings as argument
133
+ def self.from_linear_rings(linear_rings,srid = DEFAULT_SRID,with_z=false,with_m=false)
134
+ polygon = new(srid,with_z,with_m)
135
+ polygon.concat(linear_rings)
136
+ polygon
137
+ end
138
+
139
+ #creates a new polygon. Accepts a sequence of points as argument : ((x,y)....(x,y)),((x,y).....(x,y))
140
+ def self.from_coordinates(point_sequences,srid=DEFAULT_SRID,with_z=false,with_m=false)
141
+ polygon = new(srid,with_z,with_m)
142
+ polygon.concat( point_sequences.map {|points| LinearRing.from_coordinates(points,srid,with_z,with_m) } )
143
+ polygon
144
+ end
145
+
146
+ #creates a new polygon from a list of Points (pt1....ptn),(pti....ptj)
147
+ def self.from_points(point_sequences, srid=DEFAULT_SRID,with_z=false,with_m=false)
148
+ polygon = new(srid,with_z,with_m)
149
+ polygon.concat( point_sequences.map {|points| LinearRing.from_points(points,srid,with_z,with_m) } )
150
+ polygon
151
+ end
152
+
153
+ end
154
+
155
+ end
156
+
157
+ end
@@ -0,0 +1,1077 @@
1
+ <?xml version="1.0"?>
2
+ <gpx
3
+ version="1.0"
4
+ creator="ExpertGPS 1.1 - http://www.topografix.com"
5
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6
+ xmlns="http://www.topografix.com/GPX/1/0"
7
+ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
8
+ <time>2002-02-27T17:18:33Z</time>
9
+ <bounds minlat="42.401051" minlon="-71.126602" maxlat="42.468655" maxlon="-71.102973"/>
10
+ <wpt lat="42.438878" lon="-71.119277">
11
+ <ele>44.586548</ele>
12
+ <time>2001-11-28T21:05:28Z</time>
13
+ <name>5066</name>
14
+ <desc><![CDATA[5066]]></desc>
15
+ <sym>Crossing</sym>
16
+ <type><![CDATA[Crossing]]></type>
17
+ </wpt>
18
+ <wpt lat="42.439227" lon="-71.119689">
19
+ <ele>57.607200</ele>
20
+ <time>2001-06-02T03:26:55Z</time>
21
+ <name>5067</name>
22
+ <desc><![CDATA[5067]]></desc>
23
+ <sym>Dot</sym>
24
+ <type><![CDATA[Intersection]]></type>
25
+ </wpt>
26
+ <wpt lat="42.438917" lon="-71.116146">
27
+ <ele>44.826904</ele>
28
+ <time>2001-11-16T23:03:38Z</time>
29
+ <name>5096</name>
30
+ <desc><![CDATA[5096]]></desc>
31
+ <sym>Dot</sym>
32
+ <type><![CDATA[Dot]]></type>
33
+ </wpt>
34
+ <wpt lat="42.443904" lon="-71.122044">
35
+ <ele>50.594727</ele>
36
+ <time>2001-11-28T21:05:28Z</time>
37
+ <name>5142</name>
38
+ <desc><![CDATA[5142]]></desc>
39
+ <sym>Dot</sym>
40
+ <type><![CDATA[Dot]]></type>
41
+ </wpt>
42
+ <wpt lat="42.447298" lon="-71.121447">
43
+ <ele>127.711200</ele>
44
+ <time>2001-06-02T03:26:58Z</time>
45
+ <name>5156</name>
46
+ <desc><![CDATA[5156]]></desc>
47
+ <sym>Dot</sym>
48
+ <type><![CDATA[Intersection]]></type>
49
+ </wpt>
50
+ <wpt lat="42.454873" lon="-71.125094">
51
+ <ele>96.926400</ele>
52
+ <time>2001-06-02T03:26:59Z</time>
53
+ <name>5224</name>
54
+ <desc><![CDATA[5224]]></desc>
55
+ <sym>Dot</sym>
56
+ <type><![CDATA[Intersection]]></type>
57
+ </wpt>
58
+ <wpt lat="42.459079" lon="-71.124988">
59
+ <ele>82.600800</ele>
60
+ <time>2001-06-02T03:26:59Z</time>
61
+ <name>5229</name>
62
+ <desc><![CDATA[5229]]></desc>
63
+ <sym>Dot</sym>
64
+ <type><![CDATA[Intersection]]></type>
65
+ </wpt>
66
+ <wpt lat="42.456979" lon="-71.124474">
67
+ <ele>82.905600</ele>
68
+ <time>2001-06-02T03:26:59Z</time>
69
+ <name>5237</name>
70
+ <desc><![CDATA[5237]]></desc>
71
+ <sym>Dot</sym>
72
+ <type><![CDATA[Intersection]]></type>
73
+ </wpt>
74
+ <wpt lat="42.454401" lon="-71.120990">
75
+ <ele>66.696655</ele>
76
+ <time>2001-11-28T21:05:28Z</time>
77
+ <name>5254</name>
78
+ <desc><![CDATA[5254]]></desc>
79
+ <sym>Dot</sym>
80
+ <type><![CDATA[Dot]]></type>
81
+ </wpt>
82
+ <wpt lat="42.451442" lon="-71.121746">
83
+ <ele>74.627442</ele>
84
+ <time>2001-11-07T23:53:41Z</time>
85
+ <name>5258</name>
86
+ <desc><![CDATA[5258]]></desc>
87
+ <sym>Dot</sym>
88
+ <type><![CDATA[Dot]]></type>
89
+ </wpt>
90
+ <wpt lat="42.454404" lon="-71.120660">
91
+ <ele>65.254761</ele>
92
+ <time>2001-11-28T21:05:28Z</time>
93
+ <name>5264</name>
94
+ <desc><![CDATA[5264]]></desc>
95
+ <sym>Dot</sym>
96
+ <type><![CDATA[Dot]]></type>
97
+ </wpt>
98
+ <wpt lat="42.457761" lon="-71.121045">
99
+ <ele>77.419200</ele>
100
+ <time>2001-06-02T03:27:00Z</time>
101
+ <name>526708</name>
102
+ <desc><![CDATA[526708]]></desc>
103
+ <sym>Dot</sym>
104
+ <type><![CDATA[Intersection]]></type>
105
+ </wpt>
106
+ <wpt lat="42.457089" lon="-71.120313">
107
+ <ele>74.676000</ele>
108
+ <time>2001-06-02T03:27:00Z</time>
109
+ <name>526750</name>
110
+ <desc><![CDATA[526750]]></desc>
111
+ <sym>Dot</sym>
112
+ <type><![CDATA[Intersection]]></type>
113
+ </wpt>
114
+ <wpt lat="42.456592" lon="-71.119676">
115
+ <ele>78.713135</ele>
116
+ <time>2001-11-07T23:53:41Z</time>
117
+ <name>527614</name>
118
+ <desc><![CDATA[527614]]></desc>
119
+ <sym>Dot</sym>
120
+ <type><![CDATA[Dot]]></type>
121
+ </wpt>
122
+ <wpt lat="42.456252" lon="-71.119356">
123
+ <ele>78.713135</ele>
124
+ <time>2001-11-07T23:53:41Z</time>
125
+ <name>527631</name>
126
+ <desc><![CDATA[527631]]></desc>
127
+ <sym>Dot</sym>
128
+ <type><![CDATA[Dot]]></type>
129
+ </wpt>
130
+ <wpt lat="42.458148" lon="-71.119135">
131
+ <ele>68.275200</ele>
132
+ <time>2001-06-02T03:27:00Z</time>
133
+ <name>5278</name>
134
+ <desc><![CDATA[5278]]></desc>
135
+ <sym>Dot</sym>
136
+ <type><![CDATA[Intersection]]></type>
137
+ </wpt>
138
+ <wpt lat="42.459377" lon="-71.117693">
139
+ <ele>64.008000</ele>
140
+ <time>2001-06-02T03:27:01Z</time>
141
+ <name>5289</name>
142
+ <desc><![CDATA[5289]]></desc>
143
+ <sym>Dot</sym>
144
+ <type><![CDATA[Intersection]]></type>
145
+ </wpt>
146
+ <wpt lat="42.464183" lon="-71.119828">
147
+ <ele>52.997925</ele>
148
+ <time>2001-11-28T21:05:28Z</time>
149
+ <name>5374FIRE</name>
150
+ <desc><![CDATA[5374FIRE]]></desc>
151
+ <sym>Dot</sym>
152
+ <type><![CDATA[Dot]]></type>
153
+ </wpt>
154
+ <wpt lat="42.465650" lon="-71.119399">
155
+ <ele>56.388000</ele>
156
+ <time>2001-06-02T03:27:02Z</time>
157
+ <name>5376</name>
158
+ <desc><![CDATA[5376]]></desc>
159
+ <sym>Dot</sym>
160
+ <type><![CDATA[Intersection]]></type>
161
+ </wpt>
162
+ <wpt lat="42.439018" lon="-71.114456">
163
+ <ele>56.388000</ele>
164
+ <time>2001-06-02T03:26:55Z</time>
165
+ <name>6006</name>
166
+ <desc><![CDATA[600698]]></desc>
167
+ <sym>Dot</sym>
168
+ <type><![CDATA[Intersection]]></type>
169
+ </wpt>
170
+ <wpt lat="42.438594" lon="-71.114803">
171
+ <ele>46.028564</ele>
172
+ <time>2001-11-28T21:05:28Z</time>
173
+ <name>6006BLUE</name>
174
+ <desc><![CDATA[6006BLUE]]></desc>
175
+ <sym>Dot</sym>
176
+ <type><![CDATA[Dot]]></type>
177
+ </wpt>
178
+ <wpt lat="42.436757" lon="-71.113223">
179
+ <ele>37.616943</ele>
180
+ <time>2001-11-28T21:05:28Z</time>
181
+ <name>6014MEADOW</name>
182
+ <desc><![CDATA[6014MEADOW]]></desc>
183
+ <sym>Dot</sym>
184
+ <type><![CDATA[Dot]]></type>
185
+ </wpt>
186
+ <wpt lat="42.441754" lon="-71.113220">
187
+ <ele>56.388000</ele>
188
+ <time>2001-06-02T03:26:55Z</time>
189
+ <name>6029</name>
190
+ <desc><![CDATA[6029]]></desc>
191
+ <sym>Dot</sym>
192
+ <type><![CDATA[Intersection]]></type>
193
+ </wpt>
194
+ <wpt lat="42.436243" lon="-71.109075">
195
+ <ele>50.292000</ele>
196
+ <time>2001-06-02T03:27:05Z</time>
197
+ <name>6053</name>
198
+ <desc><![CDATA[6053]]></desc>
199
+ <sym>Dot</sym>
200
+ <type><![CDATA[Intersection]]></type>
201
+ </wpt>
202
+ <wpt lat="42.439250" lon="-71.107500">
203
+ <ele>25.603200</ele>
204
+ <time>2001-06-02T03:26:57Z</time>
205
+ <name>6066</name>
206
+ <desc><![CDATA[6066]]></desc>
207
+ <sym>Dot</sym>
208
+ <type><![CDATA[Intersection]]></type>
209
+ </wpt>
210
+ <wpt lat="42.439764" lon="-71.107582">
211
+ <ele>34.442400</ele>
212
+ <time>2001-06-02T03:26:57Z</time>
213
+ <name>6067</name>
214
+ <desc><![CDATA[6067]]></desc>
215
+ <sym>Dot</sym>
216
+ <type><![CDATA[Intersection]]></type>
217
+ </wpt>
218
+ <wpt lat="42.434766" lon="-71.105874">
219
+ <ele>30.480000</ele>
220
+ <time>2001-06-02T03:26:57Z</time>
221
+ <name>6071</name>
222
+ <desc><![CDATA[6071]]></desc>
223
+ <sym>Dot</sym>
224
+ <type><![CDATA[Intersection]]></type>
225
+ </wpt>
226
+ <wpt lat="42.433304" lon="-71.106599">
227
+ <ele>15.240000</ele>
228
+ <time>2001-06-02T03:26:56Z</time>
229
+ <name>6073</name>
230
+ <desc><![CDATA[6073]]></desc>
231
+ <sym>Dot</sym>
232
+ <type><![CDATA[Intersection]]></type>
233
+ </wpt>
234
+ <wpt lat="42.437338" lon="-71.104772">
235
+ <ele>37.795200</ele>
236
+ <time>2001-06-02T03:26:57Z</time>
237
+ <name>6084</name>
238
+ <desc><![CDATA[6084]]></desc>
239
+ <sym>Dot</sym>
240
+ <type><![CDATA[Intersection]]></type>
241
+ </wpt>
242
+ <wpt lat="42.442196" lon="-71.110975">
243
+ <ele>64.008000</ele>
244
+ <time>2001-06-02T03:26:55Z</time>
245
+ <name>6130</name>
246
+ <desc><![CDATA[6130]]></desc>
247
+ <sym>Dot</sym>
248
+ <type><![CDATA[Intersection]]></type>
249
+ </wpt>
250
+ <wpt lat="42.442981" lon="-71.111441">
251
+ <ele>64.008000</ele>
252
+ <time>2001-06-02T03:26:58Z</time>
253
+ <name>6131</name>
254
+ <desc><![CDATA[6131]]></desc>
255
+ <sym>Dot</sym>
256
+ <type><![CDATA[Intersection]]></type>
257
+ </wpt>
258
+ <wpt lat="42.444773" lon="-71.108882">
259
+ <ele>62.788800</ele>
260
+ <time>2001-06-02T03:27:05Z</time>
261
+ <name>6153</name>
262
+ <desc><![CDATA[6153]]></desc>
263
+ <sym>Dot</sym>
264
+ <type><![CDATA[Intersection]]></type>
265
+ </wpt>
266
+ <wpt lat="42.443592" lon="-71.106301">
267
+ <ele>55.473600</ele>
268
+ <time>2001-06-02T03:27:05Z</time>
269
+ <name>6171</name>
270
+ <desc><![CDATA[6171]]></desc>
271
+ <sym>Dot</sym>
272
+ <type><![CDATA[Intersection]]></type>
273
+ </wpt>
274
+ <wpt lat="42.447804" lon="-71.106624">
275
+ <ele>62.484000</ele>
276
+ <time>2001-06-02T03:27:04Z</time>
277
+ <name>6176</name>
278
+ <desc><![CDATA[6176]]></desc>
279
+ <sym>Dot</sym>
280
+ <type><![CDATA[Intersection]]></type>
281
+ </wpt>
282
+ <wpt lat="42.448448" lon="-71.106158">
283
+ <ele>62.179200</ele>
284
+ <time>2001-06-02T03:27:04Z</time>
285
+ <name>6177</name>
286
+ <desc><![CDATA[6177]]></desc>
287
+ <sym>Dot</sym>
288
+ <type><![CDATA[Intersection]]></type>
289
+ </wpt>
290
+ <wpt lat="42.453415" lon="-71.106783">
291
+ <ele>69.799200</ele>
292
+ <time>2001-06-02T03:26:55Z</time>
293
+ <name>6272</name>
294
+ <desc><![CDATA[6272]]></desc>
295
+ <sym>Dot</sym>
296
+ <type><![CDATA[Intersection]]></type>
297
+ </wpt>
298
+ <wpt lat="42.453434" lon="-71.107253">
299
+ <ele>73.152000</ele>
300
+ <time>2001-06-02T03:26:56Z</time>
301
+ <name>6272</name>
302
+ <desc><![CDATA[6272]]></desc>
303
+ <sym>Dot</sym>
304
+ <type><![CDATA[Intersection]]></type>
305
+ </wpt>
306
+ <wpt lat="42.458298" lon="-71.106771">
307
+ <ele>70.104000</ele>
308
+ <time>2001-06-02T03:27:04Z</time>
309
+ <name>6278</name>
310
+ <desc><![CDATA[6278]]></desc>
311
+ <sym>Dot</sym>
312
+ <type><![CDATA[Intersection]]></type>
313
+ </wpt>
314
+ <wpt lat="42.451430" lon="-71.105413">
315
+ <ele>57.564209</ele>
316
+ <time>2001-11-16T23:03:38Z</time>
317
+ <name>6280</name>
318
+ <desc><![CDATA[6280]]></desc>
319
+ <sym>Dot</sym>
320
+ <type><![CDATA[Dot]]></type>
321
+ </wpt>
322
+ <wpt lat="42.453845" lon="-71.105206">
323
+ <ele>66.696655</ele>
324
+ <time>2001-11-16T23:03:38Z</time>
325
+ <name>6283</name>
326
+ <desc><![CDATA[6283]]></desc>
327
+ <sym>Dot</sym>
328
+ <type><![CDATA[Dot]]></type>
329
+ </wpt>
330
+ <wpt lat="42.459986" lon="-71.106170">
331
+ <ele>72.945191</ele>
332
+ <time>2001-11-16T23:03:38Z</time>
333
+ <name>6289</name>
334
+ <desc><![CDATA[6289]]></desc>
335
+ <sym>Dot</sym>
336
+ <type><![CDATA[Dot]]></type>
337
+ </wpt>
338
+ <wpt lat="42.457616" lon="-71.105116">
339
+ <ele>72.847200</ele>
340
+ <time>2001-06-02T03:27:04Z</time>
341
+ <name>6297</name>
342
+ <desc><![CDATA[6297]]></desc>
343
+ <sym>Dot</sym>
344
+ <type><![CDATA[Intersection]]></type>
345
+ </wpt>
346
+ <wpt lat="42.467110" lon="-71.113574">
347
+ <ele>53.644800</ele>
348
+ <time>2001-06-02T03:27:02Z</time>
349
+ <name>6328</name>
350
+ <desc><![CDATA[6328]]></desc>
351
+ <sym>Dot</sym>
352
+ <type><![CDATA[Intersection]]></type>
353
+ </wpt>
354
+ <wpt lat="42.464202" lon="-71.109863">
355
+ <ele>43.891200</ele>
356
+ <time>2001-06-02T03:27:03Z</time>
357
+ <name>6354</name>
358
+ <desc><![CDATA[6354]]></desc>
359
+ <sym>Dot</sym>
360
+ <type><![CDATA[Intersection]]></type>
361
+ </wpt>
362
+ <wpt lat="42.466459" lon="-71.110067">
363
+ <ele>48.768000</ele>
364
+ <time>2001-06-02T03:27:02Z</time>
365
+ <name>635722</name>
366
+ <desc><![CDATA[635722]]></desc>
367
+ <sym>Dot</sym>
368
+ <type><![CDATA[Intersection]]></type>
369
+ </wpt>
370
+ <wpt lat="42.466557" lon="-71.109410">
371
+ <ele>49.072800</ele>
372
+ <time>2001-06-02T03:27:02Z</time>
373
+ <name>635783</name>
374
+ <desc><![CDATA[635783]]></desc>
375
+ <sym>Dot</sym>
376
+ <type><![CDATA[Intersection]]></type>
377
+ </wpt>
378
+ <wpt lat="42.463495" lon="-71.107117">
379
+ <ele>62.484000</ele>
380
+ <time>2001-06-02T03:27:03Z</time>
381
+ <name>6373</name>
382
+ <desc><![CDATA[6373]]></desc>
383
+ <sym>Dot</sym>
384
+ <type><![CDATA[Intersection]]></type>
385
+ </wpt>
386
+ <wpt lat="42.401051" lon="-71.110241">
387
+ <ele>3.962400</ele>
388
+ <time>2001-06-02T03:26:56Z</time>
389
+ <name>6634</name>
390
+ <desc><![CDATA[6634]]></desc>
391
+ <sym>Dot</sym>
392
+ <type><![CDATA[Intersection]]></type>
393
+ </wpt>
394
+ <wpt lat="42.432621" lon="-71.106532">
395
+ <ele>13.411200</ele>
396
+ <time>2001-06-02T03:26:56Z</time>
397
+ <name>6979</name>
398
+ <desc><![CDATA[6979]]></desc>
399
+ <sym>Dot</sym>
400
+ <type><![CDATA[Intersection]]></type>
401
+ </wpt>
402
+ <wpt lat="42.431033" lon="-71.107883">
403
+ <ele>34.012085</ele>
404
+ <time>2001-11-16T23:03:38Z</time>
405
+ <name>6997</name>
406
+ <desc><![CDATA[6997]]></desc>
407
+ <sym>Dot</sym>
408
+ <type><![CDATA[Dot]]></type>
409
+ </wpt>
410
+ <wpt lat="42.465687" lon="-71.107360">
411
+ <ele>87.782400</ele>
412
+ <time>2001-06-02T03:27:03Z</time>
413
+ <name>BEAR HILL</name>
414
+ <cmt>BEAR HILL TOWER</cmt>
415
+ <desc><![CDATA[Bear Hill Tower]]></desc>
416
+ <sym>Tall Tower</sym>
417
+ <type><![CDATA[Tower]]></type>
418
+ </wpt>
419
+ <wpt lat="42.430950" lon="-71.107628">
420
+ <ele>23.469600</ele>
421
+ <time>2001-06-02T00:18:15Z</time>
422
+ <name>BELLEVUE</name>
423
+ <cmt>BELLEVUE</cmt>
424
+ <desc><![CDATA[Bellevue Parking Lot]]></desc>
425
+ <sym>Parking Area</sym>
426
+ <type><![CDATA[Parking]]></type>
427
+ </wpt>
428
+ <wpt lat="42.438666" lon="-71.114079">
429
+ <ele>43.384766</ele>
430
+ <time>2001-11-28T21:05:28Z</time>
431
+ <name>6016</name>
432
+ <desc><![CDATA[Bike Loop Connector]]></desc>
433
+ <sym>Trailhead</sym>
434
+ <type><![CDATA[Intersection]]></type>
435
+ </wpt>
436
+ <wpt lat="42.456469" lon="-71.124651">
437
+ <ele>89.916000</ele>
438
+ <time>2001-06-02T03:26:59Z</time>
439
+ <name>5236BRIDGE</name>
440
+ <desc><![CDATA[Bridge]]></desc>
441
+ <sym>Bridge</sym>
442
+ <type><![CDATA[Bridge]]></type>
443
+ </wpt>
444
+ <wpt lat="42.465759" lon="-71.119815">
445
+ <ele>55.473600</ele>
446
+ <time>2001-06-02T03:27:01Z</time>
447
+ <name>5376BRIDGE</name>
448
+ <desc><![CDATA[Bridge]]></desc>
449
+ <sym>Bridge</sym>
450
+ <type><![CDATA[Bridge]]></type>
451
+ </wpt>
452
+ <wpt lat="42.442993" lon="-71.105878">
453
+ <ele>52.730400</ele>
454
+ <time>2001-06-02T03:27:05Z</time>
455
+ <name>6181CROSS</name>
456
+ <desc><![CDATA[Crossing]]></desc>
457
+ <sym>Crossing</sym>
458
+ <type><![CDATA[Crossing]]></type>
459
+ </wpt>
460
+ <wpt lat="42.435472" lon="-71.109664">
461
+ <ele>45.110400</ele>
462
+ <time>2001-06-02T03:27:05Z</time>
463
+ <name>6042CROSS</name>
464
+ <desc><![CDATA[Crossing]]></desc>
465
+ <sym>Crossing</sym>
466
+ <type><![CDATA[Crossing]]></type>
467
+ </wpt>
468
+ <wpt lat="42.458516" lon="-71.103646">
469
+ <name>DARKHOLLPO</name>
470
+ <desc><![CDATA[Dark Hollow Pond]]></desc>
471
+ <sym>Fishing Area</sym>
472
+ </wpt>
473
+ <wpt lat="42.443109" lon="-71.112675">
474
+ <ele>56.083200</ele>
475
+ <time>2001-06-02T03:26:57Z</time>
476
+ <name>6121DEAD</name>
477
+ <desc><![CDATA[Dead End]]></desc>
478
+ <sym>Danger Area</sym>
479
+ <type><![CDATA[Dead End]]></type>
480
+ </wpt>
481
+ <wpt lat="42.449866" lon="-71.119298">
482
+ <ele>117.043200</ele>
483
+ <time>2001-06-02T03:26:59Z</time>
484
+ <name>5179DEAD</name>
485
+ <desc><![CDATA[Dead End]]></desc>
486
+ <sym>Danger Area</sym>
487
+ <type><![CDATA[Dead End]]></type>
488
+ </wpt>
489
+ <wpt lat="42.459629" lon="-71.116524">
490
+ <ele>69.494400</ele>
491
+ <time>2001-06-02T03:27:01Z</time>
492
+ <name>5299DEAD</name>
493
+ <desc><![CDATA[Dead End]]></desc>
494
+ <sym>Danger Area</sym>
495
+ <type><![CDATA[Dead End]]></type>
496
+ </wpt>
497
+ <wpt lat="42.465485" lon="-71.119148">
498
+ <ele>56.997600</ele>
499
+ <time>2001-06-02T03:27:02Z</time>
500
+ <name>5376DEAD</name>
501
+ <desc><![CDATA[Dead End]]></desc>
502
+ <sym>Danger Area</sym>
503
+ <type><![CDATA[Dead End]]></type>
504
+ </wpt>
505
+ <wpt lat="42.462776" lon="-71.109986">
506
+ <ele>46.939200</ele>
507
+ <time>2001-06-02T03:27:03Z</time>
508
+ <name>6353DEAD</name>
509
+ <desc><![CDATA[Dead End]]></desc>
510
+ <sym>Danger Area</sym>
511
+ <type><![CDATA[Dead End]]></type>
512
+ </wpt>
513
+ <wpt lat="42.446793" lon="-71.108784">
514
+ <ele>61.264800</ele>
515
+ <time>2001-06-02T03:27:04Z</time>
516
+ <name>6155DEAD</name>
517
+ <desc><![CDATA[Dead End]]></desc>
518
+ <sym>Danger Area</sym>
519
+ <type><![CDATA[Dead End]]></type>
520
+ </wpt>
521
+ <wpt lat="42.451204" lon="-71.126602">
522
+ <ele>110.947200</ele>
523
+ <time>2001-06-02T03:26:59Z</time>
524
+ <name>GATE14</name>
525
+ <desc><![CDATA[Gate 14]]></desc>
526
+ <sym>Truck Stop</sym>
527
+ <type><![CDATA[Road]]></type>
528
+ </wpt>
529
+ <wpt lat="42.458499" lon="-71.122078">
530
+ <ele>77.724000</ele>
531
+ <time>2001-06-02T03:27:00Z</time>
532
+ <name>GATE16</name>
533
+ <desc><![CDATA[Gate 16]]></desc>
534
+ <sym>Truck Stop</sym>
535
+ <type><![CDATA[Road]]></type>
536
+ </wpt>
537
+ <wpt lat="42.459376" lon="-71.119238">
538
+ <ele>65.836800</ele>
539
+ <time>2001-06-02T03:27:01Z</time>
540
+ <name>GATE17</name>
541
+ <desc><![CDATA[Gate 17]]></desc>
542
+ <sym>Truck Stop</sym>
543
+ <type><![CDATA[Road]]></type>
544
+ </wpt>
545
+ <wpt lat="42.466353" lon="-71.119240">
546
+ <ele>57.302400</ele>
547
+ <time>2001-06-02T03:27:02Z</time>
548
+ <name>GATE19</name>
549
+ <desc><![CDATA[Gate 19]]></desc>
550
+ <sym>Truck Stop</sym>
551
+ <type><![CDATA[Road]]></type>
552
+ </wpt>
553
+ <wpt lat="42.468655" lon="-71.107697">
554
+ <ele>49.377600</ele>
555
+ <time>2001-06-02T03:27:03Z</time>
556
+ <name>GATE21</name>
557
+ <desc><![CDATA[Gate 21]]></desc>
558
+ <sym>Truck Stop</sym>
559
+ <type><![CDATA[Road]]></type>
560
+ </wpt>
561
+ <wpt lat="42.456718" lon="-71.102973">
562
+ <ele>81.076800</ele>
563
+ <time>2001-06-02T03:27:03Z</time>
564
+ <name>GATE24</name>
565
+ <desc><![CDATA[Gate 24]]></desc>
566
+ <sym>Truck Stop</sym>
567
+ <type><![CDATA[Road]]></type>
568
+ </wpt>
569
+ <wpt lat="42.430847" lon="-71.107690">
570
+ <ele>21.515015</ele>
571
+ <time>2001-11-28T21:05:28Z</time>
572
+ <name>GATE5</name>
573
+ <desc><![CDATA[Gate 5]]></desc>
574
+ <sym>Truck Stop</sym>
575
+ <type><![CDATA[Truck Stop]]></type>
576
+ </wpt>
577
+ <wpt lat="42.431240" lon="-71.109236">
578
+ <ele>26.561890</ele>
579
+ <time>2001-11-07T23:53:41Z</time>
580
+ <name>GATE6</name>
581
+ <desc><![CDATA[Gate 6]]></desc>
582
+ <sym>Trailhead</sym>
583
+ <type><![CDATA[Trail Head]]></type>
584
+ </wpt>
585
+ <wpt lat="42.439502" lon="-71.106556">
586
+ <ele>32.004000</ele>
587
+ <time>2001-06-02T00:18:16Z</time>
588
+ <name>6077LOGS</name>
589
+ <desc><![CDATA[Log Crossing]]></desc>
590
+ <sym>Amusement Park</sym>
591
+ <type><![CDATA[Obstacle]]></type>
592
+ </wpt>
593
+ <wpt lat="42.449765" lon="-71.122320">
594
+ <ele>119.809082</ele>
595
+ <time>2001-11-07T23:53:41Z</time>
596
+ <name>5148NANEPA</name>
597
+ <desc><![CDATA[Nanepashemet Road Crossing]]></desc>
598
+ <sym>Trailhead</sym>
599
+ <type><![CDATA[Trail Head]]></type>
600
+ </wpt>
601
+ <wpt lat="42.457388" lon="-71.119845">
602
+ <ele>73.761600</ele>
603
+ <time>2001-06-02T03:27:00Z</time>
604
+ <name>5267OBSTAC</name>
605
+ <desc><![CDATA[Obstacle]]></desc>
606
+ <sym>Amusement Park</sym>
607
+ <type><![CDATA[Obstacle]]></type>
608
+ </wpt>
609
+ <wpt lat="42.434980" lon="-71.109942">
610
+ <ele>45.307495</ele>
611
+ <time>2001-11-07T23:53:41Z</time>
612
+ <name>PANTHRCAVE</name>
613
+ <desc><![CDATA[Panther Cave]]></desc>
614
+ <sym>Tunnel</sym>
615
+ <type><![CDATA[Tunnel]]></type>
616
+ </wpt>
617
+ <wpt lat="42.453256" lon="-71.121211">
618
+ <ele>77.992066</ele>
619
+ <time>2001-11-07T23:53:41Z</time>
620
+ <name>5252PURPLE</name>
621
+ <desc><![CDATA[Purple Rock Hill]]></desc>
622
+ <sym>Summit</sym>
623
+ <type><![CDATA[Summit]]></type>
624
+ </wpt>
625
+ <wpt lat="42.457734" lon="-71.117481">
626
+ <ele>67.970400</ele>
627
+ <time>2001-06-02T03:27:01Z</time>
628
+ <name>5287WATER</name>
629
+ <desc><![CDATA[Reservoir]]></desc>
630
+ <sym>Swimming Area</sym>
631
+ <type><![CDATA[Reservoir]]></type>
632
+ </wpt>
633
+ <wpt lat="42.459278" lon="-71.124574">
634
+ <ele>81.076800</ele>
635
+ <time>2001-06-02T03:27:00Z</time>
636
+ <name>5239ROAD</name>
637
+ <desc><![CDATA[Road]]></desc>
638
+ <sym>Truck Stop</sym>
639
+ <type><![CDATA[Road]]></type>
640
+ </wpt>
641
+ <wpt lat="42.458782" lon="-71.118991">
642
+ <ele>67.360800</ele>
643
+ <time>2001-06-02T03:27:01Z</time>
644
+ <name>5278ROAD</name>
645
+ <desc><![CDATA[Road]]></desc>
646
+ <sym>Truck Stop</sym>
647
+ <type><![CDATA[Road]]></type>
648
+ </wpt>
649
+ <wpt lat="42.439993" lon="-71.120925">
650
+ <ele>53.949600</ele>
651
+ <time>2001-06-02T00:18:14Z</time>
652
+ <name>5058ROAD</name>
653
+ <cmt>ROAD CROSSING</cmt>
654
+ <desc><![CDATA[Road Crossing]]></desc>
655
+ <sym>Dot</sym>
656
+ <type><![CDATA[Road Crossing]]></type>
657
+ </wpt>
658
+ <wpt lat="42.453415" lon="-71.106782">
659
+ <ele>69.799200</ele>
660
+ <time>2001-06-02T00:18:13Z</time>
661
+ <name>SHEEPFOLD</name>
662
+ <desc><![CDATA[Sheepfold Parking Lot]]></desc>
663
+ <sym>Parking Area</sym>
664
+ <type><![CDATA[Parking]]></type>
665
+ </wpt>
666
+ <wpt lat="42.455956" lon="-71.107483">
667
+ <ele>64.008000</ele>
668
+ <time>2001-06-02T03:27:04Z</time>
669
+ <name>SOAPBOX</name>
670
+ <desc><![CDATA[Soap Box Derby Track]]></desc>
671
+ <sym>Cemetery</sym>
672
+ <type><![CDATA[Intersection]]></type>
673
+ </wpt>
674
+ <wpt lat="42.465913" lon="-71.119328">
675
+ <ele>64.533692</ele>
676
+ <time>2001-11-07T23:53:41Z</time>
677
+ <name>5376STREAM</name>
678
+ <desc><![CDATA[Stream Crossing]]></desc>
679
+ <sym>Bridge</sym>
680
+ <type><![CDATA[Bridge]]></type>
681
+ </wpt>
682
+ <wpt lat="42.445359" lon="-71.122845">
683
+ <ele>61.649902</ele>
684
+ <time>2001-11-28T21:05:28Z</time>
685
+ <name>5144SUMMIT</name>
686
+ <desc><![CDATA[Summit]]></desc>
687
+ <sym>Summit</sym>
688
+ <type><![CDATA[Summit]]></type>
689
+ </wpt>
690
+ <wpt lat="42.441727" lon="-71.121676">
691
+ <ele>67.360800</ele>
692
+ <time>2001-06-02T00:18:16Z</time>
693
+ <name>5150TANK</name>
694
+ <cmt>WATER TANK</cmt>
695
+ <desc><![CDATA[Water Tank]]></desc>
696
+ <sym>Museum</sym>
697
+ <type><![CDATA[Water Tank]]></type>
698
+ </wpt>
699
+ <rte>
700
+ <name>BELLEVUE</name>
701
+ <desc><![CDATA[Bike Loop Bellevue]]></desc>
702
+ <number>1</number>
703
+ <rtept lat="42.430950" lon="-71.107628">
704
+ <ele>23.469600</ele>
705
+ <time>2001-06-02T00:18:15Z</time>
706
+ <name>BELLEVUE</name>
707
+ <cmt>BELLEVUE</cmt>
708
+ <desc><![CDATA[Bellevue Parking Lot]]></desc>
709
+ <sym>Parking Area</sym>
710
+ <type><![CDATA[Parking]]></type>
711
+ </rtept>
712
+ <rtept lat="42.431240" lon="-71.109236">
713
+ <ele>26.561890</ele>
714
+ <time>2001-11-07T23:53:41Z</time>
715
+ <name>GATE6</name>
716
+ <desc><![CDATA[Gate 6]]></desc>
717
+ <sym>Trailhead</sym>
718
+ <type><![CDATA[Trail Head]]></type>
719
+ </rtept>
720
+ <rtept lat="42.434980" lon="-71.109942">
721
+ <ele>45.307495</ele>
722
+ <time>2001-11-07T23:53:41Z</time>
723
+ <name>PANTHRCAVE</name>
724
+ <desc><![CDATA[Panther Cave]]></desc>
725
+ <sym>Tunnel</sym>
726
+ <type><![CDATA[Tunnel]]></type>
727
+ </rtept>
728
+ <rtept lat="42.436757" lon="-71.113223">
729
+ <ele>37.616943</ele>
730
+ <time>2001-11-28T21:05:28Z</time>
731
+ <name>6014MEADOW</name>
732
+ <desc><![CDATA[6014MEADOW]]></desc>
733
+ <sym>Dot</sym>
734
+ <type><![CDATA[Dot]]></type>
735
+ </rtept>
736
+ <rtept lat="42.439018" lon="-71.114456">
737
+ <ele>56.388000</ele>
738
+ <time>2001-06-02T03:26:55Z</time>
739
+ <name>6006</name>
740
+ <desc><![CDATA[600698]]></desc>
741
+ <sym>Dot</sym>
742
+ <type><![CDATA[Intersection]]></type>
743
+ </rtept>
744
+ <rtept lat="42.438594" lon="-71.114803">
745
+ <ele>46.028564</ele>
746
+ <time>2001-11-28T21:05:28Z</time>
747
+ <name>6006BLUE</name>
748
+ <desc><![CDATA[6006BLUE]]></desc>
749
+ <sym>Dot</sym>
750
+ <type><![CDATA[Dot]]></type>
751
+ </rtept>
752
+ <rtept lat="42.438917" lon="-71.116146">
753
+ <ele>44.826904</ele>
754
+ <time>2001-11-16T23:03:38Z</time>
755
+ <name>5096</name>
756
+ <desc><![CDATA[5096]]></desc>
757
+ <sym>Dot</sym>
758
+ <type><![CDATA[Dot]]></type>
759
+ </rtept>
760
+ <rtept lat="42.438878" lon="-71.119277">
761
+ <ele>44.586548</ele>
762
+ <time>2001-11-28T21:05:28Z</time>
763
+ <name>5066</name>
764
+ <desc><![CDATA[5066]]></desc>
765
+ <sym>Crossing</sym>
766
+ <type><![CDATA[Crossing]]></type>
767
+ </rtept>
768
+ <rtept lat="42.439227" lon="-71.119689">
769
+ <ele>57.607200</ele>
770
+ <time>2001-06-02T03:26:55Z</time>
771
+ <name>5067</name>
772
+ <desc><![CDATA[5067]]></desc>
773
+ <sym>Dot</sym>
774
+ <type><![CDATA[Intersection]]></type>
775
+ </rtept>
776
+ <rtept lat="42.439993" lon="-71.120925">
777
+ <ele>53.949600</ele>
778
+ <time>2001-06-02T00:18:14Z</time>
779
+ <name>5058ROAD</name>
780
+ <cmt>ROAD CROSSING</cmt>
781
+ <desc><![CDATA[Road Crossing]]></desc>
782
+ <sym>Dot</sym>
783
+ <type><![CDATA[Road Crossing]]></type>
784
+ </rtept>
785
+ <rtept lat="42.441727" lon="-71.121676">
786
+ <ele>67.360800</ele>
787
+ <time>2001-06-02T00:18:16Z</time>
788
+ <name>5150TANK</name>
789
+ <cmt>WATER TANK</cmt>
790
+ <desc><![CDATA[Water Tank]]></desc>
791
+ <sym>Museum</sym>
792
+ <type><![CDATA[Water Tank]]></type>
793
+ </rtept>
794
+ <rtept lat="42.443904" lon="-71.122044">
795
+ <ele>50.594727</ele>
796
+ <time>2001-11-28T21:05:28Z</time>
797
+ <name>5142</name>
798
+ <desc><![CDATA[5142]]></desc>
799
+ <sym>Dot</sym>
800
+ <type><![CDATA[Dot]]></type>
801
+ </rtept>
802
+ <rtept lat="42.445359" lon="-71.122845">
803
+ <ele>61.649902</ele>
804
+ <time>2001-11-28T21:05:28Z</time>
805
+ <name>5144SUMMIT</name>
806
+ <desc><![CDATA[Summit]]></desc>
807
+ <sym>Summit</sym>
808
+ <type><![CDATA[Summit]]></type>
809
+ </rtept>
810
+ <rtept lat="42.447298" lon="-71.121447">
811
+ <ele>127.711200</ele>
812
+ <time>2001-06-02T03:26:58Z</time>
813
+ <name>5156</name>
814
+ <desc><![CDATA[5156]]></desc>
815
+ <sym>Dot</sym>
816
+ <type><![CDATA[Intersection]]></type>
817
+ </rtept>
818
+ <rtept lat="42.449765" lon="-71.122320">
819
+ <ele>119.809082</ele>
820
+ <time>2001-11-07T23:53:41Z</time>
821
+ <name>5148NANEPA</name>
822
+ <desc><![CDATA[Nanepashemet Road Crossing]]></desc>
823
+ <sym>Trailhead</sym>
824
+ <type><![CDATA[Trail Head]]></type>
825
+ </rtept>
826
+ <rtept lat="42.451442" lon="-71.121746">
827
+ <ele>74.627442</ele>
828
+ <time>2001-11-07T23:53:41Z</time>
829
+ <name>5258</name>
830
+ <desc><![CDATA[5258]]></desc>
831
+ <sym>Dot</sym>
832
+ <type><![CDATA[Dot]]></type>
833
+ </rtept>
834
+ <rtept lat="42.453256" lon="-71.121211">
835
+ <ele>77.992066</ele>
836
+ <time>2001-11-07T23:53:41Z</time>
837
+ <name>5252PURPLE</name>
838
+ <desc><![CDATA[Purple Rock Hill]]></desc>
839
+ <sym>Summit</sym>
840
+ <type><![CDATA[Summit]]></type>
841
+ </rtept>
842
+ <rtept lat="42.456252" lon="-71.119356">
843
+ <ele>78.713135</ele>
844
+ <time>2001-11-07T23:53:41Z</time>
845
+ <name>527631</name>
846
+ <desc><![CDATA[527631]]></desc>
847
+ <sym>Dot</sym>
848
+ <type><![CDATA[Dot]]></type>
849
+ </rtept>
850
+ <rtept lat="42.456592" lon="-71.119676">
851
+ <ele>78.713135</ele>
852
+ <time>2001-11-07T23:53:41Z</time>
853
+ <name>527614</name>
854
+ <desc><![CDATA[527614]]></desc>
855
+ <sym>Dot</sym>
856
+ <type><![CDATA[Dot]]></type>
857
+ </rtept>
858
+ <rtept lat="42.457388" lon="-71.119845">
859
+ <ele>73.761600</ele>
860
+ <time>2001-06-02T03:27:00Z</time>
861
+ <name>5267OBSTAC</name>
862
+ <desc><![CDATA[Obstacle]]></desc>
863
+ <sym>Amusement Park</sym>
864
+ <type><![CDATA[Obstacle]]></type>
865
+ </rtept>
866
+ <rtept lat="42.458148" lon="-71.119135">
867
+ <ele>68.275200</ele>
868
+ <time>2001-06-02T03:27:00Z</time>
869
+ <name>5278</name>
870
+ <desc><![CDATA[5278]]></desc>
871
+ <sym>Dot</sym>
872
+ <type><![CDATA[Intersection]]></type>
873
+ </rtept>
874
+ <rtept lat="42.459377" lon="-71.117693">
875
+ <ele>64.008000</ele>
876
+ <time>2001-06-02T03:27:01Z</time>
877
+ <name>5289</name>
878
+ <desc><![CDATA[5289]]></desc>
879
+ <sym>Dot</sym>
880
+ <type><![CDATA[Intersection]]></type>
881
+ </rtept>
882
+ <rtept lat="42.464183" lon="-71.119828">
883
+ <ele>52.997925</ele>
884
+ <time>2001-11-28T21:05:28Z</time>
885
+ <name>5374FIRE</name>
886
+ <desc><![CDATA[5374FIRE]]></desc>
887
+ <sym>Dot</sym>
888
+ <type><![CDATA[Dot]]></type>
889
+ </rtept>
890
+ <rtept lat="42.465650" lon="-71.119399">
891
+ <ele>56.388000</ele>
892
+ <time>2001-06-02T03:27:02Z</time>
893
+ <name>5376</name>
894
+ <desc><![CDATA[5376]]></desc>
895
+ <sym>Dot</sym>
896
+ <type><![CDATA[Intersection]]></type>
897
+ </rtept>
898
+ <rtept lat="42.465913" lon="-71.119328">
899
+ <ele>64.533692</ele>
900
+ <time>2001-11-07T23:53:41Z</time>
901
+ <name>5376STREAM</name>
902
+ <desc><![CDATA[Stream Crossing]]></desc>
903
+ <sym>Bridge</sym>
904
+ <type><![CDATA[Bridge]]></type>
905
+ </rtept>
906
+ <rtept lat="42.467110" lon="-71.113574">
907
+ <ele>53.644800</ele>
908
+ <time>2001-06-02T03:27:02Z</time>
909
+ <name>6328</name>
910
+ <desc><![CDATA[6328]]></desc>
911
+ <sym>Dot</sym>
912
+ <type><![CDATA[Intersection]]></type>
913
+ </rtept>
914
+ <rtept lat="42.466459" lon="-71.110067">
915
+ <ele>48.768000</ele>
916
+ <time>2001-06-02T03:27:02Z</time>
917
+ <name>635722</name>
918
+ <desc><![CDATA[635722]]></desc>
919
+ <sym>Dot</sym>
920
+ <type><![CDATA[Intersection]]></type>
921
+ </rtept>
922
+ <rtept lat="42.466557" lon="-71.109410">
923
+ <ele>49.072800</ele>
924
+ <time>2001-06-02T03:27:02Z</time>
925
+ <name>635783</name>
926
+ <desc><![CDATA[635783]]></desc>
927
+ <sym>Dot</sym>
928
+ <type><![CDATA[Intersection]]></type>
929
+ </rtept>
930
+ <rtept lat="42.463495" lon="-71.107117">
931
+ <ele>62.484000</ele>
932
+ <time>2001-06-02T03:27:03Z</time>
933
+ <name>6373</name>
934
+ <desc><![CDATA[6373]]></desc>
935
+ <sym>Dot</sym>
936
+ <type><![CDATA[Intersection]]></type>
937
+ </rtept>
938
+ <rtept lat="42.465687" lon="-71.107360">
939
+ <ele>87.782400</ele>
940
+ <time>2001-06-02T03:27:03Z</time>
941
+ <name>BEAR HILL</name>
942
+ <cmt>BEAR HILL TOWER</cmt>
943
+ <desc><![CDATA[Bear Hill Tower]]></desc>
944
+ <sym>Tall Tower</sym>
945
+ <type><![CDATA[Tower]]></type>
946
+ </rtept>
947
+ <rtept lat="42.459986" lon="-71.106170">
948
+ <ele>72.945191</ele>
949
+ <time>2001-11-16T23:03:38Z</time>
950
+ <name>6289</name>
951
+ <desc><![CDATA[6289]]></desc>
952
+ <sym>Dot</sym>
953
+ <type><![CDATA[Dot]]></type>
954
+ </rtept>
955
+ <rtept lat="42.457616" lon="-71.105116">
956
+ <ele>72.847200</ele>
957
+ <time>2001-06-02T03:27:04Z</time>
958
+ <name>6297</name>
959
+ <desc><![CDATA[6297]]></desc>
960
+ <sym>Dot</sym>
961
+ <type><![CDATA[Intersection]]></type>
962
+ </rtept>
963
+ <rtept lat="42.453845" lon="-71.105206">
964
+ <ele>66.696655</ele>
965
+ <time>2001-11-16T23:03:38Z</time>
966
+ <name>6283</name>
967
+ <desc><![CDATA[6283]]></desc>
968
+ <sym>Dot</sym>
969
+ <type><![CDATA[Dot]]></type>
970
+ </rtept>
971
+ <rtept lat="42.451430" lon="-71.105413">
972
+ <ele>57.564209</ele>
973
+ <time>2001-11-16T23:03:38Z</time>
974
+ <name>6280</name>
975
+ <desc><![CDATA[6280]]></desc>
976
+ <sym>Dot</sym>
977
+ <type><![CDATA[Dot]]></type>
978
+ </rtept>
979
+ <rtept lat="42.448448" lon="-71.106158">
980
+ <ele>62.179200</ele>
981
+ <time>2001-06-02T03:27:04Z</time>
982
+ <name>6177</name>
983
+ <desc><![CDATA[6177]]></desc>
984
+ <sym>Dot</sym>
985
+ <type><![CDATA[Intersection]]></type>
986
+ </rtept>
987
+ <rtept lat="42.447804" lon="-71.106624">
988
+ <ele>62.484000</ele>
989
+ <time>2001-06-02T03:27:04Z</time>
990
+ <name>6176</name>
991
+ <desc><![CDATA[6176]]></desc>
992
+ <sym>Dot</sym>
993
+ <type><![CDATA[Intersection]]></type>
994
+ </rtept>
995
+ <rtept lat="42.444773" lon="-71.108882">
996
+ <ele>62.788800</ele>
997
+ <time>2001-06-02T03:27:05Z</time>
998
+ <name>6153</name>
999
+ <desc><![CDATA[6153]]></desc>
1000
+ <sym>Dot</sym>
1001
+ <type><![CDATA[Intersection]]></type>
1002
+ </rtept>
1003
+ <rtept lat="42.443592" lon="-71.106301">
1004
+ <ele>55.473600</ele>
1005
+ <time>2001-06-02T03:27:05Z</time>
1006
+ <name>6171</name>
1007
+ <desc><![CDATA[6171]]></desc>
1008
+ <sym>Dot</sym>
1009
+ <type><![CDATA[Intersection]]></type>
1010
+ </rtept>
1011
+ <rtept lat="42.442981" lon="-71.111441">
1012
+ <ele>64.008000</ele>
1013
+ <time>2001-06-02T03:26:58Z</time>
1014
+ <name>6131</name>
1015
+ <desc><![CDATA[6131]]></desc>
1016
+ <sym>Dot</sym>
1017
+ <type><![CDATA[Intersection]]></type>
1018
+ </rtept>
1019
+ <rtept lat="42.442196" lon="-71.110975">
1020
+ <ele>64.008000</ele>
1021
+ <time>2001-06-02T03:26:55Z</time>
1022
+ <name>6130</name>
1023
+ <desc><![CDATA[6130]]></desc>
1024
+ <sym>Dot</sym>
1025
+ <type><![CDATA[Intersection]]></type>
1026
+ </rtept>
1027
+ <rtept lat="42.441754" lon="-71.113220">
1028
+ <ele>56.388000</ele>
1029
+ <time>2001-06-02T03:26:55Z</time>
1030
+ <name>6029</name>
1031
+ <desc><![CDATA[6029]]></desc>
1032
+ <sym>Dot</sym>
1033
+ <type><![CDATA[Intersection]]></type>
1034
+ </rtept>
1035
+ <rtept lat="42.439018" lon="-71.114456">
1036
+ <ele>56.388000</ele>
1037
+ <time>2001-06-02T03:26:55Z</time>
1038
+ <name>6006</name>
1039
+ <desc><![CDATA[600698]]></desc>
1040
+ <sym>Dot</sym>
1041
+ <type><![CDATA[Intersection]]></type>
1042
+ </rtept>
1043
+ <rtept lat="42.436757" lon="-71.113223">
1044
+ <ele>37.616943</ele>
1045
+ <time>2001-11-28T21:05:28Z</time>
1046
+ <name>6014MEADOW</name>
1047
+ <desc><![CDATA[6014MEADOW]]></desc>
1048
+ <sym>Dot</sym>
1049
+ <type><![CDATA[Dot]]></type>
1050
+ </rtept>
1051
+ <rtept lat="42.434980" lon="-71.109942">
1052
+ <ele>45.307495</ele>
1053
+ <time>2001-11-07T23:53:41Z</time>
1054
+ <name>PANTHRCAVE</name>
1055
+ <desc><![CDATA[Panther Cave]]></desc>
1056
+ <sym>Tunnel</sym>
1057
+ <type><![CDATA[Tunnel]]></type>
1058
+ </rtept>
1059
+ <rtept lat="42.431240" lon="-71.109236">
1060
+ <ele>26.561890</ele>
1061
+ <time>2001-11-07T23:53:41Z</time>
1062
+ <name>GATE6</name>
1063
+ <desc><![CDATA[Gate 6]]></desc>
1064
+ <sym>Trailhead</sym>
1065
+ <type><![CDATA[Trail Head]]></type>
1066
+ </rtept>
1067
+ <rtept lat="42.430950" lon="-71.107628">
1068
+ <ele>23.469600</ele>
1069
+ <time>2001-06-02T00:18:15Z</time>
1070
+ <name>BELLEVUE</name>
1071
+ <cmt>BELLEVUE</cmt>
1072
+ <desc><![CDATA[Bellevue Parking Lot]]></desc>
1073
+ <sym>Parking Area</sym>
1074
+ <type><![CDATA[Parking]]></type>
1075
+ </rtept>
1076
+ </rte>
1077
+ </gpx>