Skip to content

Instantly share code, notes, and snippets.

@elktamer
Forked from mbostock/.block
Last active January 21, 2020 23:55
Show Gist options
  • Save elktamer/943905fd719398d3c5abc3078d089536 to your computer and use it in GitHub Desktop.
Save elktamer/943905fd719398d3c5abc3078d089536 to your computer and use it in GitHub Desktop.
YYC Firestation Voronoi
license: gpl-3.0
height: 600
NAME ADDRESS STN_NUM COMMUNITY FIRE_SUPPRESSION MEDICAL_RESCUE AQUATIC_RESCUE_DIVE HIGH_ANGLE_RESCUE HAZARDOUS_CONDITION AIRPORT_CRASH_RESCUE HEAVY_RESCUE PUBLIC_SERVICE_ASSISTANCE FALSE_ALARM HYDRANT_BUILDING_INSPECTION INVESTIGATION BLOOD_PRESSURE_CLINIC CHOLESTEROL_SCREENING WATER_SAFETY_PATROL CHEMICAL_DROP_OFF SMOKE_DETECTOR_PROGRAM FIRE_STATION_TOUR WINTER_SAND BULK_WATER_FILL location longitude latitude
Station 36 10071 HIDDEN VALLEY DR NW 36 Hidden Valley YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES NO NO NO (51.1471559637768, -114.107323714836) -114.107323714836 51.1471559637768
Station 29 7027 COACH HILL RD SW 29 Coach Hill YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES YES YES NO (51.0615016030485, -114.187434771443) -114.187434771443 51.0615016030485
Station 19 13807 PARKLAND BV SE 19 Parkland YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES YES YES NO (50.9294661124736, -114.038580866428) -114.038580866428 50.9294661124736
Station 14 9840 HORTON RD SW 14 Haysboro YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES YES NO NO (50.9659724377525, -114.074471765436) -114.074471765436 50.9659724377525
Station 30 6 McKENZIE TOWNE GA SE 30 McKenzie Towne YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES YES YES NO (50.9164849911888, -113.96333177342) -113.96333177342 50.9164849911888
Station 26 450 MIDPARK WY SE 26 Midnapore YES YES NO NO YES NO NO YES YES YES YES YES YES NO YES YES YES YES NO (50.9064522445868, -114.05930889198) -114.05930889198 50.9064522445868
Station 15 6328 35 AV NW 15 Bowness YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES YES YES NO (51.0845372807987, -114.18050478996) -114.18050478996 51.0845372807987
Station 20 2800 PEACEKEEPERS WY SW 20 Lincoln Park YES YES NO NO YES NO NO YES YES YES YES YES YES NO YES YES YES YES YES (51.006060436126, -114.128898175906) -114.128898175906 51.006060436126
Station 37 2511 EVERSYDE AV SW 37 Evergreen YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES NO NO NO (50.9077510548201, -114.11844310317) -114.11844310317 50.9077510548201
Station 25 4705 76 AV SE 25 Foothills YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO NO NO NO NO (50.9848263138275, -113.966728532487) -113.966728532487 50.9848263138275
Station 40 12920 SYMONS VALLEY RD NW 40 Sage Hill YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES NO NO NO (51.1698524665903, -114.132599433272) -114.132599433272 51.1698524665903
Station 9 2515 78 AV SE 9 Ogden YES YES NO YES YES NO YES YES YES YES YES YES YES NO NO YES YES YES NO (50.982902982113, -114.001264830381) -114.001264830381 50.982902982113
Station 8 1720 45 ST SW 8 Rosscarrock YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES YES YES NO (51.0385361675702, -114.152476780622) -114.152476780622 51.0385361675702
Station 10 1909 16 AV NW 10 Briar Hill YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES YES YES NO (51.0666642180115, -114.104152898914) -114.104152898914 51.0666642180115
Station 39 4199 114 AV SE 39 Douglas Glen YES YES YES NO YES NO NO YES YES YES YES YES YES YES NO YES YES YES NO (50.9501329473688, -113.975373812245) -113.975373812245 50.9501329473688
Station 13 2021 78 AV NE 13 Airport YES YES NO NO YES YES NO YES YES YES YES YES NO NO NO NO NO NO NO (51.1219757971527, -114.014287912649) -114.014287912649 51.1219757971527
Station 1 450 1 ST SE 1 Downtown YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES YES NO NO (51.0486594522204, -114.05996245776) -114.05996245776 51.0486594522204
Station 12 123 44 ST SE 12 Forest Heights YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES YES YES NO (51.0517153158273, -113.970652624775) -113.970652624775 51.0517153158273
Station 33 3800 69 ST SW 33 Signal Hill YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES YES NO NO (51.0206752111891, -114.188124640266) -114.188124640266 51.0206752111891
Station 28 7925 EDGEMONT BV NW 28 Edgemont YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES YES YES NO (51.1262651944138, -114.150290358161) -114.150290358161 51.1262651944138
Station 4 1991 18 AV NE 4 Vista Heights YES YES NO NO YES YES NO YES YES YES YES YES YES NO YES YES YES NO NO (51.0688690050516, -114.013806483037) -114.013806483037 51.0688690050516
Station 34 16 ROYAL VISTA WY NW 34 Royal Oak YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES NO NO NO (51.1527492120669, -114.205196282953) -114.205196282953 51.1527492120669
Station 23 2727 26 AV SE 23 Southview YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES YES YES NO (51.0302099401198, -113.993843130877) -113.993843130877 51.0302099401198
Station 18 415 68 AV NW 18 Huntington Hills YES YES NO NO YES YES NO YES YES YES YES YES YES NO NO YES YES YES NO (51.1154380255639, -114.067992057223) -114.067992057223 51.1154380255639
Station 11 5506 4 ST SW 11 Windsor Park YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES YES YES NO (51.0048467156553, -114.071124983692) -114.071124983692 51.0048467156553
Station 32 800 SADDLETOWNE CI NE 32 Saddleridge YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES YES NO NO (51.1243021625362, -113.944505147199) -113.944505147199 51.1243021625362
Station 24 2607 106 AV SW 24 Cedarbrae YES YES NO NO YES NO NO YES YES YES YES YES YES NO YES YES YES YES NO (50.9575469934734, -114.121307860782) -114.121307860782 50.9575469934734
Station 5 3129 14 ST SW 5 South Calgary YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES NO NO NO (51.0259106327852, -114.094937534262) -114.094937534262 51.0259106327852
Station 6 360 8 ST SW 6 Eau Claire YES YES YES NO YES NO NO YES YES YES YES YES NO YES NO YES YES NO NO (51.0501676921212, -114.080736909244) -114.080736909244 51.0501676921212
Station 22 7199 TEMPLE DR NE 22 Temple YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES YES YES YES (51.0916619229039, -113.957369860713) -113.957369860713 51.0916619229039
Station 31 11955 COUNTRY VILLAGE LI NE 31 Country Hills YES YES NO NO YES NO NO YES YES YES YES YES YES YES YES YES YES NO NO (51.1595242364053, -114.068115669081) -114.068115669081 51.1595242364053
Station 16 HQ 4124 11 ST SE 16 Highfield YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO NO YES NO NO (51.0183407002533, -114.036231328327) -114.036231328327 51.0183407002533
Station 2 1010 10 AV SW 2 Beltline YES YES NO YES YES NO NO YES YES YES YES YES NO NO NO YES YES NO NO (51.044255768397, -114.084376429251) -114.084376429251 51.044255768397
Station 38 3 SKYVIEW SPRINGS CV NE 38 Skyview Ranch YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES NO NO NO (51.1638120989491, -113.966304191229) -113.966304191229 51.1638120989491
Station 41 3790 SETON DR SE 41 Seton YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES YES NO NO (50.8770564343724, -113.955642807804) -113.955642807804 50.8770564343724
Station 21 209 SILVERGROVE DR NW 21 Silver Springs YES YES YES NO YES NO NO YES YES YES YES YES YES YES NO YES YES YES YES (51.1152321739911, -114.202762744391) -114.202762744391 51.1152321739911
Station 35 11280 VALLEY RIDGE BV NW 35 Valley Ridge YES YES NO NO YES NO NO YES YES YES YES YES YES NO NO YES YES NO NO (51.091092502408, -114.248205577108) -114.248205577108 51.091092502408
Station 17 3740 32 AV NW 17 Varsity YES YES NO NO YES NO NO YES YES YES YES YES NO NO YES YES YES YES NO (51.0817617000071, -114.139918935633) -114.139918935633 51.0817617000071
Station 7 2708 4 ST NW 7 Mount Pleasant YES YES NO NO YES NO NO YES YES YES YES YES NO NO NO YES YES NO NO (51.0763007531296, -114.071125601487) -114.071125601487 51.0763007531296
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<meta http-equiv="content-language" content="ja">
<title>Fire Station Voronoi Diagram</title>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/leaflet.css"/>
<style>
html, body{
height: 100%;
padding: 0px;
margin: 0px;
}
#map {
width:100%;
height: 100%;
}
</style>
</head>
<body>
<div id="map"></div>
<script src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/leaflet-src.js"></script>
<script>
d3.tsv('Fire_Station_Services.tsv', function(geojson){
mapDraw(geojson);
});
function mapDraw(geojson){
var pointdata = geojson;
var map = L.map('map');
map.setView([51.1, -114], 10);
map.on("viewreset moveend", update);
var mapLink = '<a href="http://openstreetmap.org">OpenStreetMap</a>';
L.tileLayer(
'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
{
attribution: 'Map data &copy; ' + mapLink,
maxZoom: 18
}
).addTo(map);
map._initPathRoot();
var svg = d3.select("#map").select("svg");
var g = svg.append("g").attr("class", "leaflet-zoom-hide");
var voronoi = d3.geom.voronoi()
.x(function(d) { return d.x; })
.y(function(d) { return d.y; });
update();
function update() {
var positions = [];
pointdata.forEach(function(d) {
var latlng = new L.LatLng(d.latitude, d.longitude);
positions.push({
x :map.latLngToLayerPoint(latlng).x,
y :map.latLngToLayerPoint(latlng).y
});
});
d3.selectAll('.AEDpoint').remove();
var circle = g.selectAll("circle")
.data(positions)
.enter()
.append("circle")
.attr("class", "AEDpoint")
.attr({
"cx":function(d, i) { return d.x; },
"cy":function(d, i) { return d.y; },
"r":2,
fill:"red"
});
var polygons = voronoi(positions);
polygons.forEach(function(v) { v.cell = v; });
svg.selectAll(".volonoi").remove();
svg.selectAll("path")
.data(polygons)
.enter()
.append("svg:path")
.attr("class", "volonoi")
.attr({
"d": function(d) {
if(!d.cell) return null;
return "M" + d.cell.join("L") + "Z";
},
stroke:"black",
fill:"none"
});
}
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment