translink 2.0.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +18 -0
- data/README.md +26 -15
- data/doc/schema.graffle +67 -69
- data/doc/schema.png +0 -0
- data/lib/translink/cli.rb +35 -9
- data/lib/translink/crawler.rb +41 -8
- data/lib/translink/db.rb +46 -2
- data/lib/translink/model/route.rb +14 -6
- data/lib/translink/model/stop.rb +2 -3
- data/lib/translink/model/stop_time.rb +3 -2
- data/lib/translink/model/trip.rb +11 -9
- data/lib/translink/page.rb +16 -6
- data/lib/translink/page/route.rb +41 -2
- data/lib/translink/page/timetable.rb +13 -6
- data/lib/translink/page/trip.rb +13 -19
- data/lib/translink/version.rb +1 -1
- data/test/fixtures/sample/route.html +1 -1
- data/test/fixtures/verbatim/route.html +294 -270
- data/test/fixtures/verbatim/route/date_from_anchor.html +2727 -0
- data/test/fixtures/verbatim/timetable/duplicate_routes.html +2293 -0
- data/test/fixtures/verbatim/trip/duplicate_stop_times.html +589 -0
- data/test/unit/cli_test.rb +26 -7
- data/test/unit/model/route_test.rb +3 -2
- data/test/unit/model/trip_test.rb +3 -3
- data/test/unit/page/route_test.rb +36 -5
- data/test/unit/page/timetable_test.rb +29 -0
- data/test/unit/page/trip_test.rb +12 -5
- data/translink.gemspec +3 -3
- metadata +62 -21
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 2012-12-14 / v3.0.0
|
4
|
+
|
5
|
+
* Update Mechanize to 2.5.1.
|
6
|
+
* Add version command. Prints the current version.
|
7
|
+
* Drop auto incrementing primary keys.
|
8
|
+
* Add uniqueness constraints to primary keys.
|
9
|
+
* Rename routes.id -> routes.route_id. Type changed to TEXT. Value is short name provided by Translink.
|
10
|
+
* Rename trips.id -> trips.trip_id. Value is trip id provided by Translink.
|
11
|
+
* Rename stops.id -> stops.stop_id. Type changed to TEXT. Value is stop id provided by Translink.
|
12
|
+
* Primary key on stop_times is now composite of stop_times.arrival_time, stop_times.trip_id and stop_times.stop_id.
|
13
|
+
* Change Page::Route#trip_pages to only return trips for the given date.
|
14
|
+
* Schema is created with SQL as opposed to DM's automatic migrations.
|
15
|
+
* Change short name for some routes. CGLD -> CityGlider, LOOP -> City Loop and SHLP -> Spring Hill City Loop.
|
16
|
+
* Some routes and stop times have duplicates. Only persist unique sets.
|
17
|
+
* Add exception handling. Retry HTTP requests with bad responses. Skip and output page if it cannot be resolved.
|
18
|
+
* Enforce integrity with foreign key constraints.
|
19
|
+
* Resume scraping from a specific route and limit number of subsequent routes.
|
20
|
+
|
3
21
|
## 2012-07-21 / v2.0.0
|
4
22
|
|
5
23
|
* Add headsign column to trips table.
|
data/README.md
CHANGED
@@ -2,17 +2,16 @@
|
|
2
2
|
|
3
3
|
[![Build Status](https://secure.travis-ci.org/tatey/translink.png)](http://travis-ci.org/tatey/translink)
|
4
4
|
|
5
|
-
[
|
5
|
+
[TransLink](http://translink.com.au/) (Organisation) coordinates public transport operations in
|
6
6
|
South-East Queensland. Their website has an abundance of data with no easy way for a developer
|
7
7
|
to query it.
|
8
8
|
|
9
9
|
Translink (Program) scrapes bus routes, trips, stops and times into a relational database.
|
10
10
|
The schema is a subset of the [General Transit Feed Specification](https://developers.google.com/transit/gtfs/reference).
|
11
|
-
Data is sourced from the [
|
11
|
+
Data is sourced from the [TransLink website](http://translink.com.au/).You should be
|
12
12
|
aware their data is protected by [copyright](http://translink.com.au/site-information/legal/copyright).
|
13
13
|
|
14
|
-
|
15
|
-
have been working on an app for iOS called [Next Stop](http://nextstop.me).
|
14
|
+
Translink (Program) was created to provide data for my iOS app, [Next Stop](http://nextstop.me).
|
16
15
|
|
17
16
|
## Installation
|
18
17
|
|
@@ -32,24 +31,31 @@ them into a SQLite database named "2011-11-24.sqlite3" in the current working di
|
|
32
31
|
|
33
32
|
Change the path to the SQLite database.
|
34
33
|
|
35
|
-
$ translink scrape 2011-11-24
|
34
|
+
$ translink scrape 2011-11-24 ~/Downloads/translink.sqlite3
|
35
|
+
|
36
|
+
Get a specific route.
|
37
|
+
|
38
|
+
$ translink scrape 2011-11-24 ~/Desktop/translink.sqlite3 http://jp.translink.com.au/travel-information/network-information/buses/435/2011-11-24 0"
|
36
39
|
|
37
40
|
## Queries
|
38
41
|
|
39
42
|
Stops the 130 visits on the outbound trip.
|
40
43
|
|
41
|
-
SELECT
|
42
|
-
|
43
|
-
INNER JOIN
|
44
|
-
INNER JOIN
|
45
|
-
|
44
|
+
SELECT stops.*, stop_times.*
|
45
|
+
FROM routes
|
46
|
+
INNER JOIN trips ON trips.route_id = routes.route_id
|
47
|
+
INNER JOIN stop_times ON stop_times.trip_id = trips.trip_id
|
48
|
+
INNER JOIN stops ON stops.stop_id = stop_times.stop_id
|
49
|
+
WHERE routes.short_name = '130' AND trips.headsign = 'outbound'
|
50
|
+
GROUP BY stops.stop_id
|
51
|
+
ORDER BY stop_times.stop_sequence;
|
46
52
|
|
47
53
|
Routes that visit the 'Calam Rd near Honeywood St' stop.
|
48
54
|
|
49
|
-
SELECT DISTINCT(routes.
|
50
|
-
INNER JOIN stop_times ON stop_times.stop_id = stops.
|
51
|
-
INNER JOIN trips ON stop_times.trip_id = trips.
|
52
|
-
INNER JOIN routes ON routes.
|
55
|
+
SELECT DISTINCT(routes.short_name) FROM stops
|
56
|
+
INNER JOIN stop_times ON stop_times.stop_id = stops.stop_id
|
57
|
+
INNER JOIN trips ON stop_times.trip_id = trips.trip_id
|
58
|
+
INNER JOIN routes ON routes.route_id = trips.route_id
|
53
59
|
WHERE stops.stop_name = 'Calam Rd near Honeywood St';
|
54
60
|
|
55
61
|
## Schema
|
@@ -59,6 +65,11 @@ defined by Google for [Google Transit](https://developers.google.com/transit/goo
|
|
59
65
|
|
60
66
|
![Class Analysis Diagram](https://github.com/tatey/translink/raw/master/doc/schema.png)
|
61
67
|
|
68
|
+
### Deviations from the General Transit Feed Specification
|
69
|
+
|
70
|
+
* `trips.service_id` is omitted. This cannot be extracted from the dataset.
|
71
|
+
* `routes.agency_id` is omitted. There is only one agent. The agent is Brisbane Transport.
|
72
|
+
|
62
73
|
## Contributing
|
63
74
|
|
64
75
|
If you would like to help, please browse the [issues](https://github.com/tatey/translink/issues).
|
@@ -76,4 +87,4 @@ If you would like to help, please browse the [issues](https://github.com/tatey/t
|
|
76
87
|
Doing something interesting with this data? Shoot me an [e-mail](mailto:tate@tatey.com). I'd love to see how
|
77
88
|
this is being used. An acknowledgement of this project is appreciated, but not required.
|
78
89
|
|
79
|
-
Copyright © 2011 Tate Johnson. Released under the MIT license. See LICENSE.
|
90
|
+
Copyright © 2011-2012 Tate Johnson. Released under the MIT license. See LICENSE.
|
data/doc/schema.graffle
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
<key>ApplicationVersion</key>
|
8
8
|
<array>
|
9
9
|
<string>com.omnigroup.OmniGraffle</string>
|
10
|
-
<string>139.
|
10
|
+
<string>139.16.0.171715</string>
|
11
11
|
</array>
|
12
12
|
<key>AutoAdjust</key>
|
13
13
|
<true/>
|
@@ -53,7 +53,7 @@
|
|
53
53
|
<array>
|
54
54
|
<dict>
|
55
55
|
<key>Bounds</key>
|
56
|
-
<string>{{493.
|
56
|
+
<string>{{493.07620422923145, 342.23403515968295}, {16, 14}}</string>
|
57
57
|
<key>Class</key>
|
58
58
|
<string>ShapedGraphic</string>
|
59
59
|
<key>FitText</key>
|
@@ -98,8 +98,8 @@
|
|
98
98
|
<key>Align</key>
|
99
99
|
<integer>0</integer>
|
100
100
|
<key>Text</key>
|
101
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
102
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
101
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
102
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
103
103
|
{\colortbl;\red255\green255\blue255;}
|
104
104
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
105
105
|
|
@@ -110,7 +110,7 @@
|
|
110
110
|
</dict>
|
111
111
|
<dict>
|
112
112
|
<key>Bounds</key>
|
113
|
-
<string>{{462.
|
113
|
+
<string>{{462.65137810532838, 345.82730563367841}, {15, 14}}</string>
|
114
114
|
<key>Class</key>
|
115
115
|
<string>ShapedGraphic</string>
|
116
116
|
<key>FitText</key>
|
@@ -155,8 +155,8 @@
|
|
155
155
|
<key>Align</key>
|
156
156
|
<integer>0</integer>
|
157
157
|
<key>Text</key>
|
158
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
159
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
158
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
159
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
160
160
|
{\colortbl;\red255\green255\blue255;}
|
161
161
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
162
162
|
|
@@ -179,8 +179,8 @@
|
|
179
179
|
<integer>87</integer>
|
180
180
|
<key>Points</key>
|
181
181
|
<array>
|
182
|
-
<string>{456.
|
183
|
-
<string>{514.
|
182
|
+
<string>{456.49998236712037, 361.27562669605123}</string>
|
183
|
+
<string>{514.8542361855632, 360.78535600795692}</string>
|
184
184
|
</array>
|
185
185
|
<key>Style</key>
|
186
186
|
<dict>
|
@@ -204,7 +204,7 @@
|
|
204
204
|
</dict>
|
205
205
|
<dict>
|
206
206
|
<key>Bounds</key>
|
207
|
-
<string>{{338.
|
207
|
+
<string>{{338.31344253872902, 346.75293510081792}, {15, 14}}</string>
|
208
208
|
<key>Class</key>
|
209
209
|
<string>ShapedGraphic</string>
|
210
210
|
<key>FitText</key>
|
@@ -249,8 +249,8 @@
|
|
249
249
|
<key>Align</key>
|
250
250
|
<integer>0</integer>
|
251
251
|
<key>Text</key>
|
252
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
253
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
252
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
253
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
254
254
|
{\colortbl;\red255\green255\blue255;}
|
255
255
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
256
256
|
|
@@ -263,7 +263,7 @@
|
|
263
263
|
</dict>
|
264
264
|
<dict>
|
265
265
|
<key>Bounds</key>
|
266
|
-
<string>{{309.
|
266
|
+
<string>{{309.7456362270371, 343.59928755895874}, {16, 14}}</string>
|
267
267
|
<key>Class</key>
|
268
268
|
<string>ShapedGraphic</string>
|
269
269
|
<key>FitText</key>
|
@@ -308,8 +308,8 @@
|
|
308
308
|
<key>Align</key>
|
309
309
|
<integer>0</integer>
|
310
310
|
<key>Text</key>
|
311
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
312
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
311
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
312
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
313
313
|
{\colortbl;\red255\green255\blue255;}
|
314
314
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
315
315
|
|
@@ -330,8 +330,8 @@
|
|
330
330
|
<integer>75</integer>
|
331
331
|
<key>Points</key>
|
332
332
|
<array>
|
333
|
-
<string>{301.
|
334
|
-
<string>{359.
|
333
|
+
<string>{301.14577222262562, 362.37250438371717}</string>
|
334
|
+
<string>{359.50001057832003, 361.99878605821311}</string>
|
335
335
|
</array>
|
336
336
|
<key>Style</key>
|
337
337
|
<dict>
|
@@ -355,7 +355,7 @@
|
|
355
355
|
</dict>
|
356
356
|
<dict>
|
357
357
|
<key>Bounds</key>
|
358
|
-
<string>{{183.
|
358
|
+
<string>{{183.06749558062364, 346.96415429228767}, {15, 14}}</string>
|
359
359
|
<key>Class</key>
|
360
360
|
<string>ShapedGraphic</string>
|
361
361
|
<key>FitText</key>
|
@@ -400,8 +400,8 @@
|
|
400
400
|
<key>Align</key>
|
401
401
|
<integer>0</integer>
|
402
402
|
<key>Text</key>
|
403
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
404
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
403
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
404
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
405
405
|
{\colortbl;\red255\green255\blue255;}
|
406
406
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
407
407
|
|
@@ -414,7 +414,7 @@
|
|
414
414
|
</dict>
|
415
415
|
<dict>
|
416
416
|
<key>Bounds</key>
|
417
|
-
<string>{{154.
|
417
|
+
<string>{{154.54299826675529, 343.44610658849467}, {16, 14}}</string>
|
418
418
|
<key>Class</key>
|
419
419
|
<string>ShapedGraphic</string>
|
420
420
|
<key>FitText</key>
|
@@ -459,8 +459,8 @@
|
|
459
459
|
<key>Align</key>
|
460
460
|
<integer>0</integer>
|
461
461
|
<key>Text</key>
|
462
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
463
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
462
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
463
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
464
464
|
{\colortbl;\red255\green255\blue255;}
|
465
465
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
466
466
|
|
@@ -481,8 +481,8 @@
|
|
481
481
|
<integer>72</integer>
|
482
482
|
<key>Points</key>
|
483
483
|
<array>
|
484
|
-
<string>{145.
|
485
|
-
<string>{204.
|
484
|
+
<string>{145.79155409933105, 362.00265871394515}</string>
|
485
|
+
<string>{204.14579179210202, 362.38712974459622}</string>
|
486
486
|
</array>
|
487
487
|
<key>Style</key>
|
488
488
|
<dict>
|
@@ -533,8 +533,8 @@
|
|
533
533
|
<key>Text</key>
|
534
534
|
<dict>
|
535
535
|
<key>Text</key>
|
536
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
537
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
536
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
537
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
538
538
|
{\colortbl;\red255\green255\blue255;}
|
539
539
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
|
540
540
|
|
@@ -547,7 +547,7 @@
|
|
547
547
|
</dict>
|
548
548
|
<dict>
|
549
549
|
<key>Bounds</key>
|
550
|
-
<string>{{360, 333.68310546875}, {96,
|
550
|
+
<string>{{360, 333.68310546875}, {96, 56}}</string>
|
551
551
|
<key>Class</key>
|
552
552
|
<string>ShapedGraphic</string>
|
553
553
|
<key>FitText</key>
|
@@ -571,17 +571,20 @@
|
|
571
571
|
<key>Align</key>
|
572
572
|
<integer>0</integer>
|
573
573
|
<key>Text</key>
|
574
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
575
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
574
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
575
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
576
576
|
{\colortbl;\red255\green255\blue255;}
|
577
577
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
578
578
|
|
579
|
-
\f0\b\fs24 \cf0 \ul \ulc0
|
579
|
+
\f0\b\fs24 \cf0 \ul \ulc0 arrival_time
|
580
580
|
\b0 \ulnone \
|
581
|
-
arrival_time\
|
582
581
|
stop_sequence\
|
583
|
-
\
|
584
|
-
|
582
|
+
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
583
|
+
|
584
|
+
\b \cf0 \ul \ulc0 stop_id
|
585
|
+
\b0 \ulnone \
|
586
|
+
|
587
|
+
\b \ul trip_id}</string>
|
585
588
|
<key>VerticalPad</key>
|
586
589
|
<integer>0</integer>
|
587
590
|
</dict>
|
@@ -605,7 +608,7 @@ stop_sequence\
|
|
605
608
|
<array>
|
606
609
|
<dict>
|
607
610
|
<key>Bounds</key>
|
608
|
-
<string>{{515.35421752929688,
|
611
|
+
<string>{{515.35421752929688, 318.36622619628906}, {96, 14}}</string>
|
609
612
|
<key>Class</key>
|
610
613
|
<string>ShapedGraphic</string>
|
611
614
|
<key>FitText</key>
|
@@ -627,8 +630,8 @@ stop_sequence\
|
|
627
630
|
<key>Text</key>
|
628
631
|
<dict>
|
629
632
|
<key>Text</key>
|
630
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
631
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
633
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
634
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
632
635
|
{\colortbl;\red255\green255\blue255;}
|
633
636
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
|
634
637
|
|
@@ -641,7 +644,7 @@ stop_sequence\
|
|
641
644
|
</dict>
|
642
645
|
<dict>
|
643
646
|
<key>Bounds</key>
|
644
|
-
<string>{{515.35421752929688,
|
647
|
+
<string>{{515.35421752929688, 332.36622619628906}, {96, 56}}</string>
|
645
648
|
<key>Class</key>
|
646
649
|
<string>ShapedGraphic</string>
|
647
650
|
<key>FitText</key>
|
@@ -665,14 +668,13 @@ stop_sequence\
|
|
665
668
|
<key>Align</key>
|
666
669
|
<integer>0</integer>
|
667
670
|
<key>Text</key>
|
668
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
669
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
671
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
672
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
670
673
|
{\colortbl;\red255\green255\blue255;}
|
671
674
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
672
675
|
|
673
|
-
\f0\b\fs24 \cf0 \ul \ulc0
|
676
|
+
\f0\b\fs24 \cf0 \ul \ulc0 stop_id
|
674
677
|
\b0 \ulnone \
|
675
|
-
stop_id\
|
676
678
|
stop_name\
|
677
679
|
stop_lat\
|
678
680
|
stop_lon}</string>
|
@@ -699,7 +701,7 @@ stop_lon}</string>
|
|
699
701
|
<array>
|
700
702
|
<dict>
|
701
703
|
<key>Bounds</key>
|
702
|
-
<string>{{204.64578247070312,
|
704
|
+
<string>{{204.64578247070312, 320.68311309814453}, {96, 14}}</string>
|
703
705
|
<key>Class</key>
|
704
706
|
<string>ShapedGraphic</string>
|
705
707
|
<key>FitText</key>
|
@@ -721,8 +723,8 @@ stop_lon}</string>
|
|
721
723
|
<key>Text</key>
|
722
724
|
<dict>
|
723
725
|
<key>Text</key>
|
724
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
725
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
726
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
727
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
726
728
|
{\colortbl;\red255\green255\blue255;}
|
727
729
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
|
728
730
|
|
@@ -735,7 +737,7 @@ stop_lon}</string>
|
|
735
737
|
</dict>
|
736
738
|
<dict>
|
737
739
|
<key>Bounds</key>
|
738
|
-
<string>{{204.64578247070312,
|
740
|
+
<string>{{204.64578247070312, 334.68311309814453}, {96, 56}}</string>
|
739
741
|
<key>Class</key>
|
740
742
|
<string>ShapedGraphic</string>
|
741
743
|
<key>FitText</key>
|
@@ -759,18 +761,15 @@ stop_lon}</string>
|
|
759
761
|
<key>Align</key>
|
760
762
|
<integer>0</integer>
|
761
763
|
<key>Text</key>
|
762
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
763
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
764
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
765
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
764
766
|
{\colortbl;\red255\green255\blue255;}
|
765
767
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
766
768
|
|
767
|
-
\f0\b\fs24 \cf0 \ul \ulc0
|
769
|
+
\f0\b\fs24 \cf0 \ul \ulc0 trip_id
|
768
770
|
\b0 \ulnone \
|
769
771
|
direction\
|
770
|
-
\
|
771
|
-
\cf0 service_id\
|
772
|
-
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
773
|
-
\cf0 trip_id\
|
772
|
+
trip_id\
|
774
773
|
\ul route_id}</string>
|
775
774
|
<key>VerticalPad</key>
|
776
775
|
<integer>0</integer>
|
@@ -795,7 +794,7 @@ direction\
|
|
795
794
|
<array>
|
796
795
|
<dict>
|
797
796
|
<key>Bounds</key>
|
798
|
-
<string>{{49.29156494140625,
|
797
|
+
<string>{{49.29156494140625, 319.68311309814453}, {96, 14}}</string>
|
799
798
|
<key>Class</key>
|
800
799
|
<string>ShapedGraphic</string>
|
801
800
|
<key>FitText</key>
|
@@ -817,8 +816,8 @@ direction\
|
|
817
816
|
<key>Text</key>
|
818
817
|
<dict>
|
819
818
|
<key>Text</key>
|
820
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
821
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
819
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
820
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
822
821
|
{\colortbl;\red255\green255\blue255;}
|
823
822
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
|
824
823
|
|
@@ -831,7 +830,7 @@ direction\
|
|
831
830
|
</dict>
|
832
831
|
<dict>
|
833
832
|
<key>Bounds</key>
|
834
|
-
<string>{{49.29156494140625,
|
833
|
+
<string>{{49.29156494140625, 333.68311309814453}, {96, 56}}</string>
|
835
834
|
<key>Class</key>
|
836
835
|
<string>ShapedGraphic</string>
|
837
836
|
<key>FitText</key>
|
@@ -855,14 +854,13 @@ direction\
|
|
855
854
|
<key>Align</key>
|
856
855
|
<integer>0</integer>
|
857
856
|
<key>Text</key>
|
858
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
859
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
857
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
858
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
860
859
|
{\colortbl;\red255\green255\blue255;}
|
861
860
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
862
861
|
|
863
|
-
\f0\b\fs24 \cf0 \ul \ulc0
|
862
|
+
\f0\b\fs24 \cf0 \ul \ulc0 route_id
|
864
863
|
\b0 \ulnone \
|
865
|
-
route_id\
|
866
864
|
short_name\
|
867
865
|
long_name\
|
868
866
|
route_type}</string>
|
@@ -884,7 +882,7 @@ route_type}</string>
|
|
884
882
|
</dict>
|
885
883
|
<dict>
|
886
884
|
<key>Bounds</key>
|
887
|
-
<string>{{49.291564470703122,
|
885
|
+
<string>{{49.291564470703122, 412.33333333333337}, {53, 22}}</string>
|
888
886
|
<key>Class</key>
|
889
887
|
<string>ShapedGraphic</string>
|
890
888
|
<key>FitText</key>
|
@@ -927,8 +925,8 @@ route_type}</string>
|
|
927
925
|
<key>Pad</key>
|
928
926
|
<integer>0</integer>
|
929
927
|
<key>Text</key>
|
930
|
-
<string>{\rtf1\ansi\ansicpg1252\
|
931
|
-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
928
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
929
|
+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
932
930
|
{\colortbl;\red255\green255\blue255;}
|
933
931
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
|
934
932
|
|
@@ -989,7 +987,7 @@ route_type}</string>
|
|
989
987
|
<key>MasterSheets</key>
|
990
988
|
<array/>
|
991
989
|
<key>ModificationDate</key>
|
992
|
-
<string>2012-
|
990
|
+
<string>2012-09-23 02:49:00 +0000</string>
|
993
991
|
<key>Modifier</key>
|
994
992
|
<string>Tate Johnson</string>
|
995
993
|
<key>NotesVisible</key>
|
@@ -1070,7 +1068,7 @@ route_type}</string>
|
|
1070
1068
|
</dict>
|
1071
1069
|
</array>
|
1072
1070
|
<key>Frame</key>
|
1073
|
-
<string>{{
|
1071
|
+
<string>{{890, 226}, {1272, 1001}}</string>
|
1074
1072
|
<key>ListView</key>
|
1075
1073
|
<true/>
|
1076
1074
|
<key>OutlineWidth</key>
|
@@ -1084,14 +1082,14 @@ route_type}</string>
|
|
1084
1082
|
<key>SidebarWidth</key>
|
1085
1083
|
<integer>120</integer>
|
1086
1084
|
<key>VisibleRegion</key>
|
1087
|
-
<string>{{0, 0}, {
|
1085
|
+
<string>{{0, 0}, {838.66666666666663, 574.66666666666663}}</string>
|
1088
1086
|
<key>Zoom</key>
|
1089
|
-
<real>1</real>
|
1087
|
+
<real>1.5</real>
|
1090
1088
|
<key>ZoomValues</key>
|
1091
1089
|
<array>
|
1092
1090
|
<array>
|
1093
1091
|
<string>Canvas 1</string>
|
1094
|
-
<real>1</real>
|
1092
|
+
<real>1.5</real>
|
1095
1093
|
<real>1</real>
|
1096
1094
|
</array>
|
1097
1095
|
</array>
|