# 
#  File generated from:
#   resources/data/latlong/gml/roads/UnitedStatesRoads2004.xml
#  and  from associated country polygon files. 
#
#  Generated by: class org.eclipse.stem.internal.data.utility.PathwayPolygonConnnectionFinder
# 
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.infrastructure.transportation.specifications.RoadTransportationGeographicRelationshipPropertyFileSpecification
TITLE = Road Transportation Network (2004) for USA Level 1 
VALID = start=2004-01-01;
ISOKEY_0 = USA 
ISOKEY_0_LEVEL = 1
ISOKEY_1 = USA 
ISOKEY_1_LEVEL = 1 
1= US-MD, US-VA, US Route, Route, 5
2= US-CO, US-KS, US Route, Route, 7
3= US-KY, US-TN, State Route, Route, 18
4= US-NV, US-OR, US Route, Route, 4
5= US-KY, US-OH, US Route, Route, 7
6= US-KS, US-OK, US Route, Route, 21
7= US-KY, US-WV, State Route, Route, 6
8= US-MN, US-SD, State Route, Route, 14
9= US-NM, US-OK, US Route, Route, 1
10= US-AL, US-MS, Road, Route, 19
11= US-IN, US-OH, State Route, Route, 18
12= US-CT, US-MA, State Route, Route, 14
13= US-NM, US-TX, US Route, Route, 22
14= US-MO, US-NE, US Route, Route, 2
15= US-CO, US-NE, Interstate, Route, 8
16= US-GA, US-TN, Interstate, Route, 9
17= US-CA, US-NV, State Route, Route, 20
18= US-AR, US-TX, US Route, Route, 5
19= US-NC, US-VA, State Route, Route, 23
20= US-MA, US-VT, State Route, Route, 5
21= US-IA, US-MO, US Route, Route, 14
22= US-NY, US-VT, State Route, Route, 8
23= US-ME, US-NH, State Route, Route, 10
24= US-ID, US-WY, US Route, Route, 6
25= US-CO, US-NM, US Route, Route, 10
26= US-AZ, US-NM, US Route, Route, 12
27= US-AR, US-MO, Interstate, Route, 20
28= US-MD, US-PA, Interstate, Route, 22
29= US-MI, US-OH, State Route, Route, 8
30= US-ND, US-SD, State Route, Route, 16
31= US-OK, US-TX, US Route, Route, 25
32= US-ID, US-WA, US Route, Route, 7
33= US-AZ, US-CA, Interstate, Route, 6
34= US-MO, US-OK, State Route, Route, 2
35= US-FL, US-GA, State Route, Route, 21
36= US-MA, US-NY, Interstate, Route, 4
37= US-ID, US-UT, US Route, Route, 5
38= US-GA, US-NC, State Route, Route, 4
39= US-IA, US-SD, State Route, Route, 6
40= US-VA, US-WV, US Route, Route, 25
41= US-ID, US-NV, US Route, Route, 2
42= US-AL, US-TN, State Route, Route, 13
43= US-AZ, US-NV, Interstate, Route, 3
44= US-DE, US-PA, US Route, Route, 6
45= US-OH, US-PA, State Route, Route, 14
46= US-SD, US-WY, Interstate, Route, 6
47= US-IL, US-IN, US Route, Route, 20
48= US-NV, US-UT, Road, Route, 7
49= US-CT, US-NY, State Route, Route, 11
50= US-IL, US-WI, State Route, Route, 16
51= US-CO, US-UT, State Route, Route, 6
52= US-TN, US-VA, State Route, Route, 8
53= US-NE, US-WY, State Route, Route, 6
54= US-LA, US-MS, Interstate, Route, 15
55= US-AR, US-MS, US Route, Route, 2
56= US-AL, US-FL, Interstate, Route, 17
57= US-CA, US-OR, US Route, Route, 6
58= US-KS, US-NE, State Route, Route, 20
59= US-CO, US-OK, State Route, Route, 1
60= US-IL, US-MO, Interstate, Route, 12
61= US-NH, US-VT, State Route, Route, 16
62= US-ID, US-OR, US Route, Route, 10
63= US-DC, US-MD, Road, Route, 12
64= US-DC, US-VA, Interstate, Route, 2
65= US-IA, US-WI, US Route, Route, 3
66= US-KS, US-MO, Interstate, Route, 21
67= US-OH, US-WV, US Route, Route, 11
68= US-NJ, US-PA, State Route, Route, 21
69= US-MI, US-WI, State Route, Route, 13
70= US-IA, US-MN, State Route, Route, 18
71= US-MA, US-RI, US Route, Route, 16
72= US-PA, US-WV, Interstate, Route, 10
73= US-NC, US-TN, US Route, Route, 11
74= US-IN, US-MI, State Route, Route, 11
75= US-MN, US-ND, State Route, Route, 13
76= US-CT, US-RI, State Route, Route, 9
77= US-UT, US-WY, State Route, Route, 8
78= US-IA, US-NE, State Route, Route, 11
79= US-LA, US-TX, State Route, Route, 12
80= US-IA, US-IL, State Route, Route, 12
81= US-AR, US-OK, US Route, Route, 14
82= US-IL, US-KY, US Route, Route, 4
83= US-AR, US-TN, Interstate, Route, 2
84= US-MD, US-WV, US Route, Route, 13
85= US-MS, US-TN, US Route, Route, 11
86= US-AZ, US-UT, State Route, Route, 7
87= US-MT, US-ND, State Route, Route, 5
88= US-NE, US-SD, State Route, Route, 11
89= US-GA, US-SC, State Route, Route, 18
90= US-MN, US-WI, State Route, Route, 18
91= US-NJ, US-NY, Road, Route, 13
92= US-ID, US-MT, US Route, Route, 10
93= US-AR, US-LA, US Route, Route, 13
94= US-CO, US-WY, Interstate, Route, 7
95= US-AL, US-GA, State Route, Route, 21
96= US-NY, US-PA, State Route, Route, 32
97= US-IN, US-KY, US Route, Route, 9
98= US-MO, US-TN, Interstate, Route, 1
99= US-KY, US-VA, US Route, Route, 5
100= US-NC, US-SC, Interstate, Route, 32
101= US-DE, US-MD, State Route, Route, 17
102= US-MT, US-WY, State Route, Route, 16
103= US-MA, US-NH, State Route, Route, 12
104= US-OR, US-WA, Interstate, Route, 10
