[ Launch: bart ridership particles ] 6199528 by enjalot
[ Launch: bart ridership particles ] 6199075 by enjalot
[ Launch: bart particles ] 6198816 by enjalot
[ Launch: bart paths ] 6149065 by enjalot
-
-
Save enjalot/6199528 to your computer and use it in GitHub Desktop.
bart ridership particles
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div> | |
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |
width="694.36px" height="552.46px" viewBox="0 0 694.36 552.46" enable-background="new 0 0 694.36 552.46" xml:space="preserve"> | |
<g id="water"> | |
<path id="path4193" sodipodi:nodetypes="ccsczzsszzzzzzzzzzzzzzzzzzzzzzsszzzzsszzzzzzzzzzzzzsszzzzzzzzzzzcczzzzzzzzzzzzzzzzcccczzzzczzzzzzzzzsszzzczzss" inkscape:export-ydpi="90" inkscape:export-xdpi="90" fill="#EBF9F6" stroke="#AFE9DD" stroke-width="0.7247" d=" | |
M505.215,560.656h1.703c8.211-0.051,7.418,3.578,7.418,6.727s0.168,6.727-7.418,6.727H411.02c-4.379,0-8.936-2.363-12.031-5.725 | |
l-12.145-13.186c-3.068-3.332-4.902-8.383-4.902-13.096v-0.332c0-3.676-3.84-7.752-7.225-7.752h-13.846 | |
c-4.322,0-8.842-2.273-11.898-5.59l-60.931-66.156c-3.032-3.291-4.799-8.303-4.799-12.959v-26.43 | |
c-0.005-3.664-4.071-7.395-7.431-7.395h-2.162c-3.269,0-7.161-3.725-7.161-7.275v-1.906c0-3.615,3.965-7.41,7.296-7.41h13.646 | |
c3.512,0,7.404-4.326,7.404-8.139v-1.467c0-4.672-2.12-9.544-5.164-12.848l-13.24-14.376c-3.058-3.319-5.061-8.274-5.061-12.97 | |
v-74.176c0-4.627-1.958-9.517-4.972-12.789l-48.62-52.788c-3.228-3.504-8.075-5.722-12.639-5.722h-60.691 | |
c-4.247,0-8.888-1.704-11.891-4.964l-2.293-2.489c-3.08-3.343-7.733-5.383-12.088-5.383h-11.369c-3.038,0-6.54,3.592-6.54,6.89 | |
v4.564c0,5-2.475,10.111-5.731,13.646l-4.585,4.979c-3.145,3.415-7.93,5.412-12.377,5.412H54.531c-4.329,0-8.948,2.045-12.01,5.369 | |
l-7.337,7.966c-3.083,3.348-5.187,8.305-5.187,13.039v487.713v42.32H-91.217V-36.824L96.672,167.173 | |
c3.27,3.55,8.123,5.942,12.747,5.942h14.332c4.32,0,8.978-1.913,12.033-5.229l4.132-4.486c3.026-3.286,7.562-5.386,11.842-5.386 | |
h11.188c3.107,0,6.379-4.006,6.379-7.38v-0.617c0-4.395-1.803-9.064-4.665-12.171l-4.14-4.494 | |
c-2.361-2.563-2.629-8.283-0.291-10.871l0.524-0.58c2.146-2.375,7.025-2.279,9.191,0.073l14.126,15.337 | |
c3.227,3.504,8.118,5.601,12.682,5.601h13.2c2.264,0,4.663-1.111,6.263-2.849l23.673-23.988c1.642-1.664,3.894-2.979,6.134-2.979 | |
h22.493c3.69,0,7.838-4.48,7.838-8.487v-15.71c0-4.807-2.021-9.892-5.151-13.291l-3.814-4.142 | |
c-3.047-3.309-4.944-8.291-4.944-12.97V10.921c0-4.648,1.798-9.636,4.826-12.923l4.099-4.45c2.998-3.254,7.46-5.413,11.699-5.413 | |
h62.422c4.662,0,9.501,2.542,12.796,6.12l8.885,9.646c3.238,3.517,7.557,6.997,12.139,6.997h377.885v13.789h-378.42 | |
c-4.324,0-8.723,2.576-11.779,5.895L325.018,76.16c-3.193,3.468-4.885,8.819-4.885,13.724v52.147c0,3.395,3.476,7.236,6.603,7.236 | |
h0.649c3.174,0,6.658,3.946,6.658,7.393v102.216c0,4.906,2.333,9.97,5.528,13.439l52.886,57.42c1.41,1.531-0.414,5.95-2.408,5.95 | |
h-7.117c-3.371,0-6.98,4.282-6.98,7.942v1.994c0,4.613,1.912,9.508,4.918,12.771l3.902,4.237c3.096,3.36,7.729,5.525,12.105,5.525 | |
h14.855c4.342,0,8.969,2.062,12.039,5.396l0.76,0.825c3.232,3.509,5.518,8.669,5.518,13.632v90.807 | |
c0,4.764,1.988,9.811,5.092,13.18l58.086,63.066C496.303,558.4,500.866,560.656,505.215,560.656z"/> | |
</g> | |
<g id="lines"> | |
<g> | |
<path id="red" fill="none" stroke="#D40000" stroke-width="6" d="M226.268,494.363 | |
l-68.682-68.682c-6.028-6.027-9.962-15.029-9.962-23.555v-10.774c0-11.491,5.132-23.696,13.258-31.821l10.865-10.865 | |
c4.809-4.808,8.002-11.965,8.002-18.764v-12.568c0-11.479,5.236-23.626,13.353-31.743l41.627-41.627 | |
c8.027-8.027,20.165-12.903,31.517-12.903h126.1c6.273,0,13.428-6.916,13.428-13.19V113.155c0-6.105-6.607-13.187-12.715-13.187 | |
h-54.208"/> | |
<path id="orange" fill="none" stroke="#FF7F2A" stroke-width="6" d="M338.892,93.968 | |
h53.455c8.992,0,19.316,9.838,19.316,18.83v159.524c0,6.988,2.959,14.479,7.9,19.42l244.646,244.646"/> | |
<path id="yellow" fill="none" stroke="#FFCC00" stroke-width="6" d=" | |
M264.31,468.792h-43.9c-6.922,0-14.285-3.068-19.179-7.963l-39.585-39.586c-4.831-4.83-8.011-12.033-8.011-18.863v-10.404 | |
c0-10.197,4.478-21.061,11.688-28.271l10.92-10.921c5.9-5.899,9.561-14.79,9.561-23.135v-12.493 | |
c0-9.861,4.399-20.339,11.372-27.312l41.717-41.716c6.987-6.986,17.598-11.116,27.479-11.116h138.652 | |
c5.988,0,12.689-6.725,12.689-12.712v-45.474c0-6.225,6.836-13.348,13.061-13.348h29.25c6.863,0,14.172-3.016,19.025-7.868 | |
L595.018,41.639"/> | |
<path id="blue" fill="none" stroke="#006680" stroke-width="6" d="M645.465,396.32 | |
h-92.941c-6.994,0-14.463-3.023-19.41-7.969L397.477,252.713c-6.023-6.024-15.131-9.685-23.65-9.685H266.372 | |
c-8.349,0-17.336,3.434-23.24,9.337l-41.627,41.628c-5.989,5.988-9.616,15.049-9.616,23.52v12.136 | |
c0,9.985-4.433,20.604-11.494,27.665l-10.642,10.642c-5.985,5.985-10.085,14.842-10.085,23.308v33.592 | |
c0,6.92,3.106,14.264,7.999,19.156l53.391,53.391"/> | |
<path id="green" fill="none" stroke="#225500" stroke-width="6" d="M671.17,534.73 | |
L392.936,256.496c-4.807-4.808-12.057-7.781-18.855-7.781H266.499c-6.934,0-14.342,2.995-19.245,7.898l-41.564,41.564 | |
c-4.966,4.967-7.946,12.49-7.946,19.514v11.958c0,11.423-5.014,23.592-13.091,31.669l-10.768,10.768 | |
c-4.925,4.926-8.303,12.211-8.303,19.178v7.143"/> | |
</g> | |
</g> | |
</svg> | |
<canvas id=canvas></canvas> | |
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"description":"bart ridership particles","endpoint":"","display":"div","public":true,"require":[{"name":"crossfilter","url":"http://square.github.io/crossfilter/crossfilter.v1.min.js"}],"fileconfigs":{"inlet.js":{"default":true,"vim":false,"emacs":false,"fontSize":12},"bart.svg":{"default":true,"vim":false,"emacs":false,"fontSize":12},"_.md":{"default":true,"vim":false,"emacs":false,"fontSize":12},"config.json":{"default":true,"vim":false,"emacs":false,"fontSize":12},"seglist.js":{"default":true,"vim":false,"emacs":false,"fontSize":12},"bart.html":{"default":true,"vim":false,"emacs":false,"fontSize":12},"style.css":{"default":true,"vim":false,"emacs":false,"fontSize":12},"stations.json":{"default":true,"vim":false,"emacs":false,"fontSize":12},"ridership.json":{"default":true,"vim":false,"emacs":false,"fontSize":12}},"fullscreen":false,"play":true,"loop":true,"restart":false,"autoinit":true,"pause":true,"loop_type":"period","bv":false,"nclones":15,"clone_opacity":0.4,"duration":3000,"ease":"linear","dt":0.01,"thumbnail":"http://i.imgur.com/RoDpg2w.png"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var r = 10; //max offset from subway line | |
var pAlpha = 0.31; | |
var speed = 5 | |
var startStations = []//["MA", "EM"]; | |
var endStations = []//["CC", "RM"]; | |
tributary.duration = 20000; | |
var lineCardinal = { | |
"blue": {x: 1, y: -1 }, | |
"green": {x: -1, y: 1 }, | |
"red": {x:1, y: -1}, | |
"yellow": {x: -1, y: 1}, | |
"orange": {x: -1, y: 1} | |
} | |
//june 2013 average daily ridership | |
var ridership = tributary.ridership; | |
tributary.ppl = []; | |
var svg = d3.select("svg"); | |
var display = d3.select("#display"); | |
tributary.canvas = d3.select("#canvas").classed("tributary_canvas",true).node(); | |
tributary.ctx = tributary.canvas.getContext('2d'); | |
var ctx = tributary.ctx; | |
var canvas = tributary.canvas; | |
tributary.canvas.width = tributary.sw; | |
tributary.canvas.height = tributary.sh; | |
ctx.globalCompositeOperation = 'source-over'; | |
ctx.globalAlpha = 0.65; | |
function clear() { | |
if(!tributary.canvas) return; | |
tributary.ctx.fillStyle = 'rgba(255,255,255,0.081)' | |
tributary.ctx.fillRect(0, 0, tributary.sw, tributary.sh); | |
} | |
var stationMap = {}; | |
tributary.stations.forEach(function(station) { | |
stationMap[station.code] = station; | |
}) | |
var lineMap = {}; | |
d3.selectAll("#lines").selectAll("path").each(function() { | |
lineMap[d3.select(this).attr("id")] = this; | |
}) | |
//each trip has a start and stop station; | |
var allTrips = []; | |
var len = ridership.data.length -1; | |
for(var i = 0; i < len; i++) { | |
var entry = ridership.cols[i]; | |
var start = stationMap[entry]; | |
for(var j = 0; j < len; j++) { | |
if(i == j) continue; | |
var exit = ridership.rows[j] | |
var end = stationMap[exit]; | |
var lines = matchLines(start, end); | |
if(entry == "EM" && exit == "CC") console.log("WTF") | |
lines.forEach(function(line) { | |
var trip = { | |
start: { l: start.offsets[line], code: entry , color:"#fff" }, | |
end: { l: end.offsets[line], code: exit, color: "#000" }, | |
line: line, | |
path: lineMap[line], | |
n: ridership.data[j][i]/lines.length, | |
diff: 0, | |
count: 0 | |
} | |
allTrips.push(trip); | |
}) | |
} | |
} | |
console.log("len", len*len); | |
//var trips = allTrips.slice(550,750); | |
var xf = crossfilter(allTrips); | |
var startdim = xf.dimension(function(d) { return d.start.code }) | |
var enddim = xf.dimension(function(d) { return d.end.code }) | |
if(startdim.length) { | |
startdim.filter(function(d) { | |
return ~startStations.indexOf(d); | |
}) | |
} | |
if(enddim.length) { | |
enddim.filter(function(d) { | |
return ~endStations.indexOf(d) | |
}) | |
} | |
var trips = startdim.top(Infinity) | |
console.log(trips) | |
//console.log(trips) | |
console.log("# trips:", allTrips.length, trips.length) | |
function generate(trip, t) { | |
var path = trip.path; | |
var len = path.getTotalLength(); | |
var extent = [trip.start.l/len, trip.end.l/len]; | |
var v = Math.abs(extent[1] - extent[0]); | |
if(isNaN(v)) return; | |
//var dt = 1/tributary.duration; | |
var dt = 1/10000; | |
var n = 1;//Math.round(0.01 * trip.n); | |
//d3.range(n).forEach(function() { | |
var scale = d3.scale.linear() | |
.domain([0, 1]) | |
.range(extent); | |
var offset = function(tt) { | |
var ts = (tt - t) * speed | |
//var ts = scale((tt-t) * speed) | |
//if(ts > 1) ts = 1; | |
//console.log("tt",ts); | |
return scale(ts) | |
} | |
var rand = Math.random(); | |
var freq = 5.2 * Math.random() * Math.PI | |
tributary.ppl.push({ | |
len: len, | |
path: path, | |
color: d3.rgb(d3.select(path).attr("stroke")), | |
pos: function(ta) { | |
//return the point for this | |
//var l0 = d3.min(extent)*len; | |
//var lv = offset(ta) * v*len; | |
return path.getPointAtLength(offset(ta) * len); | |
}, | |
perp: function(ta) { | |
//return the offset vector | |
//TODO Make perpendicular | |
var tt = offset(ta); | |
//console.log(tt, v, extent) | |
var nx = this.pos(ta).y - this.pos(ta - dt).y; | |
var ny = this.pos(ta).x - this.pos(ta - dt).x; | |
var l = Math.sqrt(nx*nx + ny*ny); | |
nx = nx/l * lineCardinal[trip.line].x; | |
ny = ny/l * lineCardinal[trip.line].y; | |
if(!l) nx = 0; | |
if(!l) ny = 0; | |
var amp = ( 5 + trip.count*3) | |
this.r = r + amp * Math.sin(tt * Math.PI * 8 * rand) - amp/2; | |
return {x: nx, y: ny} | |
}, | |
w: 2, | |
h: 2, | |
r: r, | |
done: function(tt) { | |
var ts = offset(tt) | |
if(ts >= d3.max(extent) || ts <= d3.min(extent)) return true; | |
//if( ts > 1) return true; | |
} | |
}) | |
//}) | |
} | |
tributary.run = function(g,t) { | |
var display = d3.select("#display"); | |
var ctx = tributary.ctx; | |
clear(); | |
if(t < 0.001) { | |
//reset | |
console.log("reset") | |
tributary.ppl = []; | |
tributary.ctx.clearRect(0, 0, tributary.sw, tributary.sh); | |
trips.forEach(function(d) { | |
d.count = 0; | |
generate(d, t, d.count); | |
}) | |
} | |
trips.forEach(function(d) { | |
d.diff += d.n/40000; | |
if(Math.floor(d.diff)) { | |
d.count++; | |
generate(d, t, d.count); | |
d.diff = 0; | |
} | |
}); | |
//console.log(tributary.ppl.length); | |
tributary.ppl.forEach(function(d,i) { | |
//var o = (Math.sin(2 *Math.PI * (d.start + t/10)) + 1)/2; | |
//var p = d.node.getPointAtLength(t*d.len); | |
var p = d.pos(t); | |
var pp = d.perp(t); | |
if(d.done(t)) { | |
tributary.ppl.splice(tributary.ppl.indexOf(d),1); | |
return; | |
} | |
var rr = d.r + 4; | |
var x = p.x + pp.x * rr; | |
var y = p.y + pp.y * rr; | |
ctx.fillStyle = 'rgba(' + d.color.r + ',' + d.color.g + ',' + d.color.b + ',' + pAlpha + ')'; | |
//ctx.fillRect(x - d.w/2, y-d.h, d.w, d.h); | |
ctx.beginPath(); | |
ctx.arc(x,y,d.w,0,2*Math.PI); | |
ctx.fill(); | |
}) | |
} | |
function matchLines(a,b) { | |
var matches = []; | |
for(var i = 0; i < a.routes.length; i++) { | |
if(~b.routes.indexOf(a.routes[i])) { | |
matches.push(a.routes[i]); | |
} | |
} | |
return matches; | |
} | |
tributary.loop_type = "period"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"rows":["RM","EN","EP","NB","BK","AS","MA",19,12,"LM","FV","CL","SL","BF","HY","SH","UC","FM","CN","PH","WC","LF","OR","RR","OW","EM","MT","PL","CC",16,24,"GP","BP","DC","CM","CV","ED","NC","WP","SS","SB","SO","MB","WD","Entries"], | |
"cols":["RM","EN","EP","NB","BK","AS","MA",19,12,"LM","FV","CL","SL","BF","HY","SH","UC","FM","CN","PH","WC","LF","OR","RR","OW","EM","MT","PL","CC",16,24,"GP","BP","DC","CM","CV","ED","NC","WP","SS","SB","SO","MB","WD","Exits"], | |
"data":[[11.45,139.2,109.15,102.95,408.7,119.75,164.4,140.2,195.75,44.55,102,98.15,50.75,39.65,35.7,24.65,17.55,31.4,29.6,16.15,23.95,15.4,10.45,20.6,34.85,283.45,281.55,400.15,276.45,133.05,133.4,35.15,52.9,33.85,13.2,7.8,20.75,7.1,50.95,7.95,23.95,37.95,31.2,4.2,3821.9499999999994], | |
[151.7,15.9,108.75,111.55,901.25,165.2,303.3,503.2,656.75,115.8,168.4,189.15,70.1,62.5,74.35,37.9,45,94.1,42.5,21.45,49.85,16.65,13.85,39.2,54.3,902.35,978.25,926.4,725.3,206.3,182.25,54.65,79.9,78,30.6,12.4,41.5,8.65,44.2,29.35,43.35,85.35,52.45,19.45,8513.400000000001], | |
[113,90.25,11,68.8,647.5,95.75,149.6,257.45,304.55,68.35,63.95,86.15,26.8,19,24.15,10.5,15.3,44.8,24.7,17.5,31.85,11.2,10.2,34.9,19.7,556.85,623.7,428.2,363.5,111.75,56.3,30.4,28.65,28.75,5.6,8.4,23.4,5,13.45,7.95,7.7,61.45,28,11.6,4647.599999999998], | |
[103.35,104.95,72.55,12.8,183.15,71.05,101,231.3,257.05,61.65,78.7,92.5,29.4,24.15,30.9,12.3,17.7,31.7,22.65,19.35,34.75,11.8,10.85,23.45,22.5,730.6,752.7,480.9,466.85,156.35,102.8,35.85,30.85,25.3,8.45,7.8,17.1,3.5,15.95,4.5,13,89,37.25,5.75,4646.050000000002], | |
[437.7,935.75,664.15,197.8,35.85,383.75,470.2,545.3,607.7,226.8,323.9,274.5,181.75,153.4,154.6,106.5,153.9,337.1,146.35,160.75,159.85,97.75,67.05,63.8,112,1233.05,1061.55,1125.8,799.75,401.3,304.2,142.95,117.25,125.95,34.35,61.2,165.1,61,126.35,34.9,43.05,199.45,170.65,73.55,13279.6], | |
[118.15,144.4,92.65,74,322.7,16.2,117.2,256.75,258.65,76.05,126.95,114.1,47.45,43.15,49,24.65,32.95,69.25,27.6,21.4,32.5,14.6,9.35,18,41,665.5,710.25,478.75,474.9,245.45,140.05,38.35,35.9,30.5,9.85,13.55,26.65,8,36,6.6,15.15,61.3,33.45,10.4,5189.3], | |
[175.2,304.2,140.15,103.1,420.45,115.9,20.25,189.95,262.4,71.85,204.8,237,127.95,134.85,128.6,68.95,87.1,142.5,150.45,133.3,152.15,62,49.8,70.8,78.5,1017.85,1103.35,912.1,839.1,398.15,239.9,79.65,90.25,71.5,30.25,35.5,72.65,52.15,230.75,24.5,36.3,109.95,69.35,25.95,9071.4], | |
[157.25,518.8,259.05,237,517.2,253.9,178.6,19.7,55.5,45.1,175.5,219.9,221.5,211.2,203.8,157.3,202.7,379.45,295.4,338.5,280.25,157.5,100.5,184.2,75.25,1045.15,1068.05,836,815.7,367.25,275.7,140.4,110.6,134.25,68.65,83.05,195.6,175.2,262.25,69,50.6,65.9,104.75,91.85,11405.000000000002], | |
[210.35,640.9,298.35,267.55,534.3,264.25,250,49.1,29.25,48.9,237.4,364.6,338.1,337,326.7,184.55,249.9,407.25,310.5,329,288.45,170.55,119.2,198.8,102.1,1119.1,1103.95,981.7,870.3,320.65,291.05,165.9,154.55,161.5,107.15,110.65,245.85,170.4,300,79.4,80.4,116.3,143.85,121.65,13201.399999999996], | |
[42.55,108.65,67.9,61.65,213.1,71.1,76,42.6,47.7,12.65,171.4,249.2,271.7,251.65,175.15,107.1,126.35,182.85,40.8,28.45,36.9,13.95,10.35,34.3,46.25,776.4,779.65,666.2,514.1,205,134.1,54.2,80.5,67.25,10.95,121.45,184.45,14.2,49,10.65,10.55,32.55,20.15,81.4,6303.049999999999], | |
[110.65,154.3,71.4,77.8,319.15,132.9,204.8,187.35,250.3,156.8,22.55,318.4,241.9,275.75,263.5,111,99.4,166.3,57.3,35.85,60.6,23.7,32.95,58.8,134.4,855.05,857.1,889.55,733.3,262.45,200.95,62.9,97.75,64.2,16,76.45,141.9,15.75,67.15,12.4,29.2,65.35,29.1,67.25,8111.649999999999], | |
[102.05,185.9,85.9,95.35,290.25,124.5,244.2,258.85,391.85,226,322.35,19.4,173.75,254.4,239.4,119.65,138.7,260.7,101.15,100.8,121.15,57.15,44.2,78.65,121.65,644.7,530.25,594.85,461.1,138.35,127.05,55.9,64.3,74.05,18.95,107.1,348.05,53.6,141.3,21.85,28.1,64.85,37.35,138.95,7808.600000000003], | |
[50.95,75.05,30.2,30.35,182.35,52.6,143,235.5,350.7,276.7,255.85,178.35,14.1,134.1,188.75,84.5,79.75,142.45,43.4,22.05,27.8,12.15,8.5,23.5,41.25,725.1,669.8,557,450,105.25,85.2,41.7,52.15,46.3,10.05,56.9,96.15,10.1,47.35,9.7,11.95,39.6,19.7,45.3,5763.2], | |
[36.15,63.75,19.2,26.55,159.15,41.85,129.05,234.15,358.4,257.7,285.8,249.85,130.05,15,203.7,122.1,144.95,244.5,30.5,14.15,21.65,6.1,8.25,16.55,49.5,663.2,599.65,536.35,378.7,99.5,73.05,23.1,40.3,42.7,12.3,71.85,218.15,6.4,26.9,10.3,16.25,28.4,12,118.75,5846.45], | |
[40.95,77.05,29.15,30.35,143.7,47.8,127,205.85,309.35,164.65,269.75,239.15,183.2,220.25,11.45,129.55,204.65,335.65,33.1,27.85,25.4,9,6,16.6,40.65,448.75,424.35,340.95,274.2,79.5,54.25,27.55,32.15,31.6,7.85,32.2,87.9,10.7,54.75,9.95,10.55,22.15,7.25,43.55,4928.25], | |
[25.6,33.9,10.55,13.75,93.4,26.3,62.95,150,170.2,103.8,113.6,108.8,87.6,120.45,117.4,11.25,82,169.65,19.35,13.85,11.2,2.15,5.4,10.55,17,407.85,332.4,253.05,207.4,64.1,43.35,11.15,20.35,27.2,7.65,28.25,49.3,5.75,17.75,9.1,7.95,13.2,6.85,29.6,3122.95], | |
[17.85,45.2,19.25,21.1,150.75,40.15,88.3,203.4,245,123.8,105.35,145.3,86.4,155.1,217.8,91.3,19.95,199.6,18.9,16.15,16.65,4.15,6.1,13.05,14.35,851.5,658,394.6,250.15,66.3,30.05,15.05,24.4,32.55,7.2,23.05,72.85,6.65,21.6,5.9,6.55,25.1,6.2,33.2,4595.85], | |
[36.65,98.7,47.55,35.05,350.7,77.3,136.5,370.6,394,187.9,167.4,258.25,148.35,279.45,354.65,190.55,199,41.45,34.75,36.15,35.55,13.95,13.35,34.6,26.2,1710.05,1314.05,652.65,408.55,105.5,51.7,30.05,39.75,55,11,38.9,103.15,10.7,39.8,7.1,8.35,60.65,10.45,35.25,8261.25], | |
[31.05,42.05,23.7,23.45,142.9,31.25,151.25,295.3,321.45,38.15,57,96.15,44.95,30.55,35.3,19.1,17.85,33.2,15.9,125.5,342.7,115.4,46.95,94.75,22.25,884.5,855.25,525.85,423.3,94.6,79.85,37.75,45.6,57.85,24.2,8.25,13.95,64.05,384.45,19.95,29.2,102.2,27.1,7.35,5883.350000000002], | |
[17.3,22.5,18.8,17.8,155.75,23.15,126.85,325.35,316.6,26.35,36.2,94.15,21.6,13.1,27.7,15.3,15.65,34.3,121.1,19.65,141.2,50.1,28.95,114,16.65,1561.35,1411.25,602.45,456.75,109.95,60.25,68.8,33.95,56.5,20.15,3.55,8.5,33.8,135.3,19.75,29.95,153,26.4,5.55,6597.299999999999], | |
[24.35,51.35,31.75,37.65,159.8,38.3,159.75,291.55,301.1,34,54.75,120.35,27.6,23.3,24.3,16.35,16.3,33,371.55,148.65,21.65,66.4,45.1,184.3,23.8,1370.55,1191.95,562.4,390.1,91.55,64.4,47.85,38.4,60.7,24.75,8.7,8.05,89.45,270,24.55,23.45,166.45,30.55,4.55,6775.4], | |
[17.2,18.5,13.05,12.4,93.4,15.25,62.6,157.05,165.65,14.65,22.3,56.4,12.7,4.15,9.85,2.35,4.6,13.45,134.55,68.5,69.95,12.75,17.7,86.1,4.55,965.05,851.3,310.75,232.55,46.2,28.1,21.6,14,21.6,4.75,3.1,2.15,15.1,45.2,3.15,8.65,88.9,13.65,1.9,3767.35], | |
[11,17.95,10.45,11.25,69.15,12,53.3,97.4,120.85,11,31.3,41.85,8.25,8.05,6.25,3.9,6.4,11.65,49.3,35.05,47.25,22.9,13.85,70.75,6.05,802.75,679.05,229.1,206.45,42.3,30.05,22.55,18.1,17.05,4.3,1.85,3.25,7.75,23.9,5.8,5.95,72.2,11.5,3.55,2964.6000000000004], | |
[20.55,34.15,33.25,24,73.7,19.55,74.2,199.75,231.9,35.65,63.65,82.9,25.1,18.95,16.6,9.7,12.15,35.95,95.15,117,170.35,88.15,67.3,19.75,37.3,1254.95,1272,665.3,591.8,213.6,114.95,62.55,29.25,29,7.25,6.3,14.3,28.75,53.05,5.4,15.3,136,24.85,5.25,6136.550000000001], | |
[32.6,49.8,18.55,19.75,101.5,41.05,75.85,75,111.6,34.05,133.3,121.25,43,52.5,43,19.25,13.8,25.35,20.85,16.3,21.1,4.4,5.3,33.9,13.15,1524.25,1205.35,872.25,624.9,262.75,157.45,42.35,57.75,33.15,10.2,8.05,26.2,7.9,41.9,12.05,18.8,61.25,26.45,7.2,6126.399999999998], | |
[331.75,962.15,635.05,800.65,1489.6,829.25,1198,1337.2,1445.75,903.8,995.15,692.25,873.6,747.3,561.1,495.7,968.5,1936.1,1055.4,1924.75,1615.25,1056.85,854.8,1293.75,1735.75,189.15,126.3,574.85,543.95,1138.15,1808,1294.65,1591.4,1329.65,810,604.75,2029.2,612.15,819.8,650.55,604.75,578.85,1164.8,876.9,44087.30000000001], | |
[315.25,933.6,631,662.65,1054.2,744.65,1106.55,1081.5,1130.2,799.5,887.45,527.3,682.2,619.35,469.95,368.75,711.65,1371.2,881.95,1400.95,1121.55,768.9,619.15,1092.35,1281.35,146.7,131,200.4,490.55,1406.75,2322.5,1741.35,2593.9,1652.95,969.5,490.75,1310.25,476.3,700.35,776.15,648.5,549.6,1362.4,573.3,39806.350000000006], | |
[331.65,672.65,338.4,388.95,978.45,427.3,753.65,757.65,883.55,546.55,736.95,545.15,430.25,421.05,282.5,212.6,321.05,554.8,422.3,468.75,459.15,240.6,185.3,491.3,806.85,806.95,316.9,145.35,411.2,1594.25,1993.95,1277.2,2366.85,1273.1,645.4,220.7,630.45,234.45,428.15,446.4,425.7,1525.05,756.25,260.7,28416.4], | |
[239.15,574.85,315.95,370.15,639.9,429,702.15,656.7,658.55,425,654.85,402.7,376.05,335.6,254.5,194.8,240.95,375.65,357.4,392.15,305,207.3,166.8,472.95,604.7,531.2,463.2,359.7,79.4,741.85,1131.2,762,1383.35,704.55,476.7,195.25,466.9,192.05,425.3,359.35,312.7,583.15,486.95,178.85,20186.450000000004], | |
[122.45,162.35,96.85,148.25,389.75,233.8,369.2,347.55,309.2,187.4,237.7,138.65,94.35,89.85,78.9,66.05,63.95,105.1,89.3,102.45,82.45,43.3,40.95,186.05,256.75,1167.6,1370.65,1859.9,851.8,39.6,314,396.8,714.75,291.1,163.8,48.9,125.05,48,129.65,113.9,140.9,231.15,266.6,46.1,12362.849999999997], | |
[113.3,156.65,56.25,93.35,280.1,141.55,228.7,259.9,278.8,114.65,195.95,124.25,77.55,74.1,50.3,42.1,28.1,51.15,68.9,54,55.95,27.9,28.45,110,159.35,1522.95,1861.55,2293.05,1209.65,313.2,46.75,308.05,660.65,281.15,166.35,26.1,76.6,31.7,103.75,92.85,151.1,208.65,246.1,34.5,12506.000000000002], | |
[35.1,47.9,27.35,34.85,131.6,39.4,78.95,130.8,152.2,44.7,53.85,57.6,37.65,22,27.2,11.45,12.9,23.5,32.7,41.95,44.2,16.9,13.5,49.7,46.3,1152,1374.7,1465,697.65,376.1,312.65,28.6,128.15,78.25,65.7,15.05,51.65,10.15,44.75,35.8,72.85,113.1,142.15,17.3,7395.849999999999], | |
[51.5,78.4,25.55,30.4,103.95,38.9,79.1,99.75,130.1,77.25,90.5,63.4,45.8,36.2,30.95,21.7,22.9,34,41.8,31.4,34.65,12.3,14.7,27.35,63.4,1378.1,1649.65,2907.2,1253.6,633.3,631.85,127,55.1,122,122.85,12.65,53.65,17.95,60.15,73.55,130.5,104.5,141.25,18.75,10779.55], | |
[30.45,74,30.45,25.95,121.15,29.85,65.05,131.7,158.25,65.1,72.8,77.15,43.35,44.1,30.2,31.4,31.1,53.9,57.75,55.2,56.35,21.9,16.15,29.05,34.85,1271.9,1453.55,1505.8,729.35,301.85,287.2,84.9,136.7,26.85,51.1,16.2,92.3,22.9,47.9,60.7,143.1,178.65,218.9,28.6,8045.650000000001], | |
[13.35,28.4,6.3,6.35,33.6,10.3,27.85,71.4,102.85,13.55,13.2,20.2,10.15,12.45,7.85,6.4,8.4,10.35,23.15,18.05,24.15,6.55,5.15,6.85,14.25,787,862.85,757.75,465.1,161.85,165.1,68.3,124.4,42.65,14.2,2.95,22.7,8.7,24.25,17.1,65.45,89.6,107.1,3.05,4291.2], | |
[10.7,11.2,8.8,8.15,55.4,15.3,35.8,84.55,106.45,124.1,71.65,100.9,57.95,78.05,32.5,30.35,25.9,37.7,6.85,3.1,8.25,2.65,2.25,6.65,9,521.45,466.8,277.4,223.2,51.5,27.15,16.7,10.4,16.05,2.2,7.3,117.9,1.85,5,2.3,6.95,22.25,3.7,87.25,2801.5499999999997], | |
[24.45,44.85,22.8,19.25,160.05,26.2,69.35,194.85,236.45,181.1,147.95,345.7,97.4,215.35,94.4,46.05,75.6,101.25,10.7,8.45,8.35,3.75,3.25,14.7,25.3,1731.1,1314.9,702.9,513.45,133.8,77.7,52,60.15,93.05,23.15,128.85,24.35,2,12.85,21.25,19.05,135.7,20.1,34.5,7278.4], | |
[7.7,9.25,3.65,3.75,56.8,8.35,55.85,166.45,160.65,12.6,14,50.7,10.55,7.3,11.05,5.45,6.6,9.75,59.9,43,79.4,15.15,6.2,33.4,6,520.1,454.55,263.6,216.05,52.5,31.45,12.45,17.8,22.05,9.35,1.1,2.55,7.65,65.75,9.15,9.3,51.55,14.2,1.9,2606.5500000000006], | |
[47.45,52.3,13.45,15.35,121.7,34.8,238.95,257.85,305.2,42.25,66.5,142.95,43.8,31.9,49.8,17.4,21.55,39.65,379.7,153.75,262.6,45.4,27.8,62,41.6,676.75,637.35,537.3,505.75,138.8,108.1,53.1,67.7,49.1,29.25,5.35,11.55,73.7,17.65,26.8,43.5,121.3,27.4,6.1,5652.250000000002], | |
[8.8,26.3,7.15,4.95,34.85,6,25.5,63.3,74.55,10.05,13.3,22.05,8.95,8.4,10.6,9.6,6.75,6.9,21.95,18.1,24.6,3.3,6.05,7.05,9.6,624.05,688.3,511.35,351.95,109.55,99.75,36.85,79.95,54.45,15.8,4.1,23.1,10,24.75,10.7,46.5,40,58.05,4.9,3232.7499999999995], | |
[22.65,46.5,8.9,12.75,47.5,16.55,33.1,49.5,75.65,11.95,31.95,31.05,14.2,18.5,11.85,6.45,7.45,7.8,27.95,28.5,25.35,8.5,7.15,15.3,23.95,581.85,608.55,497.9,338.6,139.2,162.75,76.75,146.15,150.9,72.25,5.2,17.6,9.35,42.7,44.75,11.25,59,78.7,4.15,3638.599999999999], | |
[41.95,90.1,64.9,96.7,185.8,68.05,124.55,89.5,118.2,35.9,56.9,56.65,38.1,26.3,22.6,12.3,21.85,54.15,113.35,165.1,177.85,99.75,83.95,149.8,86.2,578.3,546.8,1315.05,545,235.9,226,119.15,113.5,177.55,100.9,22.75,137.1,59.4,127.1,41.95,59.7,53.55,384,39.85,6964.049999999999], | |
[35.95,52.95,27.2,35.85,165.5,32.75,66.8,99.3,134.2,20.1,33.05,36.45,22.45,11.05,7.05,5.25,5.15,9.35,24.25,26.35,30.1,11.45,11,22.1,25.3,1082.7,1226.35,792.35,473.9,251.75,246,143.4,168.35,240.1,119.6,3.9,22.05,13.4,26.9,60.45,72.25,347.45,33.45,9,6284.299999999999], | |
[4.45,20.2,11.65,7.05,76.35,11.25,25.25,90.75,120.65,88.85,64.9,145.85,52.15,126.45,44.45,34.75,36.15,41.1,7,7.15,4.35,1.7,3.8,6.25,7.9,799.3,591.8,302,204.9,48.1,35.5,19,19.5,31.1,2.95,99.8,32.65,1.9,8.4,5.5,4.05,42.3,8.5,12.7,3310.3500000000004], | |
[3883.6499999999987,8017.75,4618.1,4479.150000000001,12796.099999999999,5424.050000000002,8954.499999999998,11492.849999999999,13295.700000000003,6167.300000000002,8032.749999999999,7636.749999999999,5630.549999999999,5806.950000000002,5040.35,3298.7999999999993,4620.1,8290.999999999998,5919.699999999999,6826.5,6644.250000000001,3654.000000000001,2847.9000000000005,5620.5,6393.6,39069.05000000001,37460.50000000001,32492.15,22340.249999999996,12195.15,13088.000000000004,7966.599999999999,11828.300000000001,8042.9000000000015,4366.7,2847.95,7434.500000000001,2705.25,5614.449999999999,3300.95,3542.3499999999995,6993.9,6501.1,3231.3999999999996,396414.29999999993]] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ | |
"code": "RM", | |
"name": "Richmond", | |
"x": 337.2519027299527, | |
"y": 97.24952566866301, | |
"nameX": -53, | |
"nameY": -17, | |
"routes": [ | |
"orange", | |
"red" | |
], | |
"offsets": { | |
"red": 670.6939608764649, | |
"orange": 0 | |
} | |
}, | |
{ | |
"code": "EN", | |
"name": "El Cerrito Del Norte", | |
"x": 378.7681505397055, | |
"y": 96.61348564588465, | |
"nameX": -2, | |
"nameY": -16, | |
"routes": [ | |
"orange", | |
"red" | |
], | |
"offsets": { | |
"red": 637.0583560180663, | |
"orange": 30.488238525390628 | |
} | |
}, | |
{ | |
"code": "EP", | |
"name": "El Cerrito Plaza", | |
"x": 406.7192649880145, | |
"y": 109.35490167293699, | |
"nameX": -99, | |
"nameY": 7, | |
"routes": [ | |
"orange", | |
"red" | |
], | |
"offsets": { | |
"red": 608.8044479370118, | |
"orange": 73.1717724609375 | |
} | |
}, | |
{ | |
"code": "NB", | |
"name": "North Berkeley", | |
"x": 409.03110342553816, | |
"y": 129.85777184832375, | |
"nameX": -96, | |
"nameY": 4, | |
"routes": [ | |
"orange", | |
"red" | |
], | |
"offsets": { | |
"red": 589.4639751434325, | |
"orange": 91.46471557617187 | |
} | |
}, | |
{ | |
"code": "BK", | |
"name": "Berkeley", | |
"x": 409.4475327723846, | |
"y": 147.93217596529985, | |
"nameX": -59, | |
"nameY": 2, | |
"routes": [ | |
"orange", | |
"red" | |
], | |
"offsets": { | |
"red": 569.7871463012696, | |
"orange": 109.75765869140625 | |
} | |
}, | |
{ | |
"code": "AS", | |
"name": "Ashby", | |
"x": 407.04815876570535, | |
"y": 169.29698920819445, | |
"nameX": -51, | |
"nameY": 3, | |
"routes": [ | |
"orange", | |
"red" | |
], | |
"offsets": { | |
"red": 550.1103174591065, | |
"orange": 134.14824951171875 | |
} | |
}, | |
{ | |
"code": "MA", | |
"name": "MacArthur", | |
"x": 407.35532210963777, | |
"y": 191.98105409529992, | |
"nameX": -70, | |
"nameY": 2, | |
"routes": [ | |
"orange", | |
"red", | |
"yellow" | |
], | |
"offsets": { | |
"red": 527.7426402282715, | |
"orange": 158.53884033203124 | |
} | |
}, | |
{ | |
"code": "19", | |
"name": "19th Street Oakland", | |
"x": 406.4762217817083, | |
"y": 211.281455807928, | |
"nameX": 10, | |
"nameY": 3, | |
"routes": [ | |
"orange", | |
"red", | |
"yellow" | |
], | |
"offsets": { | |
"red": 507.8976333618164, | |
"orange": 176.83178344726562 | |
} | |
}, | |
{ | |
"code": "12", | |
"name": "12th Street / Oakland City Center", | |
"x": 406.72745221162216, | |
"y": 231.4813762536133, | |
"nameX": 10, | |
"nameY": 4, | |
"routes": [ | |
"orange", | |
"red", | |
"yellow" | |
], | |
"offsets": { | |
"red": 488.5571605682373, | |
"orange": 195.1247265625, | |
"yellow": 507.9115513305664 | |
} | |
}, | |
{ | |
"code": "LM", | |
"name": "Lake Merritt", | |
"x": 420.1784636294283, | |
"y": 284.6640022135573, | |
"nameX": 15, | |
"nameY": 5, | |
"routes": [ | |
"orange", | |
"green", | |
"blue" | |
], | |
"offsets": { | |
"orange": 250.0035559082031, | |
"blue": 272.0680917666626, | |
"green": 357.25103759765625 | |
} | |
}, | |
{ | |
"code": "FV", | |
"name": "Fruitvale", | |
"x": 448.22722799262965, | |
"y": 306.6533642988233, | |
"nameX": 18, | |
"nameY": 3, | |
"routes": [ | |
"orange", | |
"green", | |
"blue" | |
], | |
"offsets": { | |
"orange": 292.68708984375, | |
"blue": 241.6294870063782, | |
"green": 321.52593383789065 | |
} | |
}, | |
{ | |
"code": "CL", | |
"name": "Coliseum / Oakland Airport", | |
"x": 471.8996493296977, | |
"y": 335.59136392283256, | |
"nameX": 12, | |
"nameY": -5, | |
"routes": [ | |
"orange", | |
"green", | |
"blue" | |
], | |
"offsets": { | |
"orange": 335.3706237792969, | |
"blue": 202.8743235684204, | |
"green": 285.800830078125 | |
} | |
}, | |
{ | |
"code": "SL", | |
"name": "San Leandro", | |
"x": 495.4028909328207, | |
"y": 358.8716192563297, | |
"nameX": 16, | |
"nameY": 1, | |
"routes": [ | |
"orange", | |
"green", | |
"blue" | |
], | |
"offsets": { | |
"orange": 359.76121459960933, | |
"blue": 166.78045890731812, | |
"green": 256.1489939575195 | |
} | |
}, | |
{ | |
"code": "BF", | |
"name": "Bayfair", | |
"x": 514.6943613496702, | |
"y": 379.86474627215415, | |
"nameX": 19, | |
"nameY": 0, | |
"routes": [ | |
"orange", | |
"green", | |
"blue" | |
], | |
"offsets": { | |
"orange": 390.249453125, | |
"blue": 134.5944208984375, | |
"green": 228.6406640625 | |
} | |
}, | |
{ | |
"code": "HY", | |
"name": "Hayward", | |
"x": 541.1807193209604, | |
"y": 412.7951991516957, | |
"nameX": -63, | |
"nameY": 8, | |
"routes": [ | |
"orange", | |
"green" | |
], | |
"offsets": { | |
"orange": 426.8353393554687, | |
"green": 184.52016091918944 | |
} | |
}, | |
{ | |
"code": "SH", | |
"name": "South Hayward", | |
"x": 577.610563062653, | |
"y": 445.74010956377725, | |
"nameX": -102, | |
"nameY": 13, | |
"routes": [ | |
"orange", | |
"green" | |
], | |
"offsets": { | |
"orange": 475.61652099609375, | |
"green": 128.61037353515624 | |
} | |
}, | |
{ | |
"code": "UC", | |
"name": "Union City", | |
"x": 632.3352013461757, | |
"y": 499.1954842959484, | |
"nameX": -75, | |
"nameY": 10, | |
"routes": [ | |
"orange", | |
"green" | |
], | |
"offsets": { | |
"orange": 560.9835888671876, | |
"green": 50.01514526367188 | |
} | |
}, | |
{ | |
"code": "FM", | |
"name": "Fremont", | |
"x": 670.2401071316656, | |
"y": 538.0354696054292, | |
"nameX": 20, | |
"nameY": 4, | |
"routes": [ | |
"orange", | |
"green" | |
], | |
"offsets": { | |
"orange": 609.7647705078125, | |
"green": 0 | |
} | |
}, | |
{ | |
"code": "CN", | |
"name": "Concord", | |
"x": 557.924535712367, | |
"y": 79.22608115762478, | |
"nameX": 16, | |
"nameY": 7, | |
"routes": [ | |
"yellow" | |
], | |
"offsets": { | |
"yellow": 746.3555411682129 | |
} | |
}, | |
{ | |
"code": "PH", | |
"name": "Pleasant Hill", | |
"x": 535.3732558397669, | |
"y": 98.47572374612093, | |
"nameX": 16, | |
"nameY": 3, | |
"routes": [ | |
"yellow" | |
], | |
"offsets": { | |
"yellow": 719.9059576416016 | |
} | |
}, | |
{ | |
"code": "WC", | |
"name": "Walnut Creek", | |
"x": 517.3768656339869, | |
"y": 115.95939369412139, | |
"nameX": 14, | |
"nameY": 7, | |
"routes": [ | |
"yellow" | |
], | |
"offsets": { | |
"yellow": 696.8371479492188 | |
} | |
}, | |
{ | |
"code": "LF", | |
"name": "Lafayette", | |
"x": 495.41654099955224, | |
"y": 140.1603028003825, | |
"nameX": 13, | |
"nameY": 6, | |
"routes": [ | |
"yellow" | |
], | |
"offsets": { | |
"yellow": 663.6260167541504 | |
} | |
}, | |
{ | |
"code": "OR", | |
"name": "Orinda", | |
"x": 475.8728397351224, | |
"y": 159.32197172119288, | |
"nameX": 13, | |
"nameY": 12, | |
"routes": [ | |
"yellow" | |
], | |
"offsets": { | |
"yellow": 633.7956593933105 | |
} | |
}, | |
{ | |
"code": "RR", | |
"name": "Rockridge", | |
"x": 445.36074513683093, | |
"y": 165.3618431656249, | |
"nameX": -20, | |
"nameY": -18, | |
"routes": [ | |
"yellow" | |
], | |
"offsets": { | |
"yellow": 600.5845281982422 | |
} | |
}, | |
{ | |
"code": "OW", | |
"name": "West Oakland", | |
"x": 350.1908433724288, | |
"y": 239.84746471214112, | |
"nameX": -70, | |
"nameY": -13, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue", | |
"green" | |
], | |
"offsets": { | |
"red": 440.79460166931153, | |
"yellow": 451.432741394043, | |
"blue": 358.0613084938049, | |
"green": 435.8462658691406 | |
} | |
}, | |
{ | |
"code": "EM", | |
"name": "Embarcadero", | |
"x": 242.86626160625372, | |
"y": 248.8465810839366, | |
"nameX": -79, | |
"nameY": -8, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue", | |
"green" | |
], | |
"offsets": { | |
"red": 314.4929054260254, | |
"yellow": 338.6739905700684, | |
"blue": 471.6655000308228, | |
"green": 543.0215771484375 | |
} | |
}, | |
{ | |
"code": "MT", | |
"name": "Montgomery Street", | |
"x": 222.53345882618805, | |
"y": 268.8065262252371, | |
"nameX": -117, | |
"nameY": -6, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue", | |
"green" | |
], | |
"offsets": { | |
"red": 292.2934062194824, | |
"yellow": 308.8436332092285, | |
"blue": 499.2764748406983, | |
"green": 571.60166015625 | |
} | |
}, | |
{ | |
"code": "PL", | |
"name": "Powell Street", | |
"x": 205.01421027183534, | |
"y": 285.4042817873834, | |
"nameX": -91, | |
"nameY": 2, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue", | |
"green" | |
], | |
"offsets": { | |
"red": 267.0667025756836, | |
"yellow": 282.39404968261715, | |
"blue": 521.7311832704162, | |
"green": 593.0367224121094 | |
} | |
}, | |
{ | |
"code": "CC", | |
"name": "Civic Center", | |
"x": 191.4310487190727, | |
"y": 305.76649480127264, | |
"nameX": -85, | |
"nameY": 4, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue", | |
"green" | |
], | |
"offsets": { | |
"red": 238.8127944946289, | |
"yellow": 259.1263709411621, | |
"blue": 535.3187194824219, | |
"green": 614.4717846679688 | |
} | |
}, | |
{ | |
"code": "16", | |
"name": "16th Street Mission", | |
"x": 188.67462086226791, | |
"y": 327.0067256691307, | |
"nameX": -119, | |
"nameY": 4, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue", | |
"green" | |
], | |
"offsets": { | |
"red": 210.8952424621582, | |
"yellow": 236.0575612487793, | |
"blue": 568.8029053860473, | |
"green": 635.9068469238281 | |
} | |
}, | |
{ | |
"code": "24", | |
"name": "24th Street Mission", | |
"x": 184.64212326612324, | |
"y": 347.66754772265904, | |
"nameX": -120, | |
"nameY": 4, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue", | |
"green" | |
], | |
"offsets": { | |
"red": 191.38659164428708, | |
"yellow": 212.78988250732422, | |
"blue": 588.850591430664, | |
"green": 664.4869299316407 | |
} | |
}, | |
{ | |
"code": "GP", | |
"name": "Glen Park", | |
"x": 169.1385176723171, | |
"y": 363.5643937920547, | |
"nameX": 13, | |
"nameY": 8, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue", | |
"green" | |
], | |
"offsets": { | |
"red": 177.25963760375978, | |
"yellow": 196.28375143432618, | |
"blue": 610.3856987744141, | |
"green": 685.9219921875 | |
} | |
}, | |
{ | |
"code": "BP", | |
"name": "Balboa Park", | |
"x": 158.79430814798923, | |
"y": 379.53695317035545, | |
"nameX": -82, | |
"nameY": -6, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue", | |
"green" | |
], | |
"offsets": { | |
"red": 151.86475593566894, | |
"yellow": 173.0160726928711, | |
"blue": 627.0876428222656, | |
"green": 700.2120336914062 | |
} | |
}, | |
{ | |
"code": "DC", | |
"name": "Daly City", | |
"x": 156.3311665538605, | |
"y": 397.1604901606404, | |
"nameX": -62, | |
"nameY": 4, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue", | |
"green" | |
], | |
"offsets": { | |
"red": 132.52428314208984, | |
"yellow": 150.74273919677734, | |
"blue": 646.4795634355163, | |
"green": 714.5020751953125 | |
} | |
}, | |
{ | |
"code": "CM", | |
"name": "Colma", | |
"x": 160.98419984665702, | |
"y": 425.4218602246791, | |
"nameX": 16, | |
"nameY": 2, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue" | |
], | |
"offsets": { | |
"red": 101.41134864807128, | |
"yellow": 125.88410806274415, | |
"blue": 672.9721044921876 | |
} | |
}, | |
{ | |
"code": "CV", | |
"name": "Castro Valley", | |
"x": 577.5645999231376, | |
"y": 395.7569965145458, | |
"nameX": 4, | |
"nameY": -14, | |
"routes": [ | |
"blue" | |
], | |
"offsets": { | |
"blue": 73.415138671875 | |
} | |
}, | |
{ | |
"code": "ED", | |
"name": "Dublin / Pleasanton", | |
"x": 644.9518940068036, | |
"y": 397.96949249867816, | |
"nameX": 14, | |
"nameY": 3, | |
"routes": [ | |
"blue" | |
], | |
"offsets": { | |
"blue": 0 | |
} | |
}, | |
{ | |
"code": "NC", | |
"name": "North Concord / Martinez", | |
"x": 576.5643980837334, | |
"y": 61.740233782883735, | |
"nameX": 16, | |
"nameY": 3, | |
"routes": [ | |
"yellow" | |
], | |
"offsets": { | |
"yellow": 776.1858985290528 | |
} | |
}, | |
{ | |
"code": "WP", | |
"name": "Pittsburg / Baypoint", | |
"x": 596.3787407822348, | |
"y": 40.58420126937335, | |
"nameX": 17, | |
"nameY": 3, | |
"routes": [ | |
"yellow" | |
], | |
"offsets": { | |
"yellow": 792.890898651123 | |
} | |
}, | |
{ | |
"code": "SS", | |
"name": "South San Francisco", | |
"x": 177.56221861569213, | |
"y": 446.7829217383964, | |
"nameX": 16, | |
"nameY": 3, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue" | |
], | |
"offsets": { | |
"red": 73.49379661560059, | |
"yellow": 92.87184591674806, | |
"blue": 703.5617456054688 | |
} | |
}, | |
{ | |
"code": "SB", | |
"name": "San Bruno", | |
"x": 202.6848707394954, | |
"y": 469.8093068131293, | |
"nameX": -72, | |
"nameY": 13, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue" | |
], | |
"offsets": { | |
"red": 26.572127838134765, | |
"yellow": 62.84261950683594, | |
"blue": 726.5039764404297 | |
} | |
}, | |
{ | |
"code": "MB", | |
"name": "Millbrae", | |
"x": 221.54718851863413, | |
"y": 496.68394520164, | |
"nameX": -57, | |
"nameY": 14, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue" | |
], | |
"offsets": { | |
"red": 5.718052825927735, | |
"blue": 757.0936175537109 | |
} | |
}, | |
{ | |
"code": "SO", | |
"name": "San Francisco International Airport", | |
"x": 263.39984044084326, | |
"y": 469.4198474137625, | |
"nameX": 0, | |
"nameY": 24, | |
"routes": [ | |
"red", | |
"yellow", | |
"blue" | |
], | |
"offsets": { | |
"yellow": 6.562678619384766 | |
} | |
}, | |
{ | |
"code": "WD", | |
"name": "West Dublin / Pleasanton", | |
"x": 614.27280872887, | |
"y": 398.3866290775128, | |
"nameX": 2, | |
"nameY": 22, | |
"routes": [ | |
"blue" | |
], | |
"offsets": { | |
"blue": 35.17808728027344 | |
} | |
} | |
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#canvas { | |
position: absolute; | |
top: 70px; | |
left: 0; | |
} | |
#lines { | |
opacity: 0.02; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment