a rust tui to view amtrak train status
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add rivers, cities; swap station/train markers

- Rivers from Natural Earth 50m rendered as subtle blue lines
- 142 cities with population-based progressive disclosure:
>2M at wide zoom, >30K when zoomed in tight
- Swap markers: stations are now small · dots, trains are ○ circles
(◉ when selected) — trains stand out, stations recede
- 7-layer rendering order: coastlines, rivers, state boundaries,
city labels, Amtrak routes, stations, trains

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+123 -12
+1
data/cities.json
··· 1 + [{"name":"New York","lon":-73.996,"lat":40.722,"pop":19040000},{"name":"Los Angeles","lon":-118.232,"lat":34.049,"pop":12500000},{"name":"Chicago","lon":-87.635,"lat":41.848,"pop":8990000},{"name":"Miami","lon":-80.226,"lat":25.79,"pop":5585000},{"name":"Philadelphia","lon":-75.18,"lat":39.946,"pop":5492000},{"name":"Toronto","lon":-79.389,"lat":43.665,"pop":5213000},{"name":"Dallas","lon":-96.795,"lat":32.772,"pop":4798000},{"name":"Atlanta","lon":-84.368,"lat":33.739,"pop":4506000},{"name":"Boston","lon":-71.072,"lat":42.332,"pop":4467000},{"name":"Houston","lon":-95.348,"lat":29.741,"pop":4459000},{"name":"Washington, D.C.","lon":-77.011,"lat":38.901,"pop":4338000},{"name":"Guadalajara","lon":-103.332,"lat":20.672,"pop":4198000},{"name":"Detroit","lon":-83.051,"lat":42.334,"pop":4101000},{"name":"Monterrey","lon":-100.332,"lat":25.672,"pop":3712000},{"name":"Montr\u00e9al","lon":-73.585,"lat":45.502,"pop":3678000},{"name":"Phoenix","lon":-112.067,"lat":33.448,"pop":3551000},{"name":"San Francisco","lon":-122.4,"lat":37.784,"pop":3450000},{"name":"Seattle","lon":-122.315,"lat":47.6,"pop":3074000},{"name":"San Diego","lon":-117.151,"lat":32.719,"pop":2916000},{"name":"Minneapolis","lon":-93.254,"lat":44.982,"pop":2616000},{"name":"Tampa","lon":-82.461,"lat":27.949,"pop":2314000},{"name":"Vancouver","lon":-123.124,"lat":49.275,"pop":2313328},{"name":"Denver","lon":-104.986,"lat":39.741,"pop":2313000},{"name":"Baltimore","lon":-76.615,"lat":39.282,"pop":2255000},{"name":"St. Louis","lon":-90.242,"lat":38.637,"pop":2199000},{"name":"Havana","lon":-82.366,"lat":23.134,"pop":2174000},{"name":"Cleveland","lon":-81.697,"lat":41.472,"pop":1890000},{"name":"Portland","lon":-122.682,"lat":45.522,"pop":1875000},{"name":"Pittsburgh","lon":-80.002,"lat":40.432,"pop":1838000},{"name":"Las Vegas","lon":-115.151,"lat":36.165,"pop":1823000},{"name":"San Bernardino","lon":-117.302,"lat":34.122,"pop":1745000},{"name":"San Jose","lon":-121.888,"lat":37.331,"pop":1668000},{"name":"Cincinnati","lon":-84.459,"lat":39.164,"pop":1636000},{"name":"Sacramento","lon":-121.472,"lat":38.577,"pop":1604000},{"name":"Tijuana","lon":-117.082,"lat":32.502,"pop":1553000},{"name":"Le\u00f3n","lon":-101.702,"lat":21.152,"pop":1488000},{"name":"San Antonio","lon":-98.493,"lat":29.42,"pop":1473000},{"name":"Kansas City","lon":-94.606,"lat":39.109,"pop":1469000},{"name":"Ft. Worth","lon":-97.34,"lat":32.74,"pop":1440454},{"name":"Indianapolis","lon":-86.172,"lat":39.752,"pop":1436000},{"name":"Milwaukee","lon":-87.917,"lat":43.03,"pop":1388000},{"name":"Orlando","lon":-81.382,"lat":28.512,"pop":1350000},{"name":"Raleigh","lon":-78.647,"lat":35.773,"pop":1163515},{"name":"Austin","lon":-97.745,"lat":30.269,"pop":1161000},{"name":"Ottawa","lon":-75.702,"lat":45.419,"pop":1145000},{"name":"Torre\u00f3n","lon":-103.422,"lat":25.572,"pop":1144000},{"name":"Calgary","lon":-114.082,"lat":51.085,"pop":1110000},{"name":"Memphis","lon":-90.029,"lat":35.145,"pop":1081000},{"name":"Edmonton","lon":-113.502,"lat":53.552,"pop":1058000},{"name":"Norfolk","lon":-76.28,"lat":36.85,"pop":1047869},{"name":"Bridgeport","lon":-73.202,"lat":41.182,"pop":1018000},{"name":"Buffalo","lon":-78.882,"lat":42.882,"pop":1016000},{"name":"San Luis Potos\u00ed","lon":-101.002,"lat":22.172,"pop":992000},{"name":"Jacksonville","lon":-81.672,"lat":30.332,"pop":988000},{"name":"Salt Lake City","lon":-111.932,"lat":40.777,"pop":966000},{"name":"M\u00e9rida","lon":-89.619,"lat":20.969,"pop":965000},{"name":"Tulsa","lon":-95.93,"lat":36.12,"pop":946962},{"name":"Richmond","lon":-77.452,"lat":37.552,"pop":912000},{"name":"Albuquerque","lon":-106.641,"lat":35.105,"pop":898642},{"name":"Mexicali","lon":-115.482,"lat":32.652,"pop":885000},{"name":"Omaha","lon":-96.01,"lat":41.24,"pop":877110},{"name":"Nashville","lon":-86.782,"lat":36.172,"pop":877000},{"name":"Tampico","lon":-97.87,"lat":22.3,"pop":859419},{"name":"Tucson","lon":-110.892,"lat":32.207,"pop":823000},{"name":"Culiac\u00e1n","lon":-107.382,"lat":24.832,"pop":809000},{"name":"Chihuahua","lon":-106.087,"lat":28.647,"pop":793000},{"name":"Oklahoma City","lon":-97.521,"lat":35.472,"pop":788000},{"name":"New Orleans","lon":-90.088,"lat":29.969,"pop":785000},{"name":"Rochester","lon":-77.622,"lat":43.172,"pop":755000},{"name":"El Paso","lon":-106.512,"lat":31.782,"pop":753000},{"name":"St. Paul","lon":-93.085,"lat":44.944,"pop":734854},{"name":"Syracuse","lon":-76.15,"lat":43.05,"pop":662577},{"name":"Knoxville","lon":-83.92,"lat":35.97,"pop":655400},{"name":"Winnipeg","lon":-97.166,"lat":49.883,"pop":632063},{"name":"Qu\u00e9bec","lon":-71.246,"lat":46.84,"pop":624177},{"name":"Fresno","lon":-119.773,"lat":36.748,"pop":616353},{"name":"Hermosillo","lon":-110.954,"lat":29.099,"pop":595811},{"name":"Santiago de Cuba","lon":-75.821,"lat":20.025,"pop":555865},{"name":"Canc\u00fan","lon":-86.83,"lat":21.17,"pop":542043},{"name":"Matamoros","lon":-97.5,"lat":25.88,"pop":538785},{"name":"Vancouver","lon":-122.64,"lat":45.63,"pop":525802},{"name":"Colorado Springs","lon":-104.792,"lat":38.863,"pop":493654},{"name":"Laredo","lon":-99.507,"lat":27.506,"pop":434768},{"name":"Baton Rouge","lon":-91.14,"lat":30.458,"pop":422072},{"name":"Columbia","lon":-81.031,"lat":33.997,"pop":398093},{"name":"Des Moines","lon":-93.62,"lat":41.58,"pop":380655},{"name":"Mazatl\u00e1n","lon":-106.42,"lat":23.221,"pop":368204},{"name":"Halifax","lon":-63.6,"lat":44.65,"pop":359111},{"name":"Nuevo Laredo","lon":-99.55,"lat":27.5,"pop":349550},{"name":"Spokane","lon":-117.42,"lat":47.67,"pop":347705},{"name":"Boise","lon":-116.227,"lat":43.609,"pop":338071},{"name":"Reno","lon":-119.82,"lat":39.53,"pop":328585},{"name":"Victoria","lon":-123.35,"lat":48.433,"pop":289625},{"name":"Corpus Christi","lon":-97.402,"lat":27.743,"pop":277454},{"name":"Jackson","lon":-90.185,"lat":32.299,"pop":250902},{"name":"Shreveport","lon":-93.77,"lat":32.5,"pop":248053},{"name":"Salem","lon":-123.024,"lat":44.928,"pop":229010},{"name":"Nassau","lon":-77.35,"lat":25.083,"pop":227940},{"name":"Tallahassee","lon":-84.28,"lat":30.45,"pop":221222},{"name":"Saskatoon","lon":-106.67,"lat":52.17,"pop":198958},{"name":"Montgomery","lon":-86.279,"lat":32.362,"pop":198325},{"name":"La Paz","lon":-110.32,"lat":24.14,"pop":189767},{"name":"Amarillo","lon":-101.83,"lat":35.23,"pop":181766},{"name":"Santa Barbara","lon":-119.717,"lat":34.411,"pop":181632},{"name":"Savannah","lon":-81.11,"lat":32.021,"pop":180187},{"name":"Nogales","lon":-110.945,"lat":31.305,"pop":178097},{"name":"Regina","lon":-104.617,"lat":50.45,"pop":176183},{"name":"Fargo","lon":-96.789,"lat":46.877,"pop":162842},{"name":"Wilmington","lon":-77.945,"lat":34.226,"pop":161560},{"name":"Olympia","lon":-122.899,"lat":47.038,"pop":156984},{"name":"Sioux Falls","lon":-96.73,"lat":43.55,"pop":155724},{"name":"Topeka","lon":-95.67,"lat":39.05,"pop":132091},{"name":"Charleston","lon":-81.633,"lat":38.35,"pop":123799},{"name":"Billings","lon":-108.54,"lat":45.788,"pop":104552},{"name":"Guaymas","lon":-110.89,"lat":27.93,"pop":103449},{"name":"Thunder Bay","lon":-89.275,"lat":48.446,"pop":99334},{"name":"Burlington","lon":-73.212,"lat":44.476,"pop":93807},{"name":"Santa Fe","lon":-105.937,"lat":35.687,"pop":92681},{"name":"Sault Ste. Marie","lon":-84.345,"lat":46.495,"pop":83805},{"name":"Cheyenne","lon":-104.82,"lat":41.14,"pop":72927},{"name":"Missoula","lon":-113.993,"lat":46.872,"pop":72856},{"name":"Great Falls","lon":-111.3,"lat":47.5,"pop":66558},{"name":"Flagstaff","lon":-111.651,"lat":35.198,"pop":63993},{"name":"Bismarck","lon":-100.783,"lat":46.808,"pop":63871},{"name":"Casper","lon":-106.323,"lat":42.847,"pop":60791},{"name":"Hamilton","lon":-64.784,"lat":32.294,"pop":52320},{"name":"North Bay","lon":-79.45,"lat":46.3,"pop":50170},{"name":"Charlottetown","lon":-63.131,"lat":46.249,"pop":42402},{"name":"Eureka","lon":-124.15,"lat":40.793,"pop":42398},{"name":"Minot","lon":-101.296,"lat":48.232,"pop":39439},{"name":"Helena","lon":-112.035,"lat":46.593,"pop":38725},{"name":"Sydney","lon":-60.18,"lat":46.066,"pop":37538},{"name":"Timmins","lon":-81.333,"lat":48.467,"pop":34974},{"name":"Brandon","lon":-99.95,"lat":49.833,"pop":28418},{"name":"Freeport","lon":-78.7,"lat":26.533,"pop":25383},{"name":"Augusta","lon":-69.78,"lat":44.311,"pop":24042},{"name":"Elko","lon":-115.762,"lat":40.833,"pop":19252},{"name":"International Falls","lon":-93.411,"lat":48.601,"pop":15240},{"name":"Prince Rupert","lon":-130.33,"lat":54.317,"pop":14708},{"name":"Pierre","lon":-100.351,"lat":44.368,"pop":13879},{"name":"Labrador City","lon":-66.916,"lat":52.941,"pop":10313},{"name":"Grand Turk","lon":-71.136,"lat":21.466,"pop":5801}]
+1
data/rivers.json
··· 1 + {"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-86.522,33.032],[-86.445,32.811]]},"properties":{"name":"Alabama"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-86.2,33.588],[-86.212,33.56],[-86.33,33.444]]},"properties":{"name":"Alabama"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.312,51.063],[-91.075,50.998],[-90.875,51.014],[-90.489,51.116],[-90.417,51.093]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.598,51.162],[-91.418,51.068]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.781,51.335],[-91.886,51.458]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.915,51.762],[-91.881,51.723],[-91.923,51.534],[-91.893,51.487]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.929,51.892],[-91.97,51.988]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-84.966,30.923],[-84.887,30.759],[-84.884,30.721]]},"properties":{"name":"Chattahoochee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-85.067,31.635],[-85.125,31.777],[-85.124,31.881],[-85.064,32.051]]},"properties":{"name":"Chattahoochee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-83.815,34.364],[-84.076,34.167]]},"properties":{"name":"Chattahoochee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-64.682,53.125],[-64.712,53.339],[-64.678,53.382]]},"properties":{"name":"Churchill"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-114.377,34.54],[-114.371,34.488],[-114.308,34.433],[-114.159,34.355],[-114.125,34.317],[-114.126,34.287],[-114.164,34.253]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-114.591,35.353],[-114.649,35.476],[-114.662,35.545],[-114.645,35.631]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-114.741,36.014],[-114.716,36.085],[-114.669,36.122],[-114.505,36.156],[-114.406,36.148],[-114.332,36.116],[-114.282,36.06],[-114.232,36.032],[-114.183,36.03],[-114.119,36.077],[-114.062,36.175],[-114.005,36.195],[-113.76,36.007],[-113.636,35.831]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-110.368,37.898],[-110.399,37.883],[-110.43,37.772],[-110.47,37.702],[-110.692,37.483],[-110.722,37.406],[-110.916,37.157],[-111.301,37.054],[-111.431,37.003],[-111.473,36.932]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-105.821,40.185],[-105.861,40.165]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-118.072,48.664],[-118.174,48.512],[-118.198,48.404],[-118.168,48.232]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-118.092,49.802],[-118.13,49.664],[-118.128,49.574],[-118.097,49.484],[-118.014,49.404],[-117.907,49.342]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-117.906,50.682],[-117.917,50.465],[-117.892,50.339],[-117.837,50.231],[-117.827,50.159],[-117.88,50.103]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-117.517,51.659],[-117.873,51.87]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-118.527,52.102],[-118.366,52.09]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-121.921,42.475],[-121.916,42.419],[-121.809,42.251]]},"properties":{"name":"Klamath"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-70.843,53.427],[-70.948,53.439],[-70.991,53.468],[-71.007,53.518],[-71.041,53.555],[-71.117,53.591]]},"properties":{"name":"La Grande Rivi\u00e8re"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-72.034,53.598],[-71.926,53.572],[-71.871,53.584],[-71.817,53.646]]},"properties":{"name":"La Grande Rivi\u00e8re"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-74.433,53.685],[-74.697,53.631],[-74.852,53.628],[-74.965,53.648],[-75.617,53.674],[-75.802,53.664],[-75.895,53.71],[-76.664,53.668],[-77.04,53.677],[-77.311,53.732],[-77.42,53.798]]},"properties":{"name":"La Grande Rivi\u00e8re"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-111.1,44.757],[-111.189,44.771],[-111.242,44.8],[-111.309,44.868]]},"properties":{"name":"Madison"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-94.326,47.406],[-94.202,47.457],[-94.144,47.464],[-94.094,47.433]]},"properties":{"name":"Mississippi"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-94.507,47.456],[-94.637,47.44]]},"properties":{"name":"Mississippi"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-99.365,43.991],[-99.328,43.894],[-99.353,43.818],[-99.43,43.729],[-99.442,43.674],[-99.39,43.653],[-99.347,43.599],[-99.313,43.515],[-99.196,43.415],[-98.892,43.225],[-98.882,43.192],[-98.798,43.146],[-98.56,43.06]]},"properties":{"name":"Missouri"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-111.516,46.362],[-111.54,46.469],[-111.585,46.544],[-111.697,46.662]]},"properties":{"name":"Missouri"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-100.777,46.713],[-100.625,46.608],[-100.569,46.513],[-100.556,46.393],[-100.571,46.287],[-100.614,46.196],[-100.557,46.041],[-100.4,45.822],[-100.369,45.674],[-100.433,45.613],[-100.433,45.535],[-100.342,45.448],[-100.297,45.316],[-100.302,45.134],[-100.321,45.053],[-100.375,45.033],[-100.402,44.993],[-100.41,44.918],[-100.444,44.854],[-100.505,44.8],[-100.583,44.783],[-100.68,44.802],[-100.697,44.776],[-100.659,44.735],[-100.635,44.68],[-100.633,44.62],[-100.609,44.578],[-100.561,44.555],[-100.562,44.504],[-100.536,44.476],[-100.394,44.434]]},"properties":{"name":"Missouri"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-101.4,47.506],[-101.428,47.552],[-101.549,47.556],[-101.772,47.533],[-101.976,47.547],[-102.161,47.598],[-102.269,47.669],[-102.299,47.76],[-102.345,47.799],[-102.409,47.786],[-102.59,47.824],[-102.62,47.881],[-102.58,47.965],[-102.614,48.038],[-102.724,48.1],[-102.873,48.137],[-103.06,48.151],[-103.179,48.136],[-103.23,48.093],[-103.414,48.036],[-103.496,48.054],[-103.555,48.114],[-103.631,48.115],[-103.772,48.027]]},"properties":{"name":"Missouri"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-106.406,48.02],[-106.519,47.886],[-106.6,47.822],[-106.879,47.707],[-107.385,47.694],[-107.41,47.659],[-107.473,47.645],[-107.575,47.653],[-107.689,47.608],[-107.813,47.512],[-107.888,47.502],[-107.94,47.581],[-108.02,47.598],[-108.196,47.602]]},"properties":{"name":"Missouri"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-96.598,50.979],[-96.595,51.308],[-96.631,51.482],[-96.703,51.611],[-96.952,51.86],[-97.377,52.23],[-97.643,52.532],[-97.75,52.766],[-97.831,53.042],[-97.914,53.519],[-97.869,53.714],[-97.906,53.776],[-97.981,53.837],[-98.015,53.886],[-98.005,53.966],[-97.987,53.988],[-97.798,54.026],[-97.731,54.082]]},"properties":{"name":"Nelson"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-97.901,54.705],[-97.791,54.571]]},"properties":{"name":"Nelson"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-97.946,54.948],[-97.254,55.236]]},"properties":{"name":"Nelson"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-79.166,46.827],[-79.365,47.022],[-79.435,47.134],[-79.442,47.228],[-79.479,47.319],[-79.547,47.407],[-79.559,47.483],[-79.496,47.577]]},"properties":{"name":"Ottawa"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-122.095,40.784],[-122.369,40.763]]},"properties":{"name":"Pit"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.457,47.556],[-77.484,47.595],[-77.613,47.582],[-77.615,47.597],[-77.544,47.671]]},"properties":{"name":"R. des Outaouais"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.322,47.573],[-77.216,47.507],[-77.158,47.531],[-77.114,47.526],[-77.086,47.492],[-77.037,47.478],[-76.935,47.488]]},"properties":{"name":"R. des Outaouais"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-78.724,47.684],[-78.813,47.656]]},"properties":{"name":"R. des Outaouais"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.527,47.744],[-77.544,47.82],[-77.567,47.83]]},"properties":{"name":"R. des Outaouais"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-93.382,48.616],[-92.779,48.678]]},"properties":{"name":"Rainy"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.319,48.828],[-91.44,48.903],[-91.518,48.912],[-91.63,48.865]]},"properties":{"name":"Rainy"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-99.457,27.057],[-99.302,26.885],[-99.23,26.762],[-99.172,26.564]]},"properties":{"name":"Rio Grande"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-101.039,29.46],[-101.304,29.634]]},"properties":{"name":"Rio Grande"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-107.293,32.91],[-107.281,33.114]]},"properties":{"name":"Rio Grande"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-107.181,33.173],[-107.17,33.356]]},"properties":{"name":"Rio Grande"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-76.819,51.416],[-76.781,51.354],[-76.73,51.338],[-76.553,51.364]]},"properties":{"name":"Rupert"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-75.204,51.446],[-75.086,51.442],[-75.0,51.419],[-74.948,51.374],[-74.895,51.367],[-74.818,51.412]]},"properties":{"name":"Rupert"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-102.78,20.31],[-102.77,20.198]]},"properties":{"name":"R\u00edo Grande de Santiago"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-103.709,20.938],[-103.594,20.971]]},"properties":{"name":"R\u00edo Grande de Santiago"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-105.104,21.822],[-105.06,21.807],[-105.034,21.779]]},"properties":{"name":"R\u00edo Grande de Santiago"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-122.369,40.763],[-122.411,40.721]]},"properties":{"name":"Sacramento"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-119.698,37.0],[-119.601,37.062]]},"properties":{"name":"San Joaquin"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-99.23,53.185],[-98.082,53.436],[-97.914,53.519]]},"properties":{"name":"Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-100.323,53.593],[-100.163,53.503],[-100.066,53.405],[-99.976,53.268],[-99.852,53.212],[-99.693,53.237],[-99.543,53.227],[-99.33,53.159]]},"properties":{"name":"Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-103.421,53.652],[-103.58,53.629],[-103.697,53.586],[-103.891,53.481]]},"properties":{"name":"Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-102.437,53.982],[-102.381,53.966]]},"properties":{"name":"Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-82.589,34.018],[-82.257,33.749],[-82.208,33.664]]},"properties":{"name":"Savannah"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-113.316,42.654],[-113.472,42.675]]},"properties":{"name":"Snake"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-112.864,42.813],[-112.64,43.023]]},"properties":{"name":"Snake"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-111.048,43.207],[-111.093,43.234],[-111.186,43.338]]},"properties":{"name":"Snake"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-106.853,51.262],[-106.69,51.13],[-106.691,51.072],[-106.803,51.045],[-106.901,50.963],[-106.986,50.824],[-107.159,50.723],[-107.42,50.66],[-107.665,50.636],[-108.006,50.658]]},"properties":{"name":"South Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-86.899,34.575],[-87.242,34.754],[-87.4,34.819],[-87.572,34.818],[-87.7,34.773]]},"properties":{"name":"Tennessee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-87.975,35.945],[-88.004,35.962],[-87.949,36.1],[-87.959,36.216],[-88.023,36.359],[-88.056,36.484],[-88.057,36.59],[-88.114,36.738],[-88.283,37.022]]},"properties":{"name":"Tennessee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-83.166,34.599],[-83.053,34.511],[-82.976,34.476],[-82.897,34.466],[-82.848,34.437],[-82.819,34.366]]},"properties":{"name":"Tugaloo"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-94.615,49.993],[-94.508,49.707],[-94.549,49.574],[-94.703,49.496],[-94.802,49.425],[-94.847,49.361],[-94.86,49.259],[-94.843,49.119],[-94.803,49.003],[-94.713,48.863]]},"properties":{"name":"Winnipeg"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-96.026,50.283],[-95.989,50.405]]},"properties":{"name":"Winnipeg"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-96.598,50.979],[-96.467,50.774],[-96.392,50.685],[-96.294,50.624]]},"properties":{"name":"Winnipeg"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-86.446,32.812],[-86.268,32.622],[-86.243,32.527],[-86.31,32.462],[-86.339,32.409],[-86.423,32.408],[-86.482,32.368],[-86.543,32.363],[-86.605,32.394],[-86.652,32.398],[-86.684,32.373],[-86.759,32.384],[-86.81,32.353],[-86.855,32.42],[-86.911,32.381],[-86.95,32.373],[-87.025,32.404],[-87.057,32.391],[-87.058,32.371],[-87.03,32.342],[-87.05,32.317],[-87.119,32.297],[-87.139,32.26],[-87.11,32.207],[-87.133,32.176],[-87.208,32.167],[-87.246,32.138],[-87.25,32.089],[-87.285,32.086],[-87.354,32.127],[-87.409,32.11],[-87.453,32.036],[-87.452,31.98],[-87.407,31.942],[-87.418,31.916],[-87.484,31.901],[-87.494,31.868],[-87.447,31.816],[-87.456,31.765],[-87.521,31.715],[-87.543,31.66],[-87.522,31.601],[-87.535,31.559],[-87.583,31.535],[-87.602,31.499],[-87.591,31.451],[-87.63,31.413],[-87.718,31.383],[-87.791,31.316],[-87.893,31.159],[-87.941,31.14],[-87.951,30.919],[-87.971,30.829],[-88.005,30.8],[-88.011,30.694]]},"properties":{"name":"Alabama"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-86.33,33.444],[-86.366,33.418],[-86.373,33.327],[-86.401,33.276],[-86.462,33.228],[-86.484,33.189],[-86.468,33.158],[-86.476,33.115],[-86.522,33.032]]},"properties":{"name":"Alabama"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-85.183,34.259],[-85.501,34.209],[-85.727,34.192],[-85.733,34.174],[-85.707,34.154],[-85.705,34.134],[-85.734,34.112],[-85.838,34.1],[-85.863,34.058],[-85.898,34.05],[-85.922,34.01],[-85.95,34.01],[-85.984,33.944],[-86.033,33.928],[-86.055,33.885],[-86.046,33.811],[-86.082,33.753],[-86.161,33.712],[-86.191,33.667],[-86.2,33.588]]},"properties":{"name":"Alabama"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.418,51.069],[-91.312,51.063]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-90.416,51.092],[-89.862,51.198],[-89.593,51.278],[-89.423,51.368],[-89.293,51.419],[-89.205,51.43],[-89.141,51.461],[-89.104,51.51],[-89.056,51.515],[-88.998,51.474],[-88.912,51.483],[-88.799,51.541],[-88.689,51.57],[-88.583,51.57],[-88.51,51.55],[-88.469,51.511],[-88.329,51.493],[-88.088,51.494],[-87.853,51.434],[-87.624,51.314],[-87.448,51.26],[-87.324,51.27],[-87.198,51.309],[-87.067,51.378],[-86.941,51.412],[-86.82,51.413],[-86.702,51.442],[-86.439,51.582],[-86.4,51.635],[-86.384,51.705],[-86.352,51.75],[-86.247,51.775],[-86.177,51.766],[-86.001,51.669],[-85.841,51.646],[-85.616,51.663],[-85.4,51.605],[-85.078,51.378],[-85.053,51.325],[-84.906,51.251],[-84.638,51.158],[-84.455,51.14],[-84.358,51.198],[-83.615,51.433],[-83.314,51.572],[-83.176,51.713],[-83.035,51.821],[-82.893,51.896],[-82.758,51.936],[-82.631,51.943],[-82.505,51.985],[-82.381,52.063],[-82.253,52.111],[-82.055,52.138],[-81.828,52.224]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.782,51.336],[-91.724,51.277],[-91.659,51.244],[-91.641,51.19],[-91.598,51.161]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.893,51.487],[-91.886,51.458]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.929,51.892],[-91.915,51.762]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-92.299,51.974],[-92.237,51.948],[-92.155,51.951],[-91.97,51.988]]},"properties":{"name":"Albany"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.86,41.832],[-77.999,41.781],[-78.083,41.771],[-78.197,41.79],[-78.33,41.878],[-78.367,41.942],[-78.351,42.013],[-78.42,42.059],[-78.573,42.081],[-78.674,42.11],[-78.723,42.144],[-78.797,42.128],[-78.895,42.061],[-78.955,41.985],[-78.977,41.899],[-79.059,41.849],[-79.201,41.834],[-79.308,41.789],[-79.381,41.714],[-79.417,41.65],[-79.416,41.571],[-79.452,41.506],[-79.513,41.48],[-79.699,41.447],[-79.81,41.374],[-79.79,41.352],[-79.834,41.3],[-79.816,41.264],[-79.746,41.221],[-79.682,41.155],[-79.624,41.066],[-79.604,41.012],[-79.62,40.992],[-79.523,40.939],[-79.515,40.906],[-79.543,40.824],[-79.698,40.637],[-79.83,40.519],[-79.946,40.456],[-79.991,40.448]]},"properties":{"name":"Allegheny"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.077,33.797],[-91.122,33.824],[-91.167,33.922],[-91.217,33.955],[-91.299,33.962],[-91.343,34.004],[-91.387,34.005],[-91.419,34.026],[-91.439,34.066],[-91.682,34.153],[-91.844,34.249],[-91.973,34.275],[-92.109,34.448],[-92.155,34.566],[-92.155,34.673],[-92.225,34.756],[-92.365,34.818],[-92.447,34.877],[-92.469,34.934],[-92.506,34.972],[-92.558,34.993],[-92.577,35.035],[-92.562,35.096],[-92.595,35.119],[-92.713,35.095],[-92.831,35.161],[-92.93,35.184],[-93.05,35.185],[-93.193,35.244],[-93.358,35.363],[-93.521,35.415],[-93.682,35.399],[-93.797,35.421],[-93.864,35.479],[-93.958,35.494],[-94.078,35.467],[-94.139,35.434],[-94.141,35.396],[-94.162,35.373],[-94.202,35.367],[-94.358,35.43],[-94.43,35.415],[-94.484,35.342],[-94.529,35.314],[-94.567,35.331],[-94.602,35.325],[-94.635,35.297],[-94.666,35.3],[-94.694,35.333],[-94.792,35.375],[-94.959,35.425],[-95.074,35.488],[-95.19,35.603],[-95.229,35.605],[-95.245,35.637],[-95.236,35.699],[-95.251,35.747],[-95.29,35.78],[-95.388,35.795],[-95.545,35.79],[-95.63,35.816],[-95.643,35.875],[-95.721,35.925],[-95.864,35.967],[-95.958,36.029],[-96.004,36.11],[-96.084,36.152],[-96.199,36.153],[-96.26,36.174],[-96.266,36.213],[-96.316,36.256],[-96.477,36.322],[-96.521,36.312],[-96.542,36.332],[-96.54,36.382],[-96.578,36.415],[-96.656,36.431],[-96.711,36.473],[-96.742,36.539],[-96.806,36.532],[-96.921,36.469],[-96.986,36.486],[-96.999,36.513],[-96.94,36.579],[-97.041,36.619],[-97.053,36.664],[-96.993,36.706],[-96.862,36.745],[-96.838,36.782],[-96.877,36.797],[-96.913,36.866],[-96.932,36.981],[-96.986,37.058],[-97.074,37.098],[-97.135,37.189],[-97.167,37.332],[-97.237,37.499],[-97.344,37.69],[-97.695,37.925],[-98.289,38.205],[-98.633,38.346],[-98.728,38.349],[-98.854,38.308],[-99.011,38.223],[-99.218,38.055],[-99.474,37.805],[-99.698,37.697],[-99.987,37.748],[-100.776,37.935],[-101.127,37.971],[-101.304,37.918],[-101.627,37.95],[-102.095,38.066],[-102.559,38.118],[-103.017,38.106],[-103.32,38.081],[-103.467,38.042],[-103.594,38.048],[-103.699,38.099],[-103.833,38.136],[-104.075,38.174],[-104.237,38.238],[-104.411,38.26],[-104.649,38.261],[-104.826,38.298],[-104.94,38.371],[-105.093,38.425],[-105.283,38.459],[-105.47,38.451],[-105.654,38.4],[-105.832,38.425],[-106.005,38.527],[-106.089,38.611],[-106.087,38.677],[-106.135,38.802],[-106.381,39.222]]},"properties":{"name":"Arkansas"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-117.575,52.171],[-117.543,52.209],[-117.552,52.271],[-117.674,52.537],[-117.727,52.578],[-117.814,52.606],[-117.864,52.647],[-117.878,52.701],[-117.926,52.757],[-118.007,52.815],[-118.045,52.872],[-118.039,52.929],[-118.052,52.977],[-118.084,53.018],[-118.036,53.113],[-117.907,53.263],[-117.679,53.415],[-117.354,53.57],[-117.184,53.676],[-117.17,53.735],[-117.173,53.775],[-117.193,53.796],[-117.108,53.907],[-116.924,54.01],[-116.414,54.228],[-116.315,54.243],[-116.133,54.224],[-115.868,54.172],[-115.615,54.149],[-115.373,54.155],[-115.176,54.2],[-115.021,54.285],[-114.859,54.331],[-114.689,54.34],[-114.536,54.39],[-114.399,54.481],[-114.332,54.565],[-114.336,54.642],[-114.265,54.804],[-114.049,55.174]]},"properties":{"name":"Athabasca"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-114.042,55.168],[-113.76,55.228],[-113.599,55.172],[-113.466,55.018],[-113.413,54.901],[-113.44,54.822],[-113.41,54.771],[-113.324,54.748],[-113.259,54.773],[-113.215,54.846],[-113.077,54.909],[-112.733,55.0],[-112.739,55.028],[-112.772,55.05],[-112.834,55.066],[-112.85,55.116],[-112.82,55.198],[-112.774,55.256],[-112.712,55.291],[-112.708,55.385],[-112.761,55.537],[-112.74,55.648],[-112.645,55.716],[-112.614,55.789],[-112.648,55.868],[-112.658,55.947],[-112.645,56.025],[-112.61,56.098],[-112.555,56.165],[-112.58,56.256],[-112.683,56.371],[-112.65,56.464],[-112.482,56.536],[-112.257,56.573],[-111.974,56.574],[-111.728,56.615],[-111.518,56.694],[-111.423,56.798],[-111.442,56.926],[-111.488,57.023],[-111.559,57.09],[-111.612,57.169],[-111.657,57.337],[-111.644,57.397],[-111.435,57.684],[-111.381,57.808],[-111.407,57.885],[-111.399,57.951],[-111.357,58.004],[-111.348,58.048],[-111.377,58.121],[-111.365,58.167],[-111.391,58.207],[-111.455,58.241],[-111.497,58.294],[-111.518,58.365],[-111.514,58.412],[-111.487,58.434],[-111.07,58.468],[-111.075,58.505]]},"properties":{"name":"Athabasca"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-100.501,32.905],[-100.441,32.957],[-100.115,33.034],[-99.998,33.091],[-99.968,33.165],[-99.964,33.248],[-99.987,33.34],[-99.891,33.435],[-99.679,33.532],[-99.494,33.582],[-99.337,33.584],[-99.247,33.556],[-99.225,33.497],[-99.184,33.468],[-99.126,33.466],[-99.081,33.438],[-99.05,33.383],[-99.022,33.361],[-98.996,33.373],[-98.973,33.355],[-98.953,33.307],[-98.882,33.246],[-98.7,33.136],[-98.712,33.082],[-98.647,32.99],[-98.608,32.987],[-98.577,33.032],[-98.519,33.033],[-98.433,32.992],[-98.406,32.952],[-98.437,32.915],[-98.435,32.879],[-98.399,32.846],[-98.34,32.837],[-98.258,32.853],[-98.201,32.836],[-98.169,32.784],[-98.194,32.739],[-98.186,32.719],[-97.973,32.649],[-97.85,32.574],[-97.788,32.479],[-97.716,32.416],[-97.636,32.384],[-97.623,32.358],[-97.676,32.337],[-97.696,32.303],[-97.682,32.258],[-97.632,32.213],[-97.546,32.168],[-97.464,32.163],[-97.466,32.09],[-97.417,32.003],[-97.315,31.892],[-97.263,31.809],[-97.261,31.752],[-97.193,31.663],[-97.06,31.541],[-96.971,31.421],[-96.904,31.244],[-96.654,30.791],[-96.512,30.61],[-96.394,30.551],[-96.319,30.485],[-96.288,30.412],[-96.242,30.376],[-96.181,30.38],[-96.131,30.362],[-96.093,30.325],[-96.099,30.258],[-96.149,30.164],[-96.153,30.092],[-96.11,30.042],[-96.03,29.666],[-95.758,29.601],[-95.656,29.559],[-95.599,29.505],[-95.572,29.418],[-95.573,29.298],[-95.589,29.206],[-95.619,29.141],[-95.57,29.074],[-95.44,29.004],[-95.378,28.947],[-95.388,28.898]]},"properties":{"name":"Brazos"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-84.886,30.721],[-84.893,30.668],[-84.961,30.574],[-85.117,30.17],[-85.113,30.08],[-85.043,29.995],[-85.016,29.909],[-85.033,29.822],[-85.024,29.772],[-84.969,29.745]]},"properties":{"name":"Chattahoochee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-85.067,31.635],[-85.055,31.573],[-85.093,31.296],[-85.067,31.118],[-84.966,30.923]]},"properties":{"name":"Chattahoochee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-84.076,34.167],[-84.105,34.091],[-84.153,34.042],[-84.23,33.995],[-84.292,33.98],[-84.339,33.998],[-84.43,33.926],[-84.566,33.765],[-84.729,33.622],[-84.921,33.496],[-85.037,33.396],[-85.077,33.323],[-85.089,33.252],[-85.072,33.184],[-85.096,33.107],[-85.161,33.023],[-85.185,32.937],[-85.157,32.804],[-85.015,32.526],[-84.974,32.409],[-84.986,32.361],[-84.969,32.32],[-84.922,32.286],[-84.93,32.247],[-84.993,32.202],[-85.035,32.147],[-85.065,32.051]]},"properties":{"name":"Chattahoochee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-83.746,34.716],[-83.691,34.7],[-83.636,34.587],[-83.672,34.504],[-83.817,34.364]]},"properties":{"name":"Chattahoochee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-83.121,35.076],[-83.121,35.001],[-83.17,34.933],[-83.317,34.806],[-83.356,34.708]]},"properties":{"name":"Chattooga"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-64.622,52.891],[-64.682,53.125]]},"properties":{"name":"Churchill"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-64.678,53.382],[-64.577,53.49],[-64.449,53.532],[-64.26,53.546],[-64.067,53.538],[-63.867,53.508],[-63.638,53.425],[-63.378,53.291],[-63.034,53.21],[-62.606,53.181],[-62.352,53.145],[-62.272,53.103],[-62.214,53.042],[-62.179,52.963],[-62.036,52.911],[-61.785,52.886],[-61.65,52.906],[-61.631,52.968],[-61.578,52.996],[-61.448,52.986],[-60.981,53.198],[-60.724,53.268],[-60.558,53.25],[-60.337,53.277]]},"properties":{"name":"Churchill"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-114.721,32.724],[-114.788,32.565],[-114.839,32.504],[-114.897,32.49],[-114.959,32.42],[-115.025,32.294],[-115.093,32.213],[-115.164,32.176],[-115.199,32.124],[-115.196,32.058],[-115.153,32.036],[-115.126,31.988],[-115.093,31.965],[-115.035,31.966],[-114.981,31.918],[-114.934,31.901]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-114.164,34.253],[-114.329,34.142],[-114.418,34.051],[-114.509,33.904],[-114.499,33.686],[-114.522,33.608],[-114.603,33.47],[-114.651,33.431],[-114.702,33.418],[-114.719,33.331],[-114.704,33.17],[-114.648,33.072],[-114.551,33.037],[-114.491,32.984],[-114.469,32.912],[-114.478,32.842],[-114.516,32.773],[-114.582,32.735],[-114.721,32.724]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-114.591,35.353],[-114.611,34.907],[-114.557,34.795],[-114.398,34.59],[-114.379,34.541]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-114.741,36.014],[-114.687,35.917],[-114.677,35.73],[-114.65,35.684],[-114.645,35.631]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-112.876,36.28],[-113.206,36.124],[-113.296,36.048],[-113.325,35.995],[-113.323,35.835],[-113.356,35.764],[-113.422,35.762],[-113.579,35.801],[-113.636,35.831]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-111.473,36.932],[-111.591,36.85],[-111.683,36.748],[-111.852,36.488],[-111.874,36.414],[-111.865,36.32],[-111.826,36.206],[-111.834,36.126],[-111.891,36.081],[-111.995,36.073],[-112.147,36.102],[-112.256,36.151],[-112.322,36.221],[-112.377,36.246],[-112.42,36.226],[-112.459,36.229],[-112.495,36.254],[-112.499,36.288],[-112.467,36.366],[-112.533,36.401],[-112.598,36.402],[-112.693,36.372],[-112.881,36.28]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-105.861,40.165],[-106.126,40.093],[-106.285,40.091],[-106.401,40.062],[-106.482,40.019],[-106.638,39.894],[-106.676,39.89],[-106.726,39.92],[-106.793,39.924],[-106.877,39.902],[-106.969,39.828],[-107.132,39.644],[-107.235,39.602],[-107.734,39.579],[-107.847,39.557],[-107.944,39.512],[-108.242,39.315],[-108.314,39.178],[-108.434,39.099],[-108.558,39.09],[-108.801,39.184],[-108.867,39.201],[-108.952,39.198],[-109.196,39.033],[-109.265,38.935],[-109.306,38.812],[-109.363,38.734],[-109.434,38.702],[-109.596,38.554],[-109.614,38.561],[-109.635,38.546],[-109.648,38.485],[-109.723,38.414],[-109.739,38.35],[-109.785,38.279],[-109.897,38.165],[-110.131,37.962],[-110.248,37.895],[-110.368,37.898]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-105.846,40.404],[-105.821,40.185]]},"properties":{"name":"Colorado"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-122.15,45.594],[-122.65,45.627],[-122.726,45.674],[-122.843,45.978],[-122.942,46.115],[-123.121,46.179],[-123.221,46.154]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-118.168,48.232],[-118.232,48.086],[-118.284,48.035],[-118.346,48.032],[-118.368,47.996],[-118.349,47.927],[-118.351,47.879],[-118.375,47.849],[-118.433,47.857],[-118.525,47.903],[-118.665,47.927],[-118.854,47.93],[-118.983,47.982],[-119.052,48.082],[-119.228,48.101],[-119.511,48.04],[-119.681,48.03],[-119.74,48.073],[-119.801,48.085],[-119.864,48.066],[-119.887,48.029],[-119.87,47.929],[-119.894,47.891],[-119.969,47.813],[-120.14,47.763],[-120.214,47.693],[-120.262,47.575],[-120.273,47.487],[-120.248,47.429],[-120.194,47.382],[-120.068,47.329],[-120.068,47.275],[-120.01,47.219],[-119.992,46.985],[-119.939,46.78],[-119.838,46.674],[-119.687,46.667],[-119.577,46.681],[-119.506,46.716],[-119.417,46.679],[-119.311,46.569],[-119.256,46.456],[-119.253,46.341],[-119.201,46.269],[-119.036,46.206],[-118.925,46.08],[-118.959,46.038],[-119.05,45.981],[-119.177,45.945],[-119.429,45.934],[-119.934,45.838],[-120.156,45.762],[-120.351,45.725],[-121.045,45.639],[-121.184,45.644],[-121.243,45.687],[-121.402,45.712],[-121.663,45.718],[-121.882,45.689],[-122.085,45.603],[-122.15,45.594]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-117.907,49.342],[-117.721,49.331],[-117.676,49.275],[-117.711,49.172],[-117.701,49.098],[-117.648,49.055],[-117.717,48.975],[-117.908,48.858],[-118.021,48.766],[-118.074,48.663]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-117.88,50.103],[-117.917,50.092],[-117.915,50.016],[-117.95,49.971],[-118.029,49.929],[-118.074,49.881],[-118.092,49.802]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-115.865,50.287],[-116.081,50.591],[-116.224,50.758],[-116.365,50.89],[-116.545,51.01],[-116.762,51.12],[-116.931,51.244],[-117.052,51.383],[-117.183,51.471],[-117.324,51.507],[-117.425,51.558],[-117.517,51.659]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-117.873,51.87],[-118.366,52.09]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-118.527,52.102],[-118.581,52.052],[-118.595,51.999],[-118.589,51.925],[-118.611,51.858],[-118.661,51.796],[-118.681,51.742],[-118.672,51.696],[-118.463,51.426],[-118.359,51.323],[-118.289,51.281],[-118.237,51.214],[-118.205,51.12],[-118.195,51.049],[-118.208,51.0],[-118.138,50.903],[-117.906,50.683]]},"properties":{"name":"Columbia"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-101.667,33.54],[-101.426,33.4],[-101.323,33.266],[-101.253,33.201],[-101.18,33.16],[-100.832,33.103],[-100.709,33.044],[-100.501,32.905]]},"properties":{"name":"Double Mountain Fork Brazos"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-118.319,52.522],[-118.572,52.762],[-118.601,52.825],[-118.941,52.983],[-119.175,53.023],[-119.425,53.009],[-119.669,53.056],[-119.906,53.161],[-120.681,53.609],[-121.024,53.778],[-121.584,53.93],[-121.649,53.963],[-121.654,54.002],[-121.738,54.061],[-121.903,54.141],[-122.089,54.201],[-122.295,54.24],[-122.435,54.245],[-122.509,54.215],[-122.551,54.174],[-122.56,54.121],[-122.611,54.046],[-122.704,53.947],[-122.744,53.816],[-122.708,53.534],[-122.67,53.461],[-122.709,53.399],[-122.827,53.348],[-122.804,53.266],[-122.64,53.153],[-122.53,53.042],[-122.475,52.932],[-122.457,52.798],[-122.475,52.642],[-122.436,52.508],[-122.34,52.395],[-122.285,52.259],[-122.27,52.097],[-122.272,51.99],[-122.29,51.937],[-122.321,51.902],[-122.365,51.884],[-122.392,51.846],[-122.408,51.758],[-122.268,51.519],[-122.225,51.407],[-122.232,51.345],[-122.143,51.221],[-121.955,51.038],[-121.858,50.901],[-121.85,50.812],[-121.866,50.766],[-121.906,50.763],[-121.924,50.74],[-121.92,50.698],[-121.744,50.491],[-121.628,50.302],[-121.51,50.047],[-121.449,49.791],[-121.445,49.532],[-121.49,49.387],[-121.582,49.354],[-121.652,49.307],[-121.698,49.246],[-121.874,49.19],[-122.179,49.139],[-122.445,49.141],[-122.673,49.197],[-122.85,49.207],[-123.08,49.131]]},"properties":{"name":"Fraser"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-111.249,33.104],[-111.455,33.04],[-111.648,33.054],[-111.899,33.126],[-112.122,33.222],[-112.32,33.342],[-112.511,33.372],[-112.697,33.311],[-112.767,33.238],[-112.72,33.154],[-112.704,33.087],[-112.717,33.036],[-112.809,33.03],[-112.98,33.067],[-113.084,33.067],[-113.12,33.03],[-113.197,33.001],[-113.317,32.979],[-114.005,32.725],[-114.068,32.735],[-114.19,32.696],[-114.261,32.709],[-114.344,32.763],[-114.428,32.776],[-114.582,32.735]]},"properties":{"name":"Gila"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-108.204,33.577],[-108.114,33.413],[-108.246,33.176],[-108.348,33.091],[-108.464,33.079],[-108.555,32.992],[-108.62,32.828],[-108.71,32.718],[-108.825,32.659],[-108.944,32.657],[-109.067,32.711],[-109.156,32.786],[-109.209,32.881],[-109.264,32.94],[-109.321,32.962],[-109.397,32.943],[-109.492,32.884],[-109.591,32.853],[-109.695,32.85],[-109.846,32.932],[-110.042,33.099],[-110.226,33.186],[-110.398,33.193],[-110.554,33.15],[-110.694,33.056],[-110.814,33.038],[-110.916,33.095],[-111.039,33.121],[-111.256,33.112]]},"properties":{"name":"Gila"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-80.464,36.232],[-80.456,36.206],[-80.481,36.093],[-80.459,36.011],[-80.392,35.943],[-80.365,35.893],[-80.378,35.86],[-80.447,35.841],[-80.465,35.817],[-80.46,35.773],[-80.423,35.742],[-80.354,35.724],[-80.27,35.652],[-80.071,35.401],[-80.055,35.312],[-80.058,35.176],[-80.027,35.109],[-79.963,35.113],[-79.915,35.096],[-79.884,35.06],[-79.884,34.976],[-79.915,34.846],[-79.891,34.738],[-79.812,34.652],[-79.781,34.58],[-79.8,34.523],[-79.791,34.505],[-79.754,34.503],[-79.634,34.3],[-79.596,34.288],[-79.551,34.195],[-79.471,33.934],[-79.334,33.786],[-79.115,33.629],[-79.106,33.583],[-79.123,33.529],[-79.226,33.405]]},"properties":{"name":"Great Pee Dee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-81.42,37.009],[-81.695,36.932],[-81.875,36.853],[-82.589,36.61],[-82.665,36.522],[-82.936,36.401],[-83.387,36.256],[-83.454,36.2],[-83.747,36.076],[-83.9,35.978],[-83.974,35.915],[-83.969,35.87]]},"properties":{"name":"Holston"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-74.074,44.1],[-74.064,44.016],[-74.08,43.982],[-74.119,43.972],[-74.152,43.942],[-74.178,43.86],[-73.971,43.735],[-73.888,43.661],[-73.839,43.576],[-73.83,43.506],[-73.862,43.451],[-73.867,43.383],[-73.846,43.302],[-73.781,43.274],[-73.671,43.297],[-73.617,43.232],[-73.622,43.0],[-73.728,42.714],[-73.767,42.544],[-73.773,42.394],[-73.818,42.265],[-73.901,42.159],[-73.944,42.02],[-73.948,41.765],[-73.984,41.574],[-73.984,41.46],[-73.96,41.331],[-73.97,41.25]]},"properties":{"name":"Hudson"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-123.78,41.277],[-123.837,41.302],[-123.938,41.466],[-123.991,41.523],[-124.093,41.54]]},"properties":{"name":"Klamath"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-121.809,42.251],[-121.785,42.215],[-121.845,42.137],[-121.901,42.126],[-121.966,42.149],[-122.052,42.119],[-122.157,42.036],[-122.257,41.991],[-122.353,41.986],[-122.447,41.951],[-122.54,41.887],[-122.637,41.867],[-122.812,41.892],[-122.999,41.826],[-123.1,41.83],[-123.223,41.866],[-123.342,41.811],[-123.458,41.665],[-123.511,41.532],[-123.503,41.411],[-123.535,41.315],[-123.609,41.244],[-123.679,41.225],[-123.78,41.277]]},"properties":{"name":"Klamath"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-70.48,53.406],[-70.42,53.408],[-70.387,53.435],[-70.362,53.487],[-70.473,53.492],[-70.845,53.428]]},"properties":{"name":"La Grande Rivi\u00e8re"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-71.117,53.591],[-71.277,53.664],[-71.452,53.678],[-71.816,53.646]]},"properties":{"name":"La Grande Rivi\u00e8re"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-72.036,53.598],[-72.094,53.602],[-72.102,53.616],[-72.082,53.655],[-72.113,53.659],[-72.28,53.621],[-72.35,53.63],[-72.389,53.675],[-72.503,53.691],[-72.692,53.679],[-72.852,53.765],[-73.328,53.916],[-73.407,53.914],[-73.714,53.805],[-73.962,53.748],[-74.439,53.684]]},"properties":{"name":"La Grande Rivi\u00e8re"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.42,53.798],[-77.626,53.82],[-77.826,53.806],[-78.088,53.764],[-78.39,53.762],[-78.946,53.832]]},"properties":{"name":"La Grande Rivi\u00e8re"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-110.744,44.727],[-110.859,44.668],[-110.933,44.653],[-111.004,44.662],[-111.054,44.689],[-111.1,44.757]]},"properties":{"name":"Madison"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-111.309,44.868],[-111.406,44.843],[-111.477,44.852],[-111.553,44.892],[-111.626,44.988],[-111.694,45.141],[-111.719,45.263],[-111.701,45.354],[-111.646,45.458],[-111.553,45.573],[-111.493,45.722],[-111.464,45.904],[-111.43,46.025],[-111.39,46.085],[-111.406,46.177],[-111.516,46.36]]},"properties":{"name":"Madison"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-89.376,28.981],[-89.257,29.155],[-89.016,29.203]]},"properties":{"name":"Mississippi"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-89.261,29.155],[-89.289,29.178]]},"properties":{"name":"Mississippi"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-89.289,29.178],[-89.181,29.336]]},"properties":{"name":"Mississippi"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-89.289,29.178],[-89.433,29.294],[-89.666,29.416],[-89.67,29.444],[-89.714,29.486],[-89.758,29.506],[-89.973,29.689],[-90.007,29.754],[-90.012,29.811],[-89.987,29.86],[-89.923,29.888],[-89.933,29.914],[-90.25,29.943],[-90.39,29.976],[-90.464,30.032],[-90.582,30.048],[-90.744,30.023],[-90.849,30.04],[-90.897,30.098],[-90.944,30.127],[-90.99,30.126],[-91.038,30.181],[-91.11,30.209],[-91.133,30.227],[-91.13,30.248],[-91.179,30.285],[-91.195,30.352],[-91.226,30.368],[-91.235,30.402],[-91.218,30.479],[-91.258,30.534],[-91.276,30.615],[-91.338,30.706],[-91.423,30.753],[-91.529,30.756],[-91.557,30.78],[-91.523,30.854],[-91.546,30.908],[-91.646,30.952],[-91.66,30.972],[-91.653,31.03],[-91.611,31.065],[-91.596,31.11],[-91.631,31.218],[-91.618,31.277],[-91.559,31.288],[-91.529,31.345],[-91.529,31.449],[-91.506,31.519],[-91.459,31.555],[-91.373,31.774],[-91.286,31.884],[-91.157,31.971],[-91.093,32.046],[-91.075,32.131],[-90.948,32.24],[-90.938,32.277],[-90.945,32.331],[-90.99,32.381],[-91.059,32.424],[-91.104,32.49],[-91.101,32.541],[-91.15,32.625],[-91.142,32.661],[-91.094,32.694],[-91.092,32.726],[-91.136,32.756],[-91.136,32.809],[-91.093,32.885],[-91.096,32.938],[-91.144,32.967],[-91.153,33.041],[-91.107,33.218],[-91.163,33.294],[-91.168,33.359],[-91.141,33.439],[-91.154,33.5],[-91.193,33.523],[-91.215,33.583],[-91.173,33.617],[-91.17,33.647],[-91.207,33.676],[-91.184,33.716],[-91.1,33.767],[-91.053,33.828],[-91.038,33.901],[-91.07,33.974],[-91.06,33.989],[-90.915,34.049],[-90.909,34.072],[-90.94,34.129],[-90.91,34.189],[-90.817,34.252],[-90.768,34.308],[-90.762,34.356],[-90.718,34.392],[-90.635,34.414],[-90.584,34.504],[-90.564,34.661],[-90.539,34.728],[-90.475,34.76],[-90.468,34.805],[-90.416,34.852],[-90.32,34.899],[-90.282,34.945],[-90.294,35.004],[-90.256,35.046],[-90.142,35.114],[-90.093,35.204],[-90.108,35.314],[-90.066,35.414],[-89.967,35.503],[-89.927,35.592],[-89.943,35.679],[-89.895,35.751],[-89.78,35.806],[-89.764,35.828],[-89.764,35.889],[-89.689,35.921],[-89.709,35.983],[-89.698,36.03],[-89.642,36.105],[-89.634,36.168],[-89.675,36.221],[-89.654,36.248],[-89.584,36.272],[-89.612,36.322],[-89.604,36.352],[-89.555,36.373],[-89.541,36.427],[-89.56,36.513],[-89.55,36.553],[-89.52,36.555],[-89.471,36.489],[-89.452,36.498],[-89.397,36.588],[-89.331,36.616],[-89.256,36.594],[-89.203,36.626],[-89.156,36.716],[-89.13,36.811],[-89.122,36.912],[-89.154,36.992],[-89.272,37.08],[-89.292,37.071],[-89.29,37.013],[-89.352,37.036],[-89.487,37.213],[-89.503,37.301],[-89.462,37.366],[-89.462,37.434],[-89.523,37.576],[-89.523,37.645],[-89.623,37.747],[-89.823,37.884],[-90.174,38.069],[-90.299,38.174],[-90.366,38.254],[-90.374,38.31],[-90.317,38.458],[-90.132,38.819],[-90.134,38.847],[-90.22,38.898],[-90.478,38.948],[-90.577,38.91],[-90.664,38.987],[-90.737,39.182],[-90.919,39.387],[-91.21,39.603],[-91.379,39.749],[-91.426,39.827],[-91.502,40.098],[-91.5,40.226],[-91.442,40.379],[-91.391,40.397],[-91.381,40.448],[-91.394,40.537],[-91.339,40.604],[-91.215,40.65],[-91.102,40.75],[-91.0,40.905],[-90.954,41.016],[-90.964,41.083],[-91.001,41.146],[-91.067,41.206],[-91.082,41.28],[-91.048,41.369],[-90.939,41.426],[-90.754,41.45],[-90.587,41.495],[-90.437,41.56],[-90.348,41.632],[-90.319,41.71],[-90.276,41.77],[-90.218,41.813],[-90.177,41.884],[-90.149,42.054],[-90.168,42.1],[-90.41,42.272],[-90.425,42.326],[-90.485,42.383],[-90.59,42.445],[-90.657,42.521],[-90.688,42.61],[-90.789,42.677],[-90.96,42.72],[-91.07,42.789],[-91.118,42.882],[-91.161,43.102],[-91.148,43.2],[-91.107,43.278],[-91.117,43.331],[-91.178,43.359],[-91.219,43.395],[-91.238,43.44],[-91.278,43.797],[-91.32,43.936],[-91.383,43.991],[-91.716,44.126],[-91.841,44.194],[-91.912,44.289],[-92.055,44.4],[-92.149,44.445],[-92.24,44.462],[-92.313,44.498],[-92.367,44.552],[-92.442,44.587],[-92.537,44.601],[-92.644,44.645],[-92.82,44.758],[-92.963,44.79],[-93.03,44.838],[-93.07,44.912],[-93.119,44.937],[-93.175,44.913],[-93.232,44.963],[-93.291,45.087],[-93.349,45.167],[-93.408,45.202],[-94.063,45.439],[-94.133,45.496],[-94.189,45.577],[-94.212,45.632],[-94.202,45.662],[-94.371,45.853],[-94.389,45.906],[-94.363,46.051],[-94.366,46.125],[-94.394,46.194],[-94.333,46.284],[-94.091,46.482],[-94.057,46.543],[-93.959,46.569],[-93.798,46.559],[-93.692,46.586],[-93.641,46.651],[-93.572,46.698],[-93.486,46.725],[-93.404,46.807],[-93.325,46.944],[-93.309,47.023],[-93.357,47.044],[-93.445,47.16],[-93.509,47.211],[-93.593,47.243],[-93.676,47.249],[-93.759,47.228],[-93.798,47.242],[-93.795,47.29],[-93.829,47.312],[-93.901,47.306],[-93.976,47.336],[-94.094,47.433]]},"properties":{"name":"Mississippi"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-95.026,47.156],[-94.968,47.318],[-94.877,47.451],[-94.794,47.482],[-94.637,47.44]]},"properties":{"name":"Mississippi"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-94.508,47.457],[-94.326,47.406]]},"properties":{"name":"Mississippi"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-98.56,43.06],[-98.143,42.852],[-97.965,42.806],[-97.881,42.85],[-97.698,42.875],[-97.417,42.881],[-97.239,42.861],[-97.164,42.813],[-96.805,42.701],[-96.676,42.638],[-96.633,42.569],[-96.558,42.525],[-96.451,42.506],[-96.384,42.418],[-96.356,42.26],[-96.295,42.133],[-96.201,42.036],[-96.154,41.965],[-96.154,41.92],[-96.131,41.872],[-96.087,41.821],[-96.069,41.734],[-96.078,41.611],[-96.059,41.546],[-96.011,41.538],[-95.991,41.52],[-95.997,41.494],[-95.982,41.474],[-95.944,41.461],[-95.933,41.425],[-95.95,41.367],[-95.936,41.331],[-95.892,41.316],[-95.884,41.288],[-95.911,41.245],[-95.907,41.212],[-95.871,41.188],[-95.847,41.08],[-95.838,40.778],[-95.859,40.745],[-95.826,40.676],[-95.74,40.571],[-95.685,40.466],[-95.662,40.363],[-95.607,40.295],[-95.521,40.265],[-95.464,40.198],[-95.434,40.096],[-95.362,40.01],[-95.116,39.872],[-94.984,39.891],[-94.93,39.861],[-94.893,39.782],[-94.899,39.741],[-94.946,39.739],[-95.005,39.692],[-95.075,39.597],[-95.058,39.509],[-94.953,39.426],[-94.882,39.343],[-94.847,39.259],[-94.778,39.194],[-94.622,39.124],[-94.504,39.124],[-94.421,39.151],[-94.334,39.204],[-94.239,39.207],[-94.136,39.159],[-94.028,39.154],[-93.915,39.19],[-93.513,39.237],[-93.501,39.27],[-93.469,39.271],[-93.418,39.24],[-93.343,39.27],[-93.243,39.361],[-93.108,39.359],[-92.939,39.265],[-92.877,39.192],[-92.922,39.141],[-92.933,39.087],[-92.909,39.03],[-92.816,38.993],[-92.654,38.976],[-92.503,38.89],[-92.293,38.659],[-92.124,38.586],[-91.978,38.598],[-91.801,38.67],[-91.619,38.706],[-91.433,38.707],[-91.238,38.667],[-91.034,38.585],[-90.872,38.579],[-90.661,38.681],[-90.598,38.681],[-90.513,38.732],[-90.404,38.835],[-90.316,38.86],[-90.133,38.819]]},"properties":{"name":"Missouri"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-100.394,44.436],[-100.345,44.374],[-100.225,44.329],[-100.019,44.286],[-99.922,44.245],[-99.934,44.205],[-99.921,44.171],[-99.883,44.142],[-99.685,44.113],[-99.647,44.132],[-99.691,44.179],[-99.684,44.205],[-99.626,44.208],[-99.587,44.178],[-99.568,44.115],[-99.51,44.06],[-99.364,43.991]]},"properties":{"name":"Missouri"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-111.699,46.663],[-111.758,46.671],[-111.885,46.786],[-111.913,46.837],[-111.898,46.863],[-111.919,46.916],[-111.976,46.997],[-111.989,47.057],[-111.959,47.096],[-111.616,47.342],[-111.454,47.415],[-111.348,47.412],[-111.293,47.439],[-111.29,47.498],[-111.237,47.541],[-111.137,47.567],[-111.037,47.632],[-110.938,47.736],[-110.856,47.784],[-110.792,47.777],[-110.617,47.843],[-110.331,47.984],[-110.167,48.043],[-110.124,48.021],[-110.062,47.885],[-109.995,47.816],[-109.886,47.762],[-109.609,47.755],[-109.164,47.794],[-108.935,47.795],[-108.922,47.758],[-108.874,47.718],[-108.788,47.677],[-108.607,47.643],[-108.191,47.602]]},"properties":{"name":"Missouri"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-101.4,47.506],[-101.423,47.484],[-101.362,47.339],[-101.248,47.282],[-101.066,47.26],[-100.979,47.231],[-100.987,47.196],[-100.917,47.087],[-100.902,47.034],[-100.921,46.99],[-100.892,46.904],[-100.777,46.714]]},"properties":{"name":"Missouri"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-106.406,48.021],[-106.367,48.058],[-105.956,48.033],[-105.729,48.042],[-105.542,48.086],[-105.34,48.1],[-105.125,48.083],[-104.978,48.095],[-104.899,48.136],[-104.75,48.15],[-104.529,48.137],[-103.835,47.994],[-103.772,48.027]]},"properties":{"name":"Missouri"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-97.731,54.082],[-97.595,54.241],[-97.569,54.319],[-97.615,54.373],[-97.622,54.429],[-97.591,54.487],[-97.629,54.53],[-97.791,54.571]]},"properties":{"name":"Nelson"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-97.901,54.705],[-97.924,54.774],[-97.957,54.807],[-98.008,54.826],[-98.012,54.863],[-97.946,54.948]]},"properties":{"name":"Nelson"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-79.059,43.278],[-79.066,43.106]]},"properties":{"name":"Niagara"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-117.132,52.014],[-117.011,52.077],[-116.937,52.072],[-116.838,51.993],[-116.534,52.022],[-116.438,52.079],[-116.448,52.176],[-116.39,52.276],[-116.262,52.379],[-116.053,52.437],[-115.764,52.453],[-115.576,52.44],[-115.488,52.399],[-115.398,52.387],[-115.308,52.404],[-115.029,52.345],[-114.975,52.363],[-114.984,52.463],[-115.057,52.644],[-115.111,52.74],[-115.146,52.752],[-115.164,52.785],[-115.184,52.875],[-115.218,52.895],[-115.227,52.94],[-115.211,53.01],[-115.159,53.05],[-115.014,53.083],[-114.841,53.276],[-114.729,53.321],[-114.596,53.314],[-114.483,53.338],[-114.388,53.392],[-114.262,53.396],[-114.104,53.348],[-113.947,53.333],[-113.789,53.35],[-113.691,53.389],[-113.651,53.451],[-113.569,53.5],[-113.445,53.536],[-113.306,53.628],[-113.153,53.777],[-113.024,53.876],[-112.856,53.975],[-112.834,54.023],[-112.732,54.032],[-112.55,54.003],[-112.41,54.006],[-112.313,54.041],[-112.193,54.022],[-112.05,53.948],[-111.92,53.908],[-111.802,53.902],[-111.737,53.87],[-111.726,53.812],[-111.578,53.774],[-111.292,53.755],[-111.094,53.772],[-110.986,53.825],[-110.858,53.851],[-110.712,53.849],[-110.563,53.801],[-110.411,53.707],[-110.302,53.668],[-110.235,53.686],[-110.123,53.661],[-109.967,53.593],[-109.826,53.564],[-109.702,53.573],[-109.613,53.549],[-109.558,53.492],[-109.535,53.452],[-109.543,53.428],[-109.236,53.36],[-109.135,53.308],[-109.022,53.216],[-108.897,53.082],[-108.71,52.971],[-108.459,52.882],[-108.343,52.819],[-108.361,52.755],[-108.328,52.734]]},"properties":{"name":"North Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-108.334,52.734],[-108.103,52.611],[-107.747,52.502],[-107.357,52.338],[-107.18,52.343],[-107.057,52.366],[-106.962,52.441],[-106.895,52.568],[-106.691,52.764],[-106.15,53.171],[-106.085,53.191],[-106.034,53.185],[-105.996,53.154],[-105.456,53.236],[-105.065,53.24]]},"properties":{"name":"North Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-85.186,38.694],[-85.247,38.727],[-85.307,38.737],[-85.405,38.73],[-85.445,38.683],[-85.425,38.597],[-85.459,38.53],[-85.546,38.484],[-85.609,38.423],[-85.646,38.347],[-85.706,38.301],[-85.788,38.285],[-85.855,38.215],[-85.906,38.091],[-85.961,38.014],[-86.021,37.984],[-86.103,37.992],[-86.208,38.037],[-86.268,38.083],[-86.315,38.164],[-86.361,38.179],[-86.365,38.145],[-86.43,38.14],[-86.457,38.12],[-86.448,38.086],[-86.463,38.062],[-86.5,38.047],[-86.549,37.917],[-86.599,37.875],[-86.673,37.889],[-86.77,37.96],[-86.869,37.976],[-86.969,37.938],[-87.044,37.886],[-87.094,37.821],[-87.141,37.805],[-87.209,37.855],[-87.372,37.923],[-87.457,37.938],[-87.518,37.922],[-87.561,37.929],[-87.587,37.956],[-87.615,37.849],[-87.643,37.833],[-87.665,37.846],[-87.679,37.886],[-87.714,37.9],[-87.77,37.885],[-87.892,37.913],[-87.906,37.902],[-87.912,37.818],[-87.938,37.794],[-88.022,37.8],[-88.073,37.771],[-88.129,37.7],[-88.14,37.621],[-88.108,37.534],[-88.191,37.465],[-88.389,37.411],[-88.495,37.364],[-88.507,37.324],[-88.446,37.12],[-88.472,37.088],[-88.614,37.11],[-88.873,37.186],[-89.046,37.183],[-89.135,37.102],[-89.165,37.042],[-89.154,36.992]]},"properties":{"name":"Ohio"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-79.991,40.448],[-80.149,40.522],[-80.223,40.584],[-80.265,40.661],[-80.344,40.686],[-80.638,40.603],[-80.659,40.563],[-80.623,40.512],[-80.604,40.445],[-80.602,40.364],[-80.872,39.736],[-80.874,39.664],[-80.963,39.571],[-81.263,39.387],[-81.333,39.363],[-81.392,39.365],[-81.44,39.393],[-81.493,39.374],[-81.552,39.308],[-81.606,39.274],[-81.657,39.272],[-81.701,39.229],[-81.771,39.099],[-81.803,39.086],[-81.78,38.947],[-81.844,38.934],[-81.897,38.894],[-81.95,38.989],[-82.001,39.011],[-82.072,38.963],[-82.204,38.768],[-82.18,38.638],[-82.202,38.606],[-82.252,38.594],[-82.291,38.552],[-82.318,38.48],[-82.387,38.434],[-82.498,38.415],[-82.621,38.451],[-82.758,38.541],[-82.845,38.628],[-82.88,38.71],[-83.0,38.714],[-83.203,38.639],[-83.357,38.627],[-83.538,38.7],[-83.69,38.65],[-83.752,38.669],[-83.828,38.731],[-83.948,38.774],[-84.113,38.798],[-84.227,38.865],[-84.29,38.975],[-84.358,39.05],[-84.43,39.091],[-84.509,39.103],[-84.595,39.086],[-84.661,39.094],[-84.707,39.129],[-84.766,39.125],[-84.837,39.083],[-84.861,39.04],[-84.835,38.996],[-84.837,38.961],[-84.864,38.933],[-84.854,38.913],[-84.807,38.9],[-84.79,38.868],[-84.801,38.819],[-84.901,38.77],[-85.186,38.694]]},"properties":{"name":"Ohio"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-76.903,45.892],[-76.824,45.88],[-76.754,45.798],[-76.667,45.643],[-76.553,45.542],[-76.413,45.496],[-76.27,45.484],[-76.123,45.505],[-76.001,45.484],[-75.904,45.42],[-75.626,45.451],[-74.864,45.642],[-74.717,45.651],[-74.577,45.632],[-74.315,45.531]]},"properties":{"name":"Ottawa"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.371,46.063],[-77.272,45.954],[-77.155,45.912],[-76.902,45.892]]},"properties":{"name":"Ottawa"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.683,46.187],[-77.373,46.064]]},"properties":{"name":"Ottawa"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.683,46.187],[-77.682,46.187]]},"properties":{"name":"Ottawa"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.684,46.187],[-77.683,46.187]]},"properties":{"name":"Ottawa"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-79.166,46.827],[-79.015,46.607],[-78.903,46.486],[-78.781,46.393],[-78.46,46.307],[-77.683,46.187]]},"properties":{"name":"Ottawa"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-117.682,49.015],[-117.414,49.027],[-117.337,49.007],[-117.324,48.961],[-117.339,48.905],[-117.383,48.84],[-117.391,48.753],[-117.363,48.645],[-117.325,48.569],[-117.278,48.527],[-117.249,48.447],[-117.239,48.33],[-117.122,48.241],[-116.901,48.182],[-116.761,48.178],[-116.705,48.23],[-116.65,48.254],[-116.569,48.25]]},"properties":{"name":"Pend Oreille"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-120.429,41.709],[-120.457,41.558],[-120.514,41.498],[-120.679,41.451],[-120.971,41.397],[-121.115,41.289],[-121.112,41.128],[-121.13,41.023],[-121.171,40.974],[-121.223,40.977],[-121.284,41.032],[-121.347,41.042],[-121.411,41.007],[-121.689,41.015],[-121.763,40.984],[-121.829,40.986],[-121.888,41.02],[-121.932,41.02],[-121.963,40.986],[-121.97,40.947],[-121.952,40.901],[-121.981,40.854],[-122.095,40.784]]},"properties":{"name":"Pit"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-78.325,39.639],[-78.181,39.686],[-78.098,39.678],[-78.027,39.631],[-77.956,39.609],[-77.855,39.6],[-77.872,39.576],[-77.78,39.488],[-77.797,39.461],[-77.792,39.442],[-77.762,39.429],[-77.739,39.354],[-77.669,39.31],[-77.534,39.266],[-77.479,39.221],[-77.506,39.143],[-77.481,39.113],[-77.301,39.053],[-77.19,38.969],[-77.053,38.915],[-77.03,38.889]]},"properties":{"name":"Potomac"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-98.59,21.981],[-98.471,21.965],[-98.425,21.98],[-98.414,22.019],[-98.258,22.066],[-98.217,22.102],[-98.178,22.099],[-98.139,22.056],[-98.097,22.047],[-98.051,22.07],[-98.051,22.123],[-98.015,22.178],[-97.966,22.209],[-97.871,22.219],[-97.782,22.279]]},"properties":{"name":"P\u00e1nuco"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-76.819,47.517],[-76.891,47.539],[-76.92,47.532],[-76.935,47.488]]},"properties":{"name":"R. des Outaouais"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.322,47.573],[-77.457,47.556]]},"properties":{"name":"R. des Outaouais"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-78.813,47.656],[-78.987,47.554],[-79.068,47.537],[-79.113,47.572],[-79.225,47.586],[-79.496,47.577]]},"properties":{"name":"R. des Outaouais"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.544,47.671],[-77.527,47.744]]},"properties":{"name":"R. des Outaouais"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-77.567,47.83],[-77.621,47.818],[-77.729,47.733],[-77.834,47.728],[-77.933,47.79],[-78.004,47.784],[-78.047,47.709],[-78.127,47.688],[-78.342,47.764],[-78.414,47.815],[-78.449,47.861],[-78.445,47.903],[-78.485,47.929],[-78.57,47.938],[-78.641,47.925],[-78.698,47.888],[-78.726,47.823],[-78.724,47.684]]},"properties":{"name":"R. des Outaouais"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-93.377,48.617],[-93.464,48.561],[-93.708,48.525],[-93.804,48.549],[-93.852,48.607],[-94.055,48.659],[-94.621,48.743],[-94.705,48.809],[-94.713,48.863]]},"properties":{"name":"Rainy"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-91.629,48.865],[-91.659,48.792],[-91.757,48.762],[-91.935,48.751],[-92.06,48.76],[-92.132,48.787],[-92.321,48.77],[-92.779,48.678]]},"properties":{"name":"Rainy"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-90.503,49.329],[-90.613,49.219],[-90.59,49.169],[-90.601,49.13],[-90.637,49.086],[-90.756,49.054],[-90.957,49.032],[-91.123,48.973],[-91.319,48.828]]},"properties":{"name":"Rainy"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-99.172,26.564],[-99.108,26.447],[-99.015,26.399],[-98.873,26.381],[-98.765,26.34],[-98.691,26.276],[-98.598,26.238],[-98.486,26.225],[-98.378,26.182],[-98.275,26.111],[-98.083,26.064],[-97.801,26.042],[-97.587,25.984],[-97.44,25.891],[-97.376,25.872],[-97.358,25.871],[-97.339,25.911],[-97.282,25.942],[-97.146,25.961]]},"properties":{"name":"Rio Grande"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-101.039,29.46],[-101.016,29.401],[-100.755,29.183],[-100.659,29.069],[-100.636,28.973],[-100.55,28.821],[-100.332,28.503],[-100.348,28.486],[-100.336,28.428],[-100.296,28.328],[-100.221,28.243],[-100.112,28.173],[-100.001,28.048],[-99.89,27.867],[-99.754,27.73],[-99.595,27.636],[-99.505,27.548],[-99.484,27.467],[-99.486,27.398],[-99.51,27.34],[-99.5,27.286],[-99.455,27.234],[-99.44,27.17],[-99.457,27.057]]},"properties":{"name":"Rio Grande"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-106.566,31.82],[-106.436,31.764],[-106.347,31.679],[-106.256,31.545],[-106.148,31.451],[-106.024,31.398],[-105.813,31.241],[-105.514,30.981],[-105.276,30.807],[-104.979,30.646],[-104.918,30.583],[-104.681,30.134],[-104.681,29.991],[-104.622,29.854],[-104.504,29.678],[-104.401,29.574],[-104.312,29.542],[-104.111,29.386],[-103.99,29.323],[-103.853,29.291],[-103.258,29.001],[-103.168,28.998],[-103.09,29.042],[-103.023,29.132],[-102.957,29.19],[-102.892,29.216],[-102.866,29.258],[-102.878,29.315],[-102.834,29.444],[-102.734,29.644],[-102.615,29.752],[-102.476,29.769],[-102.386,29.807],[-102.343,29.865],[-102.269,29.871],[-102.163,29.825],[-101.991,29.796],[-101.752,29.782],[-101.612,29.787],[-101.546,29.808],[-101.545,29.784],[-101.44,29.777],[-101.38,29.743],[-101.304,29.634]]},"properties":{"name":"Rio Grande"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-107.293,32.91],[-107.24,32.743],[-107.172,32.674],[-107.07,32.649],[-106.975,32.584],[-106.889,32.479],[-106.846,32.399],[-106.847,32.346],[-106.777,32.195],[-106.566,31.82]]},"properties":{"name":"Rio Grande"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-107.181,33.173],[-107.28,33.116]]},"properties":{"name":"Rio Grande"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-107.427,37.776],[-107.067,37.744],[-106.924,37.809],[-106.814,37.792],[-106.688,37.716],[-106.542,37.678],[-106.374,37.678],[-106.196,37.647],[-105.879,37.525],[-105.811,37.469],[-105.763,37.406],[-105.735,37.335],[-105.732,37.24],[-105.752,37.119],[-105.743,36.98],[-105.703,36.823],[-105.695,36.651],[-105.719,36.464],[-105.761,36.339],[-105.85,36.244],[-106.006,36.133],[-106.073,36.048],[-106.101,35.951],[-106.166,35.855],[-106.268,35.76],[-106.343,35.648],[-106.392,35.519],[-106.487,35.376],[-106.628,35.218],[-106.692,35.089],[-106.682,34.989],[-106.716,34.781],[-106.796,34.465],[-106.85,34.295],[-106.878,34.269],[-106.874,33.928],[-106.928,33.749],[-107.048,33.61],[-107.123,33.494],[-107.17,33.356]]},"properties":{"name":"Rio Grande"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-74.818,51.412],[-74.59,51.48],[-74.491,51.49],[-74.445,51.467],[-74.337,51.46],[-74.256,51.405],[-74.169,51.376],[-74.073,51.371],[-73.966,51.387],[-73.891,51.349],[-73.847,51.257],[-73.837,51.175],[-73.861,51.103],[-73.815,51.07],[-73.641,51.078]]},"properties":{"name":"Rupert"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-75.204,51.446],[-75.242,51.527],[-75.481,51.546],[-75.822,51.5],[-76.553,51.364]]},"properties":{"name":"Rupert"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-78.731,51.497],[-78.457,51.397],[-78.157,51.362],[-77.713,51.354],[-77.304,51.378],[-76.931,51.435],[-76.821,51.415]]},"properties":{"name":"Rupert"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-102.78,20.31],[-102.79,20.368],[-103.07,20.443],[-103.121,20.478],[-103.153,20.525],[-103.147,20.587],[-103.19,20.663],[-103.293,20.735],[-103.341,20.795],[-103.332,20.841],[-103.351,20.91],[-103.44,21.051],[-103.478,21.059],[-103.521,21.04],[-103.592,20.972]]},"properties":{"name":"R\u00edo Grande de Santiago"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-103.709,20.938],[-103.842,20.989],[-103.885,21.027],[-103.882,21.068],[-103.93,21.118],[-104.079,21.205]]},"properties":{"name":"R\u00edo Grande de Santiago"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-104.079,21.206],[-104.18,21.2],[-104.33,21.263],[-104.442,21.433],[-104.526,21.502],[-104.664,21.765],[-104.724,21.817],[-104.779,21.822],[-105.0,21.729],[-105.021,21.739],[-105.033,21.777]]},"properties":{"name":"R\u00edo Grande de Santiago"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-105.104,21.822],[-105.207,21.795],[-105.339,21.705],[-105.457,21.672]]},"properties":{"name":"R\u00edo Grande de Santiago"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-79.571,38.415],[-79.385,38.634],[-79.253,38.901],[-79.163,38.999],[-79.071,39.017],[-78.956,39.124],[-78.818,39.32],[-78.705,39.447],[-78.575,39.533],[-78.496,39.533],[-78.46,39.556],[-78.443,39.601],[-78.407,39.628],[-78.325,39.639]]},"properties":{"name":"S. Branch Potomac"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-121.581,38.659],[-121.514,38.618],[-121.504,38.58],[-121.528,38.532],[-121.519,38.366],[-121.546,38.342],[-121.544,38.311],[-121.512,38.273],[-121.572,38.195],[-121.689,38.148],[-121.749,38.08]]},"properties":{"name":"Sacramento"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-122.411,40.721],[-122.432,40.648],[-122.374,40.574],[-122.244,40.474],[-122.182,40.401],[-122.177,40.327],[-122.15,40.319],[-122.187,40.216],[-122.184,40.175],[-122.144,40.159],[-122.104,40.067],[-122.064,39.9],[-122.017,39.794],[-121.964,39.75],[-121.956,39.632],[-122.005,39.317],[-121.992,39.262],[-121.853,39.091],[-121.805,39.002],[-121.797,38.919],[-121.762,38.851],[-121.701,38.796],[-121.649,38.769],[-121.606,38.772],[-121.584,38.744],[-121.581,38.659]]},"properties":{"name":"Sacramento"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-70.264,46.183],[-70.208,46.315],[-70.161,46.374],[-70.075,46.42],[-70.014,46.494],[-69.96,46.514],[-69.893,46.504],[-69.862,46.518],[-69.867,46.558],[-69.729,46.7],[-69.449,46.943],[-69.261,47.08],[-69.167,47.113],[-69.096,47.122],[-69.05,47.108],[-68.961,47.135],[-68.829,47.203],[-68.669,47.253],[-68.377,47.316],[-68.358,47.345],[-68.235,47.346],[-68.097,47.275],[-67.794,47.074],[-67.711,46.984],[-67.698,46.868],[-67.725,46.696],[-67.702,46.584],[-67.628,46.532],[-67.599,46.492],[-67.615,46.462],[-67.546,46.327],[-67.528,46.227],[-67.545,46.109],[-67.497,46.03],[-67.386,45.993],[-67.292,45.977],[-67.214,45.985],[-67.123,45.964],[-67.02,45.914],[-66.935,45.912],[-66.867,45.959],[-66.796,45.982],[-66.684,45.985],[-66.524,45.899],[-66.394,45.858],[-66.24,45.834],[-66.131,45.757],[-66.065,45.628],[-66.053,45.569],[-66.081,45.52],[-66.179,45.435],[-66.218,45.379],[-66.218,45.355],[-66.183,45.335]]},"properties":{"name":"Saint John"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-119.698,37.0],[-119.78,36.897],[-119.94,36.843],[-120.205,36.805],[-120.393,36.866],[-120.504,37.024],[-120.605,37.118],[-120.695,37.148],[-120.856,37.285],[-121.204,37.652]]},"properties":{"name":"San Joaquin"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-118.737,37.096],[-118.808,37.203],[-119.188,37.456],[-119.223,37.438],[-119.323,37.253],[-119.404,37.167],[-119.548,37.12],[-119.601,37.062]]},"properties":{"name":"San Joaquin"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-121.204,37.651],[-121.255,37.703],[-121.303,37.9],[-121.347,37.971],[-121.445,38.004],[-121.525,38.056]]},"properties":{"name":"San Joaquin"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-99.33,53.159],[-99.23,53.185]]},"properties":{"name":"Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-105.065,53.24],[-104.901,53.164],[-104.819,53.157],[-104.765,53.193],[-104.238,53.276],[-104.027,53.344],[-103.894,53.482]]},"properties":{"name":"Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-103.421,53.653],[-103.129,53.752],[-103.045,53.809],[-103.072,53.855],[-103.05,53.922],[-102.978,54.009],[-102.9,54.059],[-102.813,54.071],[-102.686,54.053],[-102.434,53.982]]},"properties":{"name":"Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-102.381,53.966],[-102.188,53.904],[-102.04,53.884],[-101.872,53.885],[-101.732,53.904],[-101.62,53.942],[-101.548,53.981],[-101.516,54.021],[-101.46,53.994],[-101.381,53.903],[-101.265,53.862],[-101.112,53.874],[-101.043,53.859],[-101.056,53.817],[-101.026,53.761],[-100.953,53.69],[-100.782,53.66],[-100.514,53.67],[-100.366,53.654],[-100.323,53.591]]},"properties":{"name":"Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-82.208,33.664],[-82.006,33.523],[-81.936,33.447],[-81.933,33.39],[-81.909,33.349],[-81.864,33.325],[-81.78,33.195],[-81.699,33.127],[-81.578,33.069],[-81.49,32.936],[-81.434,32.728],[-81.377,32.607],[-81.29,32.557],[-81.171,32.38],[-81.133,32.275],[-81.135,32.182],[-81.075,32.11],[-80.872,32.03]]},"properties":{"name":"Savannah"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-82.819,34.366],[-82.589,34.017]]},"properties":{"name":"Savannah"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-128.57,57.079],[-128.284,56.907],[-127.851,56.717],[-127.621,56.574],[-127.448,56.417],[-127.384,56.322],[-127.428,56.289],[-127.543,56.278],[-127.728,56.291],[-127.858,56.274],[-127.931,56.228],[-127.967,56.169],[-127.965,56.096],[-127.939,56.03],[-127.89,55.972],[-127.889,55.904],[-127.936,55.829],[-127.891,55.779],[-127.753,55.756],[-127.703,55.721],[-127.739,55.675],[-127.72,55.594],[-127.645,55.478],[-127.627,55.405],[-127.665,55.374],[-127.685,55.33],[-127.685,55.274],[-127.717,55.218],[-127.781,55.162],[-127.903,55.126],[-128.085,55.11],[-128.225,55.073],[-128.323,55.018],[-128.374,54.967],[-128.377,54.923],[-128.294,54.809],[-128.317,54.725],[-128.47,54.567],[-129.484,54.242],[-129.626,54.23]]},"properties":{"name":"Skeena"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-113.474,42.675],[-113.624,42.578],[-113.785,42.538],[-114.008,42.522],[-114.284,42.554],[-114.614,42.635],[-114.813,42.707],[-114.882,42.771],[-114.913,42.825],[-114.908,42.871],[-114.961,42.9],[-115.072,42.913],[-115.144,42.941],[-115.176,42.985],[-115.257,42.989],[-115.386,42.953],[-115.569,42.956],[-115.806,42.999],[-115.974,42.978],[-116.079,43.019],[-116.257,43.129],[-116.359,43.212],[-116.386,43.269],[-116.439,43.304],[-116.516,43.316],[-116.606,43.364],[-116.707,43.448],[-116.767,43.514],[-116.785,43.562],[-116.865,43.617],[-117.006,43.679],[-117.064,43.734],[-116.958,43.964],[-116.944,44.038],[-116.961,44.079],[-116.95,44.119],[-116.911,44.157],[-116.912,44.199],[-116.953,44.245],[-117.029,44.276],[-117.14,44.29],[-117.197,44.344],[-117.202,44.436],[-117.119,44.578],[-116.949,44.77],[-116.856,44.906],[-116.84,44.985],[-116.549,45.457],[-116.477,45.641],[-116.521,45.722],[-116.617,45.799],[-116.765,45.873],[-116.869,45.958],[-116.93,46.056],[-116.948,46.124],[-116.922,46.164],[-116.943,46.232],[-117.039,46.397],[-117.029,46.433],[-117.07,46.449],[-117.162,46.445],[-117.214,46.468],[-117.224,46.517],[-117.393,46.664],[-117.503,46.709],[-117.615,46.715],[-117.702,46.698],[-117.764,46.655],[-117.875,46.618],[-118.035,46.586],[-118.205,46.577],[-118.386,46.59],[-118.546,46.527],[-118.688,46.387],[-118.827,46.291],[-119.036,46.206]]},"properties":{"name":"Snake"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-112.864,42.812],[-113.022,42.686],[-113.135,42.646],[-113.316,42.654]]},"properties":{"name":"Snake"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-111.188,43.339],[-111.348,43.448],[-111.409,43.51],[-111.425,43.561],[-111.586,43.635],[-111.894,43.73],[-112.043,43.708],[-112.033,43.568],[-112.072,43.446],[-112.159,43.343],[-112.312,43.225],[-112.639,43.024]]},"properties":{"name":"Snake"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-110.631,43.837],[-110.727,43.62],[-110.837,43.478],[-110.825,43.435],[-110.738,43.378],[-110.725,43.336],[-110.754,43.274],[-110.837,43.226],[-110.983,43.19],[-111.048,43.207]]},"properties":{"name":"Snake"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-106.853,51.263],[-107.015,51.388],[-107.067,51.464],[-107.062,51.533],[-106.993,51.608],[-106.776,51.748],[-106.744,51.792],[-106.738,51.853],[-106.755,51.976],[-106.727,51.986],[-106.713,52.055],[-106.574,52.198],[-106.294,52.441],[-106.148,52.616],[-106.135,52.722],[-106.103,52.808],[-106.054,52.873],[-105.903,52.932],[-105.651,52.983],[-105.497,53.046],[-105.442,53.122],[-105.373,53.153],[-105.289,53.139],[-105.201,53.159],[-105.065,53.24]]},"properties":{"name":"South Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-116.422,51.667],[-116.357,51.651],[-116.319,51.612],[-116.271,51.51],[-115.86,51.273],[-115.658,51.194],[-115.53,51.194],[-115.414,51.159],[-115.312,51.09],[-115.1,51.103],[-114.781,51.198],[-114.48,51.196],[-114.197,51.094],[-114.041,50.999],[-114.01,50.909],[-113.94,50.85],[-113.832,50.825],[-113.581,50.799],[-113.447,50.813],[-113.31,50.848],[-113.19,50.838],[-113.088,50.783],[-113.003,50.767],[-112.933,50.788],[-112.809,50.789],[-112.632,50.77],[-112.524,50.729],[-112.485,50.665],[-112.444,50.631],[-112.4,50.626],[-112.357,50.574],[-112.316,50.475],[-112.263,50.422],[-112.197,50.415],[-112.168,50.393],[-112.173,50.355],[-112.101,50.238],[-112.031,50.205],[-111.941,50.204],[-111.825,50.176],[-111.684,50.121],[-111.609,50.065],[-111.6,50.01],[-111.643,49.937],[-111.607,49.904],[-111.422,49.934],[-111.342,50.001],[-111.264,50.041],[-111.188,50.055],[-110.775,50.046],[-110.66,50.059],[-110.681,50.095],[-110.664,50.12],[-110.58,50.155],[-110.577,50.185],[-110.632,50.235],[-110.632,50.299],[-110.594,50.404],[-110.529,50.448],[-110.436,50.433],[-110.391,50.463],[-110.393,50.537],[-110.344,50.59],[-110.158,50.661],[-110.084,50.714],[-110.054,50.754],[-110.068,50.781],[-110.054,50.81],[-109.998,50.863],[-110.011,50.884],[-109.897,50.938],[-109.188,51.004],[-108.925,51.002],[-108.846,50.965],[-108.576,50.925],[-108.441,50.858],[-108.326,50.737],[-108.203,50.672],[-108.006,50.658]]},"properties":{"name":"South Saskatchewan"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-120.882,42.4],[-121.048,42.441],[-121.437,42.482],[-121.604,42.525],[-121.679,42.583],[-121.776,42.579],[-121.889,42.512],[-121.921,42.475]]},"properties":{"name":"Sprague"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-82.417,43.017],[-82.488,42.74],[-82.545,42.625],[-82.645,42.558]]},"properties":{"name":"St. Clair"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-74.709,45.004],[-74.857,45.004],[-74.996,44.97],[-75.179,44.899],[-75.401,44.772],[-75.792,44.497]]},"properties":{"name":"St. Lawrence"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-87.7,34.773],[-87.814,34.763],[-87.965,34.844],[-88.191,35.012],[-88.306,35.126],[-88.311,35.185],[-88.282,35.239],[-88.188,35.329],[-88.19,35.366],[-88.139,35.391],[-87.994,35.418],[-88.018,35.434],[-87.986,35.511],[-87.987,35.579],[-88.02,35.67],[-88.01,35.767],[-87.943,35.925],[-87.975,35.945]]},"properties":{"name":"Tennessee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-83.969,35.87],[-84.344,35.736],[-84.4,35.743],[-84.457,35.775],[-84.542,35.863],[-84.598,35.803],[-84.63,35.789],[-84.656,35.803],[-84.82,35.566],[-84.862,35.559],[-84.89,35.528],[-84.902,35.472],[-84.924,35.45],[-84.957,35.461],[-85.013,35.391],[-85.092,35.242],[-85.182,35.132],[-85.285,35.062],[-85.347,35.05],[-85.367,35.095],[-85.392,35.096],[-85.424,35.055],[-85.46,35.05],[-85.501,35.081],[-85.559,35.08],[-85.635,35.049],[-85.839,34.803],[-86.115,34.528],[-86.294,34.403],[-86.378,34.427],[-86.462,34.478],[-86.546,34.557],[-86.666,34.591],[-86.899,34.575]]},"properties":{"name":"Tennessee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-88.283,37.022],[-88.472,37.088]]},"properties":{"name":"Tennessee"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-83.356,34.708],[-83.167,34.6]]},"properties":{"name":"Tugaloo"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-100.344,22.117],[-99.993,21.945],[-99.902,21.864],[-99.84,21.756],[-99.782,21.703],[-99.73,21.705],[-99.665,21.664],[-99.621,21.673],[-99.559,21.719],[-99.46,21.719],[-99.324,21.672],[-99.191,21.699],[-99.06,21.799],[-98.952,21.851],[-98.868,21.855],[-98.807,21.89],[-98.769,21.957],[-98.728,21.988],[-98.59,21.981]]},"properties":{"name":"Verde"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-84.755,40.359],[-84.647,40.356],[-84.639,40.371],[-84.757,40.44],[-84.759,40.525],[-84.794,40.567],[-84.886,40.588],[-85.007,40.65],[-85.156,40.752],[-85.317,40.826],[-85.49,40.872],[-85.677,40.863],[-85.877,40.801],[-86.113,40.763],[-86.383,40.75],[-86.618,40.66],[-86.818,40.494],[-86.955,40.412],[-87.029,40.415],[-87.117,40.39],[-87.404,40.214],[-87.445,40.127],[-87.438,40.018],[-87.419,39.941],[-87.388,39.895],[-87.378,39.808],[-87.413,39.568],[-87.452,39.467],[-87.507,39.392],[-87.579,39.344],[-87.611,39.291],[-87.603,39.234],[-87.615,39.193],[-87.647,39.169],[-87.632,39.107],[-87.568,39.007],[-87.53,38.909],[-87.518,38.812],[-87.529,38.742],[-87.584,38.679],[-87.636,38.543],[-87.681,38.488],[-87.735,38.47],[-87.784,38.419],[-87.827,38.336],[-87.873,38.295],[-87.921,38.298],[-87.957,38.282],[-87.98,38.249],[-87.977,38.214],[-87.949,38.178],[-87.958,38.144],[-88.006,38.113],[-87.99,38.089],[-88.026,38.06],[-88.045,38.013],[-88.043,37.937],[-88.059,37.898],[-88.091,37.897],[-88.095,37.876],[-88.042,37.789]]},"properties":{"name":"Wabash"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-122.095,43.422],[-122.219,43.485],[-122.371,43.515],[-122.424,43.574],[-122.427,43.672],[-122.458,43.746],[-122.517,43.795],[-122.96,44.024],[-123.119,44.15],[-123.184,44.323],[-123.22,44.513],[-123.189,44.599],[-123.103,44.644],[-123.077,44.68],[-123.112,44.707],[-123.116,44.747],[-123.09,44.802],[-123.098,44.836],[-123.14,44.849],[-123.124,44.887],[-123.05,44.947],[-123.024,44.999],[-123.046,45.042],[-123.036,45.081],[-122.993,45.117],[-122.987,45.157],[-123.018,45.202],[-123.016,45.238],[-122.981,45.267],[-122.902,45.288],[-122.718,45.306],[-122.621,45.368],[-122.603,45.427],[-122.634,45.502],[-122.677,45.56],[-122.732,45.603],[-122.745,45.649],[-122.726,45.674]]},"properties":{"name":"Willamette"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-94.615,49.993],[-94.651,50.024],[-94.639,50.101],[-94.668,50.135],[-94.809,50.15],[-94.931,50.131],[-94.999,50.141],[-95.013,50.18],[-95.179,50.261],[-95.207,50.34],[-95.276,50.366],[-95.398,50.369],[-95.506,50.323],[-95.6,50.228],[-95.726,50.17],[-95.883,50.148],[-95.987,50.148],[-96.036,50.168],[-96.052,50.205],[-96.026,50.283]]},"properties":{"name":"Winnipeg"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-95.989,50.404],[-96.005,50.451],[-96.295,50.625]]},"properties":{"name":"Winnipeg"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-81.576,36.074],[-81.522,36.047],[-81.465,36.055],[-81.349,36.106],[-80.899,36.225],[-80.674,36.259],[-80.464,36.232]]},"properties":{"name":"Yadkin"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-72.991,46.177],[-73.079,46.16],[-73.146,46.124],[-73.177,46.071],[-73.164,46.044]]},"properties":{"name":null}}]}
+61 -2
src/geo.rs
··· 1 - // Geographic data layers: state boundaries and route lines 2 - // Parsed from embedded GeoJSON at compile time. 1 + // Geographic data layers: state boundaries, route lines, rivers, and cities 2 + // Parsed from embedded GeoJSON/JSON at compile time. 3 3 4 4 use anyhow::{Context, Result}; 5 5 ··· 10 10 pub name: String, 11 11 } 12 12 13 + /// A city/populated place. 14 + #[derive(Debug, Clone)] 15 + pub struct City { 16 + pub name: String, 17 + pub lon: f64, 18 + pub lat: f64, 19 + pub population: u64, 20 + } 21 + 13 22 /// All static geographic layers for rendering. 14 23 #[derive(Debug, Clone)] 15 24 pub struct GeoLayers { 16 25 pub state_boundaries: Vec<LineSegment>, 17 26 pub routes: Vec<LineSegment>, 27 + pub rivers: Vec<LineSegment>, 28 + pub cities: Vec<City>, 18 29 } 19 30 20 31 // Embed the data files at compile time 21 32 const STATES_JSON: &str = include_str!("../data/us-states.json"); 22 33 const ROUTES_JSON: &str = include_str!("../data/routes.json"); 34 + const RIVERS_JSON: &str = include_str!("../data/rivers.json"); 35 + const CITIES_JSON: &str = include_str!("../data/cities.json"); 23 36 24 37 impl GeoLayers { 25 38 pub fn load() -> Result<Self> { 26 39 let state_boundaries = parse_states(STATES_JSON)?; 27 40 let routes = parse_routes(ROUTES_JSON)?; 41 + let rivers = parse_routes(RIVERS_JSON)?; // same format as routes 42 + let cities = parse_cities(CITIES_JSON)?; 28 43 Ok(Self { 29 44 state_boundaries, 30 45 routes, 46 + rivers, 47 + cities, 31 48 }) 32 49 } 33 50 } ··· 108 125 Ok(segments) 109 126 } 110 127 128 + fn parse_cities(json: &str) -> Result<Vec<City>> { 129 + let data: Vec<serde_json::Value> = 130 + serde_json::from_str(json).context("failed to parse cities JSON")?; 131 + 132 + Ok(data 133 + .iter() 134 + .filter_map(|c| { 135 + Some(City { 136 + name: c["name"].as_str()?.to_string(), 137 + lon: c["lon"].as_f64()?, 138 + lat: c["lat"].as_f64()?, 139 + population: c["pop"].as_u64().unwrap_or(0), 140 + }) 141 + }) 142 + .collect()) 143 + } 144 + 111 145 #[cfg(test)] 112 146 mod tests { 113 147 use super::*; ··· 124 158 layers.routes.len() > 100, 125 159 "should have 100+ route segments, got {}", 126 160 layers.routes.len() 161 + ); 162 + assert!( 163 + layers.rivers.len() > 50, 164 + "should have 50+ river segments, got {}", 165 + layers.rivers.len() 166 + ); 167 + assert!( 168 + layers.cities.len() > 100, 169 + "should have 100+ cities, got {}", 170 + layers.cities.len() 127 171 ); 128 172 } 129 173 ··· 143 187 let layers = GeoLayers::load().unwrap(); 144 188 let named = layers.routes.iter().filter(|r| !r.name.is_empty()).count(); 145 189 assert!(named > 100, "most routes should have names"); 190 + } 191 + 192 + #[test] 193 + fn test_cities_sorted_by_population() { 194 + let layers = GeoLayers::load().unwrap(); 195 + assert_eq!(layers.cities[0].name, "New York"); 196 + assert!(layers.cities[0].population > layers.cities.last().unwrap().population); 197 + } 198 + 199 + #[test] 200 + fn test_rivers_have_points() { 201 + let layers = GeoLayers::load().unwrap(); 202 + for seg in &layers.rivers { 203 + assert!(seg.points.len() >= 2, "river should have at least 2 points"); 204 + } 146 205 } 147 206 }
+60 -10
src/ui.rs
··· 145 145 .map(|g| segments_to_lines(&g.routes, Color::Rgb(60, 80, 140))) 146 146 .unwrap_or_default(); 147 147 148 + let river_lines = app 149 + .geo 150 + .as_ref() 151 + .map(|g| segments_to_lines(&g.rivers, Color::Rgb(30, 50, 80))) 152 + .unwrap_or_default(); 153 + 154 + // Cities visible based on zoom level and population 155 + let city_labels: Vec<(f64, f64, String)> = app 156 + .geo 157 + .as_ref() 158 + .map(|g| { 159 + let min_pop = if vp_width > 40.0 { 160 + 2_000_000 // zoomed out: only major cities 161 + } else if vp_width > 20.0 { 162 + 500_000 163 + } else if vp_width > 10.0 { 164 + 100_000 165 + } else { 166 + 30_000 // zoomed in: most cities 167 + }; 168 + g.cities 169 + .iter() 170 + .filter(|c| c.population >= min_pop) 171 + .filter(|c| vp.contains(c.lon, c.lat)) 172 + .map(|c| (c.lon, c.lat, c.name.clone())) 173 + .collect() 174 + }) 175 + .unwrap_or_default(); 176 + 148 177 let canvas = Canvas::default() 149 178 .block( 150 179 Block::default() ··· 161 190 // Layer 1: Coastlines (built-in ratatui world map) 162 191 ctx.draw(&Map { 163 192 resolution: MapResolution::High, 164 - color: Color::Rgb(40, 40, 50), 193 + color: Color::Rgb(35, 38, 45), 165 194 }); 166 195 167 - // Layer 2: State boundaries 196 + // Layer 2: Rivers 197 + for &(x1, y1, x2, y2, color) in &river_lines { 198 + ctx.draw(&CanvasLine { 199 + x1, 200 + y1, 201 + x2, 202 + y2, 203 + color, 204 + }); 205 + } 206 + 207 + // Layer 3: State boundaries 168 208 for &(x1, y1, x2, y2, color) in &state_lines { 169 209 ctx.draw(&CanvasLine { 170 210 x1, ··· 175 215 }); 176 216 } 177 217 178 - // Layer 3: Amtrak routes 218 + // Layer 4: City labels 219 + for (lon, lat, ref name) in &city_labels { 220 + ctx.print( 221 + *lon, 222 + *lat, 223 + Span::styled(name.clone(), Style::default().fg(Color::Rgb(70, 70, 85))), 224 + ); 225 + } 226 + 227 + // Layer 5: Amtrak routes 179 228 for &(x1, y1, x2, y2, color) in &route_lines { 180 229 ctx.draw(&CanvasLine { 181 230 x1, ··· 186 235 }); 187 236 } 188 237 189 - // Layer 4: Station markers — visible at zoom, code labels at detail zoom 190 - let show_station_codes = vp_width < 25.0; 238 + // Layer 6: Station markers — small dots, codes at zoom 239 + let show_station_codes = vp_width < 20.0; 191 240 for station in &station_dots { 192 241 let (marker, color) = if station.is_selected { 193 242 ("◉", Color::Cyan) 194 243 } else { 195 - ("○", Color::Rgb(120, 130, 160)) 244 + ("·", Color::Rgb(100, 110, 140)) 196 245 }; 197 246 ctx.print( 198 247 station.lon, ··· 203 252 let label_color = if station.is_selected { 204 253 Color::Cyan 205 254 } else { 206 - Color::Rgb(90, 95, 110) 255 + Color::Rgb(80, 85, 100) 207 256 }; 208 257 ctx.print( 209 - station.lon + vp_width * 0.008, 258 + station.lon + vp_width * 0.006, 210 259 station.lat, 211 260 Span::styled(station.code.clone(), Style::default().fg(label_color)), 212 261 ); 213 262 } 214 263 } 215 264 216 - // Layer 5: Train markers — colored dots, brightness = speed 265 + // Layer 7: Train markers — circles, color intensity = speed 217 266 for dot in &dots { 267 + let marker = if dot.is_selected { "◉" } else { "○" }; 218 268 ctx.print( 219 269 dot.lon, 220 270 dot.lat, 221 271 Span::styled( 222 - "•", 272 + marker, 223 273 Style::default().fg(dot.color).add_modifier(Modifier::BOLD), 224 274 ), 225 275 );